PHP入门最基础语法
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 易做图 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 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。
&
补充:Web开发 , php ,