A-A+

PHP入门最基础语法

2013年05月14日 编程技术 暂无评论

1,从 HTML 中分离

凡是在一对开始和结束标记之外的内容都会被 PHP 解析器忽略,这使得 PHP 文件可以具备混合内容。 可以使 PHP 嵌入到 HTML 文档中去,如下例所示。

<p>This is going to be ignored by PHP and displayed by the browser.</p>

<?php echo 'While this is going to be parsed.'; ?>

<p>This will also be ignored by PHP and displayed by the browser.</p>

这将如预期中的运行,因为当 PHP 解释器碰到 ?> 结束标记时就简单地将其后内容原样输出(除非马上紧接换行 - 见指令分隔符)直到碰到下一个开始标记;

例外是处于条件语句中间时,此时 PHP 解释器会根据条件判断来决定哪些输出,哪些跳过。

见下例,注意if 和 else 后面的 : 冒号

使用条件结构:

<?php if ($expression == true): ?>

This will show if the expression is true.

<?php else: ?>

Otherwise this will show.

<?php endif; ?>

上例中 PHP 将跳过条件语句未达成的段落,即使该段落位于 PHP 开始和结束标记之外。

由于 PHP 解释器会在条件未达成时直接跳过该段条件语句块, 跳出了 PHP 模式并返回了 HTML 模式) 因此 PHP 会根据条件来忽略之。

要输出大段文本时,跳出 PHP 解析模式通常比将文本通过 echo 或 print 输出更有效率。

<?php if(count($dataProvider->getData())):?>

<div id="down" style="display:block;">

<div>

<input type="button" id="exportexcel" class="button3" value=" 导出Excel " url="<?=Yii::app()->request->getUrl()?>">
<span id="downloadlink"></span></div>

</div>

<?php endif;?>

--------------------------------------------------------------------------------

2,指令分隔符

一段 PHP 代码中的结束标记隐含表示了一个分号,在一个 PHP 代码段中的最后一行可以不用分号结束,如果后面还有新行,则代码段的结束标记包含了行结束。

<?php

echo "This is a test";

?>

<?php echo "This is a test" ?>

<?php echo 'We omitted the last closing tag';

Note:

文件末尾的 PHP 代码段结束标记可以不要

有些情况下当使用 include 或者 require 时省略掉会更好些,这样不期望的空白符就不会出现在文件末尾,之后仍然可以输出响应标头。

在使用输出缓冲时也很便利,就不会看到由包含文件生成的不期望的空白符。

<?php if(0): ?>

342432353

<?php else: ?>

otherwise this will show.

<?php endif ;

或者

<?php if(0): ?>

342432353

<?php else: ?>

otherwise this will show.

<?php endif ?>

--------------------------------------------------------------------------------

PHP注释

<?php

echo "This is a test"; // This is a one-line c++ style comment

/* This is a multi line comment

yet another line of comment */

echo "This is yet another test";

echo 'One Final Test'; # This is a one-line shell-style comment

?>

单行注释仅仅注释到行末或者当前的 PHP 代码块,视乎哪个首先出现。

这意味着在 // ... ?> 或者 # ... ?> 之后的 HTML 代码将被显示出来

?> 跳出了 PHP 模式并返回了 HTML 模式,// 或 # 并不能影响到这一点。

C 风格的注释在碰到第一个 */ 时结束。

<?php

/*

echo "This is a test"; /* This comment will cause a problem */

*/

echo 'kdfjal';

?>

将报错,输出空白

--------------------------------------------------------------------------------

String 字符串

一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。这意味着 PHP 只能支持 256=2的8次方 的字符集,因此不支持 Unicode 。详见字符串类型详解。

Note: string 最大可以达到 2GB。

语法

一个字符串可以用 4 种方式表达:

单引号

双引号

heredoc 语法结构

nowdoc 语法结构(自 PHP 5.3.0 起)

--------------------------------------------------------------------------------

单引号

定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ')。

要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。

要表达一个反斜线自身,则用两个反斜线(\\)。

其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。

Note: 不像双引号和 heredoc 语法结构,在单引号字符串中的变量和特殊字符的转义序列将不会被替换。

<?php

echo 'this is a simple string';

// 可以录入多行

echo 'You can also have embedded newlines in

strings this way as it is

okay to do';

// 输出: Arnold once said: "I'll be back"

echo 'Arnold once said: "I\'ll be back"';

// 输出: You deleted C:\*.*?

echo 'You deleted C:\\*.*?';

// 输出: You deleted C:\*.*?

echo 'You deleted C:\*.*?';

// 输出: This will not expand: \n a newline

echo 'This will not expand: \n a newline';

// 输出: Variables do not $expand $either

echo 'Variables do not $expand $either';

?>

--------------------------------------------------------------------------------
双引号

如果字符串是包围在双引号(")中, PHP 将对一些特殊的字符进行解析:
转义字符

序列 含义

\n 换行(ASCII 字符集中的 LF 或 0x0A (10))

\r 回车(ASCII 字符集中的 CR 或 0x0D (13))

\t 水平制表符(ASCII 字符集中的 HT 或 0x09 (9))

\v 垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起)

\e Escape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起)

\f 换页(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起)

\\ 反斜线

\$ 美元标记

\" 双引号

\[0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符

\x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符

和单引号字符串一样,转义任何其它字符都会导致反斜线被显示出来。PHP 5.1.1 以前,\{$var} 中的反斜线还不会被显示出来。

用双引号定义的字符串最重要的特征是变量会被解析,详见变量解析。

--------------------------------------------------------------------------------

Heredoc 结构

第三种表达字符串的方法是用 heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志。

结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。

标签:

给我留言