前言
了解基本语法前,需要先了解下php代码的编译与执行,可以来我这篇文章看下、
https://blog.csdn.net/onlymayao/article/details/104875885
break语法
对于下面一段代码
while(1) {
break;
}
得到AST
得到栈、符号表和常量
得到指令集
include语法
对于下面一段代码
include '1.php';
echo 2;
得到AST
得到栈、符号表和常量
得到指令集
条件判断语法
对于下面一段php代码
$a = "php7";
if($a == "php5") {
echo "PHP5 is good"."\n";
} elseif($a == "php7") {
echo "PHP7 is better"."\n";
} else {
echo "Hoho PHP is the best language!"."\n";
}
得到AST
得到栈、符号表和常量
得到指令集
foreach语法
对于下面一段php代码
$a = [1, 2];
foreach($a as $k=>$v) {
echo $v;
}
得到AST
得到栈、符号表和常量
得到指令集
异常处理
对于下面一段php代码
try {
undefine();
}catch(Error $e) {
echo 1;
}
得到AST
得到栈、符号表和常量
得到指令集
涉及到的面试题
1:php都有哪些文件包含的方式
答:include、include_once、require、require_once
2:include和require的区别
- 加载失败的处理方式不同include在引入不存文件时产生一个警告且脚本还会继续执行,require则会导致一个致命性错误且脚本停止执行。
- include()是有条件包含函数,而 require()则是无条件包含函数
if(FALSE){
include 'file.php'; //file.php不会被引入
}
if(FALSE){
require 'file.php'; //file.php将会被引入
}
- 文件引用方式,include有返回值,而require没有
$retVal= include(’file.php’);
if(!empty($retVal)){
echo "文件包含成功";
}else{
echo "文件包含失败";
}
- include()执行时需要引用的文件每次都要进行读取和评估,require()执行时需要引用的文件只处理一次(实际上执行时需要引用的文件内容替换了require()语句)
- require通常使用方法,这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
- include通常使用方法,这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化
- 可以看出若有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高,若每次执行代码时相读取不同的文件或者有通过一组文件叠代的循环,就使用include(),
3:include和include_once以及require和require_once的区别
答:include_once (require_once)语句在脚本执行期间包含并运行指定文件。此行为和 include (require)语句类似,区别是如果该文件中的代码已经被包含了,则不会再次包含,只会包含一次。include_once(require_once)需要查询一遍已加载的文件列表, 确认是否存在, 然后再加载。