PHP重新学习(一)——PHP的基本语法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014236259/article/details/78300265
首先我们先简单了解一下PHP在底层是如何解析和运行咱们写的PHP代码的,从编写的PHP脚本->到最后脚本被执行->得到执行结果,这个过程,其实可以分为如下几个阶段:
①、首先Zend Engine(ZE)调用词法分析器(Lex生成的,源文件在Zend/zend_language_sanner.l),将我们要执行的PHP文件在起始和结束标记之间的代码,转换成一个一个的语言片段(token)。
②、然后ZE将语言片段交给语法分析器(yacc生成,源文件在Zend/zend_language_parser.y), 生成一个一个的操作码(op code),op code一般会以op array的形式存在,它是PHP执行的中间语言
③、最后ZE调用zend_executor来执行op array,输出结果

1、PHP标记
当解析一个PHP文件时, ZE会寻找起始和结束标记(即<?php 和 ?>),这告诉ZE开始和停止解析二者之间的代码。此种解析方式使得PHP可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被ZE忽略。
PHP也允许使用短标记<?和?>,但不建议使用。只有通过设置php.ini配置文件中的short_open_tag=On或者在编译安装php时使用配置选项--enable-short-tags时才能使用短标记。
如果文件内容是纯PHP代码,最好在文件末尾删除PHP结束标记。这可以避免在PHP结束标记之后万一意外加入空格或者换行符,会导致浏览器访问PHP文件时输出这些空白,而脚本中此时并无输出的意图。原因就是浏览器访问PHP文件时,服务器会解析PHP文件最后以html的形式返回给浏览器。

2、PHP 嵌入到 HTML标记代码中
凡是在一对开始和结束标记之外的内容都会被PHP解析器忽略,这使得PHP文件可以具备混合内容。可以使PHP嵌入到HTML标记代码中,如下所示:
注意文件名要以.php结尾,因为web服务器不对HTML文件进行解析处理。
<?php if ($is_block == true): ?>
<span>块级元素</span>
<?php else: ?>
<div>行级元素</div>
<?php endif; ?>

3、PHP指令分隔符
同C语言一样,PHP需要在每个语句后用分号(;)结束指令。一段PHP代码中的结束标记隐含表示了一个分号(;),在一个PHP代码段的最后一行可以不用分号结束。如下面的代码都是合法的:
注意:文件末尾的 PHP 代码段结束标记可以不要,有些情况下当使用 include 或者 require 时省略掉会更好些,这样不期望的空白符就不会出现在文件末尾,之后仍然可以输出响应标头。在使用输出缓冲时也很便利,就不会看到由包含文件生成的不期望的空白符。
<?php
    echo "This is a test";
?>

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

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

4、PHP注释
PHP支持 C,C++ 和 Unix Shell 风格(Perl 风格)的注释。例如:
<?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
?> 


猜你喜欢

转载自blog.csdn.net/u014236259/article/details/78300265