下面就为您详细讲解一下PHP的declare命令及用法。
什么是declare命令?
针对PHP5.3以上版本,PHP引入了declare语句,通常称为declare命令。它可以让我们在PHP中开启和关闭一些指定的扩展。
声明语法
declare (directive)
其中directive可以理解为是php.ini配置文件中的一些指令,它可以是下列四个之一:
- ticks:启用或禁用ticks特性。
- encoding:设定当前脚本的非ASCII字符集编码。
- strict_types:PHP 7.0.0 新增,使函数原型有严格的类型检查。
- encoding:设置脚本的编码方式。
使用方法
下面分别列出了两个示例
示例1:使用declare函数打开Ticks特性
Ticks特性是一个特殊的功能, 它可以在PHP完成指令集之后(注意,不是每条语句执行完之后)执行用户自定义的操作。我们通过define或 declare(ticks=N) 来启用它。 事件处理函数会作为参数传递给 declare。
// enable ticks
declare(ticks=10);
// tick event handler
function tick_handler() {
echo "tick_handler() called\n";
}
// register tick event handler
register_tick_function('tick_handler');
// some long-running operations
for ($i = 0; $i < 100000; ++$i) {
if ($i % 10000 == 0) {
echo('processing ' . $i . ' records...' . PHP_EOL);
}
}
// disable ticks
declare(ticks=0);
示例2:使用declare临时设置错误级别
有时候我们需要在处理PHP代码时,临时地调整PHP错误级别,我们就可以使用PHP的declare命令来实现。
// set error level to warning
error_reporting(E_WARNING);
// some warning examples
$test = include 'file.php'; // if file.php not exist E_WARNING will be throw
$arr = array(1);
echo $arr[1]; // "Notice: Undefined offset: 1"
@file('not_exist.txt'); // "Warning: file(not_exist.txt): failed to open stream:"
echo "this line will be printed";
// reset error level
declare(ticks=1) {
error_reporting(E_ALL);
}
// some error examples
$test = include 'file.php'; // if file.php not exist E_WARNING will be throw
$arr = array(1);
echo $arr[1]; // "Notice: Undefined offset: 1"
@file('not_exist.txt'); // "Warning: file(not_exist.txt): failed to open stream:"
echo "this line will not be printed";
这两个示例体现了使用declare命令的两个常见用法,希望您能在日后的开发中加以运用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php的declare命令及用法详解 - Python技术站