您的位置:首页 > 编程语言 > PHP开发

PHP入门最基础语法

2013-05-16 12:50 405 查看
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 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: