1.declare语句
declare
结构通过设定指令(directive
)以用来控制语句块(statement
)的行为。
<?php
//全局范围,影响后面所有代码
declare(directive);
// 这里写完整的脚本
?>
<?php
//局部范围,只影响花括号内的代码
declare(directive)
{
// 这里写完整的脚本
}
?>
1.1ticks指令
目前,只支持 ticks
、encoding
、strict_types
这三个指令。
Tick
是一个在 declare
中的语句块(statement
)中解释器每执行 N
条可计时的低级语句就会发生的事件。N
的值是在 declare
中的 指令(directive
) 用 ticks=N
来指定的。
不是所有语句都可计时,比如条件表达式和参数表达式都不可计时。
在每个 tick 中出现的事件是由 register_tick_function()
来指定的。
<?php
declare(ticks=1);
// 每次 tick 事件都会调用该函数
function tick_handler()
{
echo "tick_handler() called\n";
}
// 引起 tick 事件
register_tick_function('tick_handler');
// 引起 tick 事件
$a = 1;
if ($a > 0) {
// 引起 tick 事件
$a += 2;
// 引起 tick 事件
print($a);
}
?>
//输出
tick_handler() called
tick_handler() called
tick_handler() called
3tick_handler() called
1.2encoding指令
可以用 encoding
指令来对每段脚本指定其编码方式。
<?php
declare(encoding='ISO-8859-1');
// 在这里写代码
?>
1.3strict_types指令
开启严格类型模式。
<?php
declare(strict_types=1);
// 在这里写代码
?>
2.include和include_once语句
include
表达式用于包含并运行指定的文件。因为 include
是一个特殊的语言结构,其参数不需要括号。
//vars.php示例
<?php
$color = 'green';
$fruit = 'apple';
?>
//test.php示例
<?php
echo "A $color $fruit"; // A
include 'vars.php';
echo "A $color $fruit"; // A green apple
?>
先按参数给出的路径寻找,如果没有给出路径(只有文件名)时则按照 include_path选项 指定的路径寻找。如果在 include_path选项 下没找到该文件则 include
最后才在调用脚本文件所在的目录和当前工作目录下寻找。如果最后仍未找到文件则 include
结构会发出一条 E_WARNING
。
include_once
语句和 include
语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含,也就是说,确保文件被包含一次以避免函数重定义,变量重新赋值等问题,且 include_once
会返回 true
。
3.require和require_once语句
require
与 include
的区别是,如果最后仍未找到文件则 require
产生 E_COMPILE_ERROR
级别的错误。换句话说将导致脚本中止而 include
只产生警告(E_WARNING
),脚本会继续运行。
require_once
与 include_once
的区别同上。
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/phplang/19907.html