php的declare命令及用法详解

yizhihongxing

下面就为您详细讲解一下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技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • php生成txt文件实例代码介绍

    下面是“php生成txt文件实例代码介绍”的完整攻略: 介绍 在Web开发过程中,经常需要对用户的操作进行记录或者生成一些配置文件等。而PHP语言提供了很方便的方式,可以通过PHP生成txt文件。下面我们就来介绍如何通过PHP代码来生成txt文件。 实现步骤 步骤1:创建文件 首先,我们要创建一个txt文件,在PHP中使用 fopen() 函数来创建文件,代…

    PHP 2023年5月30日
    00
  • 搭建redis续更~

    “心有所向,日复一日,必有精进”前言:想必大家看完我之前写的搭建redis服务器,大家都已经把redis搭建起来了吧如果没有搭建起来的小可爱请移步这里哦从0到1搭建redis6是不是还没看够呢,现在它来了,搭建完redis服务器,我们肯定要去用的,下面我们会一步步讲解redis cluster向PHP客户端扩展。 七、redis cluster 向客户端扩展…

    PHP 2023年4月18日
    00
  • PHP判断是否微信访问的方法示例

    下面就为您讲解如何使用PHP判断是否为微信访问,完整攻略如下: 1. 通过用户代理字符串判断 首先,在PHP中可以通过$_SERVER变量获取当前访问请求的一些信息,其中就包含了用户代理字符串(User-Agent)信息。微信客户端的User-Agent字符串中会包含“WeChat”关键字,因此可以通过判断User-Agent中是否包含“WeChat”来判断…

    PHP 2023年5月23日
    00
  • PHP实现文件上传后台处理脚本

    首先我们先来介绍一下PHP实现文件上传后台处理脚本的基本流程: 通过HTML表单上传文件到后台PHP处理文件 PHP对上传的文件进行一些安全性验证 PHP将上传的文件移动到指定目录 PHP返回上传文件的相关信息,比如文件名、文件类型、文件大小等 下面我们就来详细讲解一下该流程的具体实现过程。 1. 前端HTML表单设计 在HTML代码中,需要设置form表单…

    PHP 2023年5月26日
    00
  • php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析

    下面是详细讲解“php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析”的攻略: 一、函数简介 htmlspecialchars() 是一个 PHP 函数,主要用于将 HTML 中的预定义字符转换成它们对应的 HTML 实体。这样可以避免浏览器将这些字符解析为 HTML 标签,从而防止跨站脚本攻击(XSS)等安全…

    PHP 2023年5月26日
    00
  • 两款万能的php分页类

    为了实现网站瀑布流式的展示方式,我们往往需要利用分页技术。PHP分页类是一个非常常见的工具,大大简化了分页逻辑的实现。下面我将为大家介绍两款优秀的PHP分页类:Pagerfanta和Pagination。 Pagerfanta Pagerfanta是一个功能强大的用于生成分页的PHP库。与一般的分页库不同,它支持分页器的定制,并允许自定义分页器的输出和设置,…

    PHP 2023年5月23日
    00
  • PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析

    下面为您详细讲解PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析的完整攻略。 一、PHP转换进制的相关函数 在PHP中,转换进制可以使用以下函数: decbin($num): 将十进制数转换为二进制数。 decoct($num): 将十进制数转换为八进制数。 hexdec($num): 将十六进制数转换为十进制数。 bindec($num): …

    PHP 2023年5月26日
    00
  • 以实例全面讲解PHP中多进程编程的相关函数的使用

    接下来我会详细讲解“以实例全面讲解PHP中多进程编程的相关函数的使用”的完整攻略。 一、多进程编程简介 在开发中,一个常见的场景是需要同时执行多个任务,例如同时处理多个文件、同时获取多个网页数据等。在这些场景下,单线程的程序通常会耗时很长,因此可以使用多进程的方式来提高程序的执行效率。 多进程编程可以使用PHP中的pcntl库函数,包括pcntl_fork(…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部