新全局常量

COM

  • DISP_E_PARAMNOTFOUND
  • LOCALE_NEUTRAL

cURL

  • CURLALTSVC_H1 (libcurl >= 7.64.1)
  • CURLALTSVC_H2 (libcurl >= 7.64.1)
  • CURLALTSVC_H3 (libcurl >= 7.64.1)
  • CURLALTSVC_READONLYFILE (libcurl >= 7.64.1)
  • CURLAUTH_AWS_SIGV4 (libcurl >= 7.75.0)
  • CURLE_PROXY (libcurl >= 7.73.0)
  • CURLFTPMETHOD_DEFAULT
  • CURLHSTS_ENABLE (libcurl >= 7.74.0)
  • CURLHSTS_READONLYFILE (libcurl >= 7.74.0)
  • CURLINFO_PROXY_ERROR (libcurl >= 7.73.0)
  • CURLINFO_REFERER (libcurl >= 7.76.0)
  • CURLINFO_RETRY_AFTER (libcurl >= 7.66.0)
  • CURLMOPT_MAX_CONCURRENT_STREAMS (libcurl >= 7.67.0)
  • CURLOPT_ALTSVC_CTRL (libcurl >= 7.64.1)
  • CURLOPT_ALTSVC (libcurl >= 7.64.1)
  • CURLOPT_AWS_SIGV4 (libcurl >= 7.75.0)
  • CURLOPT_CAINFO_BLOB (libcurl >= 7.77.0)
  • CURLOPT_DOH_SSL_VERIFYHOST (libcurl >= 7.76.0)
  • CURLOPT_DOH_SSL_VERIFYPEER (libcurl >= 7.76.0)
  • CURLOPT_DOH_SSL_VERIFYSTATUS (libcurl >= 7.76.0)
  • CURLOPT_HSTS_CTRL (libcurl >= 7.74.0)
  • CURLOPT_HSTS (libcurl >= 7.74.0)
  • CURLOPT_MAIL_RCPT_ALLLOWFAILS (libcurl >= 7.69.0)
  • CURLOPT_MAXAGE_CONN (libcurl >= 7.65.0)
  • CURLOPT_MAXFILESIZE_LARGE
  • CURLOPT_MAXLIFETIME_CONN (libcurl >= 7.80.0)
  • CURLOPT_PROXY_CAINFO_BLOB (libcurl >= 7.77.0)
  • CURLOPT_SASL_AUTHZID (libcurl >= 7.66.0)
  • CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (libcurl >= 7.80.0)
  • CURLOPT_SSL_EC_CURVES (libcurl >= 7.73.0)
  • CURLOPT_UPKEEP_INTERVAL_MS (libcurl >= 7.62.0)
  • CURLOPT_UPLOAD_BUFFERSIZE (libcurl >= 7.62.0)
  • CURLOPT_XFERINFOFUNCTION (libcurl >= 7.32.0)
  • CURLPROTO_MQTT (libcurl >= 7.71.0)
  • CURLPX_BAD_ADDRESS_TYPE (libcurl >= 7.73.0)
  • CURLPX_BAD_VERSION (libcurl >= 7.73.0)
  • CURLPX_CLOSED (libcurl >= 7.73.0)
  • CURLPX_GSSAPI (libcurl >= 7.73.0)
  • CURLPX_GSSAPI_PERMSG (libcurl >= 7.73.0)
  • CURLPX_GSSAPI_PROTECTION (libcurl >= 7.73.0)
  • CURLPX_IDENTD_DIFFER (libcurl >= 7.73.0)
  • CURLPX_IDENTD (libcurl >= 7.73.0)
  • CURLPX_LONG_HOSTNAME (libcurl >= 7.73.0)
  • CURLPX_LONG_PASSWD (libcurl >= 7.73.0)
  • CURLPX_LONG_USER (libcurl >= 7.73.0)
  • CURLPX_NO_AUTH (libcurl >= 7.73.0)
  • CURLPX_OK (libcurl >= 7.73.0)
  • CURLPX_RECV_ADDRESS (libcurl >= 7.73.0)
  • CURLPX_RECV_AUTH (libcurl >= 7.73.0)
  • CURLPX_RECV_CONNECT (libcurl >= 7.73.0)
  • CURLPX_RECV_REQACK (libcurl >= 7.73.0)
  • CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (libcurl >= 7.73.0)
  • CURLPX_REPLY_COMMAND_NOT_SUPPORTED (libcurl >= 7.73.0)
  • CURLPX_REPLY_CONNECTION_REFUSED (libcurl >= 7.73.0)
  • CURLPX_REPLY_GENERAL_SERVER_FAILURE (libcurl >= 7.73.0)
  • CURLPX_REPLY_HOST_UNREACHABLE (libcurl >= 7.73.0)
  • CURLPX_REPLY_NETWORK_UNREACHABLE (libcurl >= 7.73.0)
  • CURLPX_REPLY_NOT_ALLOWED (libcurl >= 7.73.0)
  • CURLPX_REPLY_TTL_EXPIRED (libcurl >= 7.73.0)
  • CURLPX_REPLY_UNASSIGNED (libcurl >= 7.73.0)
  • CURLPX_REQUEST_FAILED (libcurl >= 7.73.0)
  • CURLPX_RESOLVE_HOST (libcurl >= 7.73.0)
  • CURLPX_SEND_AUTH (libcurl >= 7.73.0)
  • CURLPX_SEND_CONNECT (libcurl >= 7.73.0)
  • CURLPX_SEND_REQUEST (libcurl >= 7.73.0)
  • CURLPX_UNKNOWN_FAIL (libcurl >= 7.73.0)
  • CURLPX_UNKNOWN_MODE (libcurl >= 7.73.0)
  • CURLPX_USER_REJECTED (libcurl >= 7.73.0)
  • CURLSSLOPT_AUTO_CLIENT_CERT (libcurl >= 7.77.0)
  • CURLSSLOPT_NATIVE_CA (libcurl >= 7.71.0)
  • CURLSSLOPT_NO_PARTIALCHAIN (libcurl >= 7.68.0)
  • CURLSSLOPT_REVOKE_BEST_EFFORT (libcurl >= 7.70.0)
  • CURL_VERSION_GSASL (libcurl >= 7.76.0)
  • CURL_VERSION_HSTS (libcurl >= 7.74.0)
  • CURL_VERSION_HTTP3 (libcurl >= 7.66.0)
  • CURL_VERSION_UNICODE (libcurl >= 7.72.0)
  • CURL_VERSION_ZSTD (libcurl >= 7.72.0)

DBA

  • DBA_LMDB_USE_SUB_DIR
  • DBA_LMDB_NO_SUB_DIR

Filter

  • FILTER_FLAG_GLOBAL_RANGE

Sockets

如果支持则会定义下列套接字选项：

  • SO_INCOMING_CPU
  • SO_MEMINFO
  • SO_RTABLE (OpenBSD)
  • TCP_KEEPALIVE (MacOS)
  • TCP_KEEPCNT (Linux, others)
  • TCP_KEEPIDLE (Linux, others)
  • TCP_KEEPINTVL (Linux, others)
  • TCP_NOTSENT_LOWAT
  • LOCAL_CREDS_PERSISTENT (FreeBSD)
  • SCM_CREDS2 (FreeBSD)
  • LOCAL_CREDS (NetBSD)
  • SO_BPF_EXTENSIONS
  • SO_SETFIB
  • TCP_CONGESTION (Linux, FreeBSD)
  • SO_ZEROCOPY (Linux)
  • MSG_ZEROCOPY (Linux)

User Contributed Notes

There are no user contributed notes for this page.


不向后兼容的变更

Date

现 DateTime::createFromImmutable() 返回类型暂定为 static，之前是 DateTime。

现 DateTimeImmutable::createFromMutable() 返回类型暂定为 static，之前是 DateTimeImmutable。

相对格式的 number 符号不再接受多个符号，比如 +-2。

ODBC

ODBC 扩展对于 connection 字符串和 username/password 一起传递时，会对 username 和 password 进行转义，并将其追加。之前，包含需要转义的用户值可能会创建格式错误的 connection 字符串，或从用户提供的数据中注入值。转义规则应与 .NET BCL DbConnectionOptions 的行为相同。

PDO_ODBC

当传递连接字符串时，PDO_ODBC 扩展也会转义用户名和密码。参阅 ODBC 扩展的更改获取更多相信信息。

标准

如果所有路径都受到 open_basedir 限制，现在 glob() 会返回空 array。此外，即便只有一些路径受到 open_basedir 限制，也会发出警告。

FilesystemIterator::__construct()：在 PHP 8.2.0 之前，FilesystemIterator::SKIP_DOTS 常量始终设置且无法禁用。当使用 flags 参数时，为了保持之前的行为，常量必须显式设置。flags 参数的默认值并未修改。

strtolower()、strtoupper()、stristr()、stripos()、strripos()、lcfirst()、ucfirst()、ucwords() 和 str_ireplace() 不再对区域设置敏感。现在执行 ASCII 大小写转换，就好像区域设置是"C"一样。这些函数的本地化版本在 MBString 扩展 可以使用。此外 array_change_key_case() 使用 SORT_FLAG_CASE 排序现在也是用 ASCII 大小写转换。

str_split() 现在 string 将返回空 array。之前会返回带有一个空字符串条目的数组。mb_str_split() 不受更改的影响，因为它的行为就是如此。

ksort() 和 krsort() 现在使用 PHP 8 标准规则在 SORT_REGULAR 下进行数字字符串比较。

var_export() 不再省略导出类的开头斜线，也就是说，这些类现在完全合格。

PHP 标准库（SPL）

下列方法现在强制执行其签名：

  • SplFileInfo::_bad_state_ex()
  • SplFileObject::getCsvControl()
  • SplFileObject::fflush()
  • SplFileObject::ftell()
  • SplFileObject::fgetc()
  • SplFileObject::fpassthru()

现 SplFileObject::hasChildren() 返回类型暂定为 false，之前是 bool。

现 SplFileObject::getChildren() 返回类型暂定为 null，之前是 ?RecursiveIterator。

如果所有路径都受到 open_basedir 的影响，GlobIterator 现在将返回空 array。之前返回 false。此外，即使只有一些路径受 open_basedir 限制，现在也会发出警告。

User Contributed Notes

There are no user contributed notes for this page.


废弃的功能

PHP 核心

动态属性的使用

弃用动态属性创建，除非类选择使用 #[\AllowDynamicProperties] 注解。stdClass 允许动态属性。__get()/__set() 魔术方法不受此更改的影响。解决动态属性弃用警告，可以通过以下方式：

  • 声明属性（首选）。
  • 将 #[\AllowDynamicProperties] 添加到 #[\AllowDynamicProperties]（这也适用于所有子类）。
  • 如果需要将附加数据于不属于自己的对象相关联，则使用 WeakMap。

Relative callables

弃用 $callable() 语法不接受的可调用对象（但 call_user_func() 接受）。尤其是：

  • "self::method"
  • "parent::method"
  • "static::method"
  • ["self", "method"]
  • ["parent", "method"]
  • ["static", "method"]
  • ["Foo", "Bar::method"]
  • [new Foo, "Bar::method"]
这不会影响正常方法调用，比如 "A::method" 或 ["A", "method"]。

"${var}" 和 "${expr}" 样式插值

弃用字符串插值的 "${var}" 和 "${expr}" 样式。 Use "$var"/"{$var}" and "{${expr}}", respectively.

MBString

对于所有的 MBString 函数，已经弃用了 QPrint、Base64、Uuencode 和 HTML-ENTITIES 等"文本编码"。 与 MBString 支持的其他文本编码不同，这些编码不是对 Unicode 码点序列进行编码，而是对原始字节序列进行编码。当指定了这些非编码时，大多数 MBString 函数的返回值不清楚是否正确。此外，PHP 已经内置了它们的单独实现；例如，可以使用 convert_uuencode()/convert_uudecode() 处理 Uuencode 编码的数据。

SPL

弃用内部方法 SplFileInfo::_bad_state_ex()。

标准

弃用 utf8_encode() 和 utf8_decode()。

User Contributed Notes

There are no user contributed notes for this page.


其他变更

核心变更

现在 iterable 类型是内置编译时 array|Traversable 的别名。因此与 iterable 相关的错误消息现在将使用 array|Traversable。类型反射将会保留单个 iterable （和 ?iterable）以生成名为 iterable 的 ReflectionNamedType，然而，在联合类型中使用 iterable 将会转换为 array|Traversable。

发送 Cookie 的日期格式现在为 'D, d M Y H:i:s \G\M\T'； 以前是 'D, d-M-Y H:i:s T'。

SAPI 模块变更

CLI

STDOUT、STDERR 和 STDIN 流不会在资源销毁时关闭，而是在 CLI 销毁时关闭。但仍然可以使用 fclose() 和类似的方法显式关闭这些流。

函数变更

核心

strcmp()、strcasecmp()、strncmp()、strncasecmp()
和 substr_compare() 函数，使用二进制安全字符串比较，在字符串长度不想等时不再保证返回 strlen($string1) -
strlen($string2)。但现在可能会返回 -1 或 1。返回值不应依赖于任何具体值，而应与
0 进行比较。

DBA

dba_open() 和 dba_popen() 现在具有以下强制签名：

dba_open(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

dba_fetch() 的可选 skip 参数现在位于末尾，符合 PHP 用户态语义。现在签名是：

dba_fetch(string|array $key, resource $handle, int $skip): string|false
重载签名：
dba_fetch(string|array $key, int $skip, resource $handle): string|false
仍可接受，但建议使用新的标准变体。

Random

random_bytes() 和 random_int() 现在在 CSPRNG 失败时会抛出 \Random\RandomException。之前将抛出普通的 \Exception。

SPL

iterator_to_array() 和 iterator_count() 的 iterator 参数从 Iterator 扩展为 iterable，允许传递数组。

其它扩展变更

Date

DatePeriod 的属性现在已经正确声明。

Intl

IntlBreakIterator、IntlRuleBasedBreakIterator、IntlCodePointBreakIterator、 IntlPartsIterator、IntlCalendar、Collator、 IntlIterator、UConverter、IntlDateFormatter、 IntlDatePatternGenerator、MessageFormatter、ResourceBundle、 Spoofchecker、IntlTimeZone 和 Transliterator 的实例不再可序列化。之前可以对其序列化，但反序列化时会产生无效对象或者失败。

MySQLi

移除对 libmysql 的支持，不能再用 libmysql 编译 mysqli。从现在起，mysqli 扩展只能用 mysqlnd 编译。mysqlnd 中所有不能用的 libmysql 功能已被移除：

  • mysqli_driver 的 reconnect 属性
  • mysqli.reconnect INI 指令
  • 弃用 MYSQLI_IS_MARIADB 常量

OCI8

Oracle Client 库最低版本现在是 11.2。

PCRE

现在模式字符串支持 NUL 字符（\0）。

Session

当 Session 已经启用或者已经发送输出时，尝试更改 session.cookie_samesite INI 指令会失败且发出异常。该行为与所有其它 INI 设置保持一致。

SQLite3

sqlite3.defensive 现在是 INI_USER。

标准

getimagesize() 现在报告 AVIF 图像的实际尺寸、位和通道。之前尺寸报告为 0x0，位和通道根本就不报告。

Tidy

tidy 类的属性现在已正确声明且为只读（readonly）。

Zip

Zip 扩展升级到版本 1.20.0，新增以下方法：

  • ZipArchive::clearError()
  • ZipArchive::getStreamName()
  • ZipArchive::getStreamIndex()

INI 文件处理更变

整数 INI 设置中新增对二进制（0b/0B）和八进制（0o/0O）的前缀支持。以 0 开头的整数 INI 设置将继续解释为八进制整数。

解析一些格式错误的值现在将抛出警告，以前会默默忽略。为了向后兼容，这些值的解释并没有改变。会影响以下设置：

  • bcmath.scale
  • com.code_page
  • default_socket_timeout
  • fiber.stack_size
  • hard_timeout
  • intl.error_level
  • ldap.max_links
  • max_input_nesting_level
  • max_input_vars
  • mbstring.regex_retry_limit
  • mbstring.regex_stack_limit
  • mysqli.allow_local_infile
  • mysqli.allow_persistent
  • mysqli.default_port
  • mysqli.max_links
  • mysqli.max_persistent
  • mysqli.rollback_on_cached_plink
  • mysqlnd.log_mask
  • mysqlnd.mempool_default_size
  • mysqlnd.net_read_buffer_size
  • mysqlnd.net_read_timeout
  • oci8.default_prefetch
  • oci8.max_persistent
  • oci8.persistent_timeout
  • oci8.ping_interval
  • oci8.prefetch_lob_size
  • oci8.privileged_connect
  • oci8.statement_cache_size
  • odbc.allow_persistent
  • odbc.check_persistent
  • odbc.max_persistent
  • odbc.max_links
  • odbc.defaultbinmode
  • odbc.default_cursortype
  • odbc.defaultlrl
  • opcache.consistency_checks
  • opcache.file_update_protection
  • opcache.force_restart_timeout
  • opcache.interned_strings_buffer
  • opcache.jit_bisect_limit
  • opcache.jit_blacklist_root_trace
  • opcache.jit_blacklist_side_trace
  • opcache.jit_debug
  • opcache.jit_hot_func
  • opcache.jit_hot_loop
  • opcache.jit_hot_return
  • opcache.jit_hot_side_exit
  • opcache.jit_max_exit_counters
  • opcache.jit_max_loop_unrolls
  • opcache.jit_max_polymorphic_calls
  • opcache.jit_max_recursive_calls
  • opcache.jit_max_recursive_returns
  • opcache.jit_max_root_traces
  • opcache.jit_max_side_traces
  • opcache.log_verbosity_level
  • opcache.max_file_size
  • opcache.opt_debug_level
  • opcache.optimization_level
  • opcache.revalidate_freq
  • output_buffering
  • pcre.backtrack_limit
  • pcre.recursion_limit
  • pgsql.max_links
  • pgsql.max_persistent
  • post_max_size
  • realpath_cache_size
  • realpath_cache_ttl
  • session.cache_expire
  • session.cookie_lifetime
  • session.gc_divisor
  • session.gc_maxlifetime
  • session.gc_probability
  • soap.wsdl_cache_limit
  • soap.wsdl_cache_ttl
  • unserialize_max_depth
  • upload_max_filesize
  • user_ini.cache_ttl
  • xmlrpc_error_number
  • zend.assertions
  • zlib.output_compression_level

User Contributed Notes

There are no user contributed notes for this page.


Windows 支持

核心

Windows 特定错误消息不在本地化，而始终以英文显示以更好的匹配 PHP 错误消息。

新增初步且高度实验性的 ARM64 构建支持。

OCI8

因为无论如何都不再支持对 Oracle Client 10g 进行构建，所以已删除配置项 --with-oci8。仍然支持 --with-oci8-11g、--with-oci8-12c 和 --with-oci8-19 配置项。

Zip

Zip 扩展已升级到版本 1.21.0，且默认构建为共享库（DLL）。

User Contributed Notes

There are no user contributed notes for this page.


从 PHP 8.0.x 移植到 PHP 8.1.x

Table of Contents

  • 新特性
  • 新的类和接口
  • 新函数
  • 新的全局常量
  • 不向后兼容的变更
  • PHP 8.1.x 废弃的功能
  • 其他变更

新的次要版本带来了许多新功能和几个不兼容，在生产环境上切换 PHP 版本前需要做测试。

参见 PHP 版本迁移指南 7.1.x、7.2.x、7.3.x、7.4.x、8.0.x。

User Contributed Notes

There are no user contributed notes for this page.


新特性

PHP 核心

八进制整数文字表达前缀

类似于二进制和十六进制字面量表达方式，现在八进制整数可以在表示中使用更为清晰地前缀 0o/0O 。

<?php
014; // 无前缀的八进制表示
0o14; // 添加前缀的八进制表示
?>

支持字符串类型键的数组解包

新增字符串类型键的数组解包。

<?php
$arr1 = [1, 'a' => 'b'];
$arr2 = [...$arr1, 'c' => 'd']; //[1, 'a' => 'b', 'c' => 'd']
?>

参数展开后命名参数

现在可以在参数展开后为命名参数。 例如：foo(...$args, named: $arg).

文件上传新增 full-path 键

现在文件上传新增了额外的 full_path 键，这包含了上传文件的完整路径（不仅仅是返回路径中的文件名部分）。这是为了与 "upload webkitdirectory" 结合使用。

枚举

新增枚举支持。

纤程

新增功能详见 Fibers。

First Class 可调用语法

现在可调用闭包可以使用 myFunc(...) 语法创建，与 Closure::fromCallable('myFunc')效果一样。

Note: ... 是语法的一部分，不是省略。

交集类型

新增功能详见交集类型。

Caution

交集类型不能与联合类型 一起使用。

Never 类型

新增新的唯一返回类型 never。它表示函数要么 exit() ，要么抛出异常，要么不会终止。

在初始化中 new

现在可以将 new ClassName() 语句作为参数、静态变量、初始化全局常量、注解参数的默认值。现在对象可以作为 define() 的参数了。

Readonly 属性

详见 readonly。

final 类常量

详见 final 常量修饰符。而且，接口常量默认可覆盖。

CURL

新增 CURLOPT_DOH_URL 选项。

libcurl 版本 >= 7.71.0 时增加 blob 证书选项：

  • CURLOPT_ISSUERCERT_BLOB
  • CURLOPT_PROXY_ISSUERCERT
  • CURLOPT_PROXY_ISSUERCERT_BLOB
  • CURLOPT_PROXY_SSLCERT_BLOB
  • CURLOPT_PROXY_SSLKEY_BLOB
  • CURLOPT_SSLCERT_BLOB
  • CURLOPT_SSLKEY_BLOB

增加 CURLStringFile 类，它能够直接将字符串（不是文件）作为文件上传。

<?php
$file = new CURLStringFile($data, 'filename.txt', 'text/plain');
curl_setopt($curl, CURLOPT_POSTFIELDS, ['file' => $file]);
?>

FPM

新增 openmetrics 数据格式。Prometheus 可以用它来获取 FPM 的监测指标。

动态进程管理模式下，新增 pm.max_spawn_rate 设置。该设置在动态模式下会更快生成初始数量的子进程。默认值为 32 ，这在以前是硬编码值。

GD

如果在编译安装 libgd 时添加 AVIF 依赖包，现在通过 imagecreatefromavif() 和 imageavif() 函数可获得 AVIF 图片格式，

Hash

现在，下列函数 hash()、hash_file() 和 hash_init() 新增一个额外的 options 参数，该参数作为特定数据传递给函数算法。

MurmurHash3

新增对 MurmurHash3（支持流）的支持。有以下形式提供：

  • murmur3a，32 位散列
  • murmur3c，x86 的 128 位散列
  • murmur3f，x64 的 128 位散列

hash 初始状态可以通过键为 seed 的 options 数组传递，例如：

<?php
$h = hash("murmur3f", $data, options: ["seed" => 42]);
echo $h, "\n";
?>
seed 的有效值范围为 0 到系统定义的 UINT_MAX，通常是 4294967295。

xxHash

增加 xxHash 的支持。有以下形式提供：

  • xxh32，32 位散列
  • xxh64，64 位散列
  • xxh3，64 位散列
  • xxh128，128 位散列

hash 初始状态可以通过键为 seed 的 options 数组传递，例如：

<?php
$h = hash("xxh3", $data, options: ["seed" => 42]);
echo $h, "\n";
?>
使用秘钥可以通过键为 secret 的 options 数组传递，例如：
<?php
$h = hash("xxh3", $data, options: ["secret" => "at least 136 bytes long secret here"]);
echo $h, "\n";
?>
自定义秘钥的质量对生成的散列质量至关重要。强烈建议秘钥尽可能使用最高标准的熵。

MySQLi

新增 INI 设置 mysqli.local_infile_directory

新增 mysqli.local_infile_directory INI 设置，该设置可以指定允许加载文件的目录。这个设置只在禁用 mysqli.allow_local_infile 时才有意义，这种情况下允许加载任意的文件目录。

execute 可绑定参数

现在可以将参数以数组的形式传递给 mysqli_stmt::execute() 来绑定参数。所有值都以字符串的形式绑定。仅支持普通数组。当使用 libmysqlclient 编译 MySQLi 时，这个新功能不可使用。

<?php
$stmt = $mysqli->prepare('INSERT INTO users(id, name) VALUES(?,?)');
$stmt->execute([1, $username]);
?>

新方法 mysqli_result::fetch_column()

新增 mysqli_result::fetch_column() 方法可以从结果集中获取单个标量值。新方法接收 int 类型、从 0 开始，可选的 column 参数，用于从指定行获取数据。

<?php
$result = $mysqli->query('SELECT username FROM users WHERE id = 123');
echo $result->fetch_column();
?>

PDO

新增 PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY 常量，可用于指定可加载的文件目录。这个设置只在禁用 PDO::MYSQL_ATTR_LOCAL_INFILE 时才有意义，这种情况下允许加载任意的文件目录。

PDO_SQLite

现在已支持 SQLite 的 "file:" DSN 语法。可用于指定额外的标志。该功能在已设置 open_basedir 的情况下不能使用。

<?php
new PDO('sqlite:file:path/to/sqlite.db?mode=ro')
?>

POSIX

新增 POSIX_RLIMIT_KQUEUES 和 POSIX_RLIMIT_NPTS。这些 rlimits 只在 FreeBSD 可用。

标准

现在 fputcsv() 新增参数 eol，这个参数允许自定义数据的行尾值，默认值是 "\n"。

PHP 标准库（SPL）

现在 SplFileObject::fputcsv() 新增参数 eol，这个参数允许自定义数据的结束位置，默认值保持不变，还是 "\n"。

User Contributed Notes

There are no user contributed notes for this page.


新的类和接口

cURL

  • CURLStringFile

Intl

  • IntlDatePatternGenerator

Reflection

  • ReflectionFiber

User Contributed Notes

There are no user contributed notes for this page.


新函数

PHP 核心

  • array_is_list()

GD

  • imagecreatefromavif()
  • imageavif()

MySQLi

  • mysqli_result::fetch_column()
  • mysqli_fetch_column()

进程控制

  • pcntl_rfork()

反射

  • ReflectionFunctionAbstract::getClosureUsedVariables()

常规

  • fsync()
  • fdatasync()

Sodium

XChaCha20

  • sodium_crypto_stream_xchacha20()
  • sodium_crypto_stream_xchacha20_keygen()
  • sodium_crypto_stream_xchacha20_xor()

Ristretto255

自 libsodium 1.0.18 起，Ristretto255 函数已经可用。

  • sodium_crypto_core_ristretto255_add()
  • sodium_crypto_core_ristretto255_from_hash()
  • sodium_crypto_core_ristretto255_is_valid_point()
  • sodium_crypto_core_ristretto255_random()
  • sodium_crypto_core_ristretto255_scalar_add()
  • sodium_crypto_core_ristretto255_scalar_complement()
  • sodium_crypto_core_ristretto255_scalar_invert()
  • sodium_crypto_core_ristretto255_scalar_mul()
  • sodium_crypto_core_ristretto255_scalar_negate()
  • sodium_crypto_core_ristretto255_scalar_random()
  • sodium_crypto_core_ristretto255_scalar_reduce()
  • sodium_crypto_core_ristretto255_scalar_sub()
  • sodium_crypto_core_ristretto255_sub()
  • sodium_crypto_scalarmult_ristretto255()
  • sodium_crypto_scalarmult_ristretto255_base()

User Contributed Notes

There are no user contributed notes for this page.


新的全局常量

cURL

  • CURLOPT_DOH_URL
  • CURLOPT_ISSUERCERT_BLOB
  • CURLOPT_PROXY_ISSUERCERT
  • CURLOPT_PROXY_ISSUERCERT_BLOB
  • CURLOPT_PROXY_SSLCERT_BLOB
  • CURLOPT_PROXY_SSLKEY_BLOB
  • CURLOPT_SSLCERT_BLOB
  • CURLOPT_SSLKEY_BLOB

GD

  • IMG_AVIF
  • IMG_WEBP_LOSSLESS

MySQLi

  • MYSQLI_REFRESH_REPLICA

    与上游 MySQL 的变化保持一致，这个常量被添加来取代 MYSQLI_REFRESH_SLAVE。由于向后兼容的原因，旧的常量仍然可用，但在未来可能会被废弃/删除。

PCNTL

  • PRIO_DARWIN_BG
  • PRIO_DARWIN_THREAD

POSIX

  • POSIX_RLIMIT_KQUEUES
  • POSIX_RLIMIT_NPTS

Sockets

如果支持以下套接字选项的话，它们将会被定义：

  • SO_ACCEPTFILTER
  • SO_DONTTRUNC
  • SO_WANTMORE
  • SO_MARK
  • TCP_DEFER_ACCEPT

Sodium

  • SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES
  • SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES
  • SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES

Tokenizer

  • T_READONLY

User Contributed Notes

There are no user contributed notes for this page.


不向后兼容的变更

PHP 内核

$GLOBALS 访问限制

现在访问 $GLOBALS 数组受到一些限制。对单个数组元素的读写访问 $GLOBALS['var'] 与之前一样。也将继续支持对整个数组 $GLOBALS 的只读访问。但是，不再支持对整个 $GLOBALS 数组的写访问。例如 array_pop($GLOBALS) 将返回错误。

在继承的方法中 static 变量的用法

当一个方法使用继承的（而不是重写的）静态变量时，继承的方法将与父级共享这个静态变量。

<?php
class A {
public static function counter() {
static $counter = 0;
$counter++;
return $counter;
}
}
class B extends A {}
var_dump(A::counter()); // int(1)
var_dump(A::counter()); // int(2)
var_dump(B::counter()); // int(3)，之前是 int(1)
var_dump(B::counter()); // int(4)，之前是 int(2)
?>
这意味着方法中的静态变量现在的使用方式与静态属性一样。

在强制参数之前指定可选参数

现在在强制参数之前指定可选参数都被视为强制参数，即使是使用命名参数调用也是如此。自 PHP 8.0.0 起至 PHP 8.1.0 之前，在定义时会发出弃用通知，但能成功调用。自 PHP 8.1.0 起，会抛出类为 ArgumentCountError 的错误，就跟使用位置参数调用一样。

<?php
function makeyogurt($container = "bowl", $flavour)
{
return "Making a $container of $flavour yogurt.\n";
}
try
{
echo makeyogurt(flavour: "raspberry");
}
catch (Error $e)
{
echo get_class($e), ' - ', $e->getMessage(), "\n";
}
?>

以上示例在 PHP 8.0 中的输出：

Deprecated: Required parameter $flavour follows optional parameter $container
 in example.php on line 3
Making a bowl of raspberry yogurt.

以上示例在 PHP 8.1 中的输出：

Deprecated: Optional parameter $container declared before required parameter
 $flavour is implicitly treated as a required parameter in example.php on line 3
ArgumentCountError - makeyogurt(): Argument #1 ($container) not passed

注意，在强制参数之前可以使用 null 默认值来指定可为空类型，但仍然需要该参数。

返回类型与内部类的兼容性

大多数非 final 的内部方法现在要求重写方法声明一个可兼容的返回类型，否则在继承时会给出方法废弃的提示。如果由于 PHP 跨版本兼容性的问题，导致不能为重写方法声明返回类型，则可以添加 ReturnTypeWillChange 注解来取消废弃提示。

新的关键词

现在 readonly 是一个关键词。不过，它仍然可以被用作函数名。

never 现在是保留字，所以不能用于类，接口或者 trait，也禁止在命名空间中使用。

Resource 类型迁移为 Object 类型

一些 resource 类型已被迁移到 object 类型。要检查返回值，应该从 is_resource() 检查是否为资源，更改为检查返回值是否等于 false。

  • 现在 FileInfo 函数接收并返回 finfo 对象类型，而不是 fileinfo resource 类型。

  • 现在 FTP 函数接收并返回 FTP\Connection 对象类型，而不是 ftp resource 类型。

  • 现在 IMAP 函数接收并返回 IMAP\Connection 对象类型，而不是 imap resource 类型。

  • 现在 LDAP 函数接收并返回 LDAP\Connection 对象类型，而不是 ldap link resource 类型。

  • 现在 LDAP 函数接收并返回 LDAP\Result 对象类型，而不是 ldap result resource 类型。

  • 现在 LDAP 函数接收并返回 LDAP\ResultEntry 对象类型，而不是 ldap result entry resource 类型。

  • 现在 PgSQL 函数接收并返回 PgSql\Connection 对象类型，而不是 pgsql link resource 类型。

  • 现在 PgSQL 函数接收并返回 PgSql\Result 对象类型，而不是 pgsql result resource 类型。

  • 现在 PgSQL 函数接收并返回 PgSql\Lob 对象类型，而不是 pgsql large object resource 类型。

  • 现在 PSpell 函数接收并返回 PSpell\Dictionary 对象类型，而不是 pspell resource 类型。

  • 现在 PSpell 函数接收并返回 PSpell\Config 对象类型，而不是 pspell config resource 类型。

MySQLi

现在 mysqli_fetch_fields() 和 mysqli_fetch_field_direct() 对于 max_length 将返回 0 值。这一信息可以迭代结果集来计算，并获取最大长度。这是之前 PHP 内部的做法。

常量 MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH 不再生效。

常量 MYSQLI_STORE_RESULT_COPY_DATA 不再生效。传递给 mysqli::store_result() 的 mode 参数的所有值不再生效。

现在 mysqli::connect() 成功时返回 true 而不再返回 null。

默认错误处理模式已经由 silent 变成了 exception，更多详情及如何设置该属性请参见 MySQLi 报告模式。要恢复之前的行为习惯，请使用：mysqli_report(MYSQLI_REPORT_OFF);

现在，扩展 mysqli_stmt::execute() 类需要指定额外的可选参数。

MySQLnd

mysqlnd.fetch_data_copy INI 指令已被取消。这不会造成用户可见的变化。

OpenSSL

现在 EC 私钥将以 PKCS#8 格式导出，而非像其他秘钥那样的传统格式。

现在 openssl_pkcs7_encrypt() 和 openssl_cms_encrypt() 将默认使用 AES-128-CBC，而非 RC2-40。RC2-40 加密被认为是不安全的，OpenSSL 3 默认不启用。

PHP 数据对象

现在 PDO::ATTR_STRINGIFY_FETCHES 的类型从 bool 变成了字符串 "0" 或 "1"。之前的 bool 类型没有被字符串化。

现在当 PDO::ATTR_STRINGIFY_FETCHES 未启用时，以 PDO::PARAM_LOB 为参数调用 PDOStatement::bindColumn() 结果将始终绑定流。以前，结果是流或字符串，这取决于所用的数据库驱动及其执行绑定的时间。

MySQL 驱动

现在，当使用模拟预处理时，结果集里面的整数及浮点数将会以 PHP 原始类型返回，而不是字符串。这与原生的预处理方式一样。之前的行为方式可以通过 PDO::ATTR_STRINGIFY_FETCHES 恢复。

SQLite 驱动

现在，结果集中的整数及浮点数将会以 PHP 原始类型返回。之前的行为方式可以通过 PDO::ATTR_STRINGIFY_FETCHES 恢复。

Phar

为了遵守 ArrayAccess 接口，Phar::offsetUnset() 和 PharData::offsetUnset() 不再以 bool 类型返回。

常规

version_compare() 函数不再接收未经记录的操作符缩写。

现在 htmlspecialchars()、htmlentities()、htmlspecialchars_decode()、html_entity_decode()、get_html_translation_table() 使用 ENT_QUOTES | ENT_SUBSTITUTE 作为默认值，而不再是 ENT_COMPAT。这意味着 ' 被转义为 &#039; 而不像之前那样不作处理。此外，有缺陷的 UTF-8 将被 Unicode 替代字符（substitute character）替换，而不是产生一个空字符串。

现在 debug_zval_dump() 函数可以打印封装的引用计数了，不仅仅只是打印 & 引用计数的值。这更准确地模拟了自 PHP 7.0 以来的引用注解。

现在 debug_zval_dump() 可打印 interned 字符串，而不是 interned 字符串和不可变数组的虚拟的引用计数。

PHP 标准库（SPL）

SplFixedArray 将会像 array 类型一样被 JSON 编码。

User Contributed Notes

There are no user contributed notes for this page.


PHP 8.1.x 废弃的功能

PHP 核心中废弃的功能

实现无 __serialize() 和 __unserialize() 的 Serializable

如果不用兼容 PHP 7.4 以前的版本，就只需要实现新的方法，否则需要同时实现两个方法。

将 null 传递给内置函数的非 null 值参数

内置函数的标量类型默认可为 null。废弃为了与用户定义的函数行为保持一致，标量类型需要明确标记为可为 null 的行为。

<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
// is deprecated
?>

不兼容从 float 到 int 的隐式转换

从 float 隐式转换为 int 将会导致精度的丢失，目前这种行为已被废弃。 这将影响到 array 中的键、严格模式下 int 类型的声明以及对 int 的操作。

<?php
$a = [];
$a[15.5]; // 废弃，作为键值将会丢失 0.5
$a[15.0]; // OK，因为 15.0 == 15
?>

在 trait 上调用 static 元素

在 trait 上直接调用 static 方法、直接访问 static 属性的行为已被废弃。静态方法和属性只能在使用了 trait 的类上被访问。

在 __sleep() 中返回非 array 类型值

在 __sleep() 中返回一个非 array 类型的值现在将会产生一个诊断。

在返回值为 void 的函数中通过引用进行返回

<?php
function &test(): void {}
?>
这种函数是相互矛盾的，在调用时已经发出了 E_NOTICE 提示：Only variable references should be returned by reference。

对 false 进行自动代入（Autovivification）

自动代入指的是追加一个值时创建出新 array 的过程。对于标量值而言，自动代入是不被允许的；然而 false 是一个例外。现在这将会被废弃。

<?php
$arr = false;
$arr[] = 2; // 废弃
?>

Note:

对 null 或者未定义的值进行自动代入仍然是被允许的：

<?php
// 从未定义的值
$arr[] = 'some value';
$arr['doesNotExist'][] = 2;
// 从 null
$arr = null;
$arr[] = 2;
?>

ctype

校验非字符串类型的参数

传递一个非字符串类型参数的行为已被废弃。在将来，参数将被解释为一个字符串而不是 ASCII 编码。根据可预期的行为，参数需要被转化为 string 或者对 chr() 进行一次显式调用。这会影响所有的 ctype_*() 函数。

Date

在 date_sun_info() 的支持下，date_sunrise() 和 date_sunset() 已被废弃。

strptime() 已被废弃。请使用
date_parse_from_format()
（不依赖 locale 的解析）或者 IntlDateFormatter::parse()
（依赖 locale 的解析）代替。

strftime() 和 gmstrftime() 已被废弃。请使用date()（不依赖 locale 的格式化）或者 IntlDateFormatter::format() （依赖 locale 的格式化）代替。

Filter

FILTER_SANITIZE_STRING 和 FILTER_SANITIZE_STRIPPED 过滤器已被废弃。

INI 设置项 filter.default 已被废弃

GD

imagepolygon()、imageopenpolygon() 和 imagefilledpolygon() 的 num_points 参数已被废弃。

Hash

mhash()、
mhash_keygen_s2k()、
mhash_count()、
mhash_get_block_size()、
mhash_get_hash_name() 已被废弃。 请使用
hash_*() 系列函数代替。

IMAP

NIL 常量已被废弃。请使用 0 代替。

Intl

使用 bool 参数调用 IntlCalendar::roll() 已被废弃。请分别使用 1 和 -1 来代替 true and false。

多字节字符串

无参数调用 mb_check_encoding() 已被废弃。

MySQLi

mysqli_driver::$driver_version 属性已被废弃。它是无意义且过时的，使用 PHP_VERSION_ID 来代替。

使用 mysqli 参数来调用
mysqli::get_client_info()
或 mysqli_get_client_info() 已被废弃。请不带任何参数调用
mysqli_get_client_info()
来获取客户端类库的版本信息。

mysqli::init() 方法已被废弃。使用 parent::__construct() 来代替对 parent::init() 的调用。

OCI8

INI 设置项 oci8.old_oci_close_semantics 已被废弃。

ODBC

odbc_result_all() 已被废弃。

PDO

PDO::FETCH_SERIALIZE 获取模式已被废弃。

PgSQL

对于所有 pgsql_*() 函数不传递连接参数的方式已被废弃。

SOAP

在 SSL 流上下文参数的代替下， SoapClient::__construct() 的 ssl_method 选项已被废弃。

常规

在对象上调用 key()、current()、
next()、prev()、
reset() 或 end() 的方式已被废弃。
可以使用 get_mangled_object_vars() 将对象转换为数组，
或使用实现 Iterator 的类所提供的方法，
例如 ArrayIterator 来代替。

INI 配置项 auto_detect_line_endings 已被废弃。如有必要，可以手动处理 "\r" 换行符。

FILE_BINARY 和 FILE_TEXT 常量已被废弃。它们从未产生过任何作用。

User Contributed Notes

There are no user contributed notes for this page.


其他变更

SAPI 模块的变更

CLI

如果没有安装 readline 扩展，使用 -a 选项现在将导致错误。在之前，如果没有 readline 扩展的话 -a 与直接无参数调用 php 的表现一样，除了额外显示一行 "Interactive mode enabled" 消息。这个模式非交互模式。

PHPDBG

phpdbg 的远程功能已经被移除。

函数的变更

核心

在 foreach、var_dump()、serialize()、对象比较等场景中属性的顺序发生了改变。现在，属性将根据它们的声明与继承进行排序，在基类中声明的属性将排在子类属性之前。

这个顺序与 zend_object 结构中属性的内部布局保持一致，并且重复了 default_properties_table[] 和 properties_info_table[] 中的顺序。旧的顺序没有被记录下来，是由类的继承实现细节造成的。

Filter

FILTER_VALIDATE_INT 过滤器的 FILTER_FLAG_ALLOW_OCTAL 标识现在接受带八进制前缀（"0o"/"0O"）的八进制字符串。

GMP

所有的 GMP 函数现在接受带八进制前缀（"0o"/"0O"）的八进制字符串。

PDO ODBC

带着 PDO::ATTR_SERVER_INFO 和
PDO::ATTR_SERVER_VERSION 常量的
PDO::getAttribute()
方法现在返回的是值而不是抛出 PDOException 异常。

Reflection

ReflectionProperty::setAccessible() 和 ReflectionMethod::setAccessible() 将不再起作用。属性和方法现在总被认为是能够通过反射访问的。

常规

syslog() 现在是二进制安全的。

其他扩展变更

GD

imagewebp() 现在可以通过传递 IMG_WEBP_LOSSLESS 作为质量来实现无损的 WebP 编码了。

这个常量只有在所使用的 libgd 支持无损 WebP 编码的情况在才会被定义。

MySQLi

在连接 libmysqlclient 时，mysqli_stmt::next_result() 和 mysqli::fetch_all() 现在可以使用了。

OpenSSL

  • OpenSSL 扩展现在至少需要 OpenSSL 1.0.2 版本。

  • 现在已经支持 OpenSSL 3.0 了。请注意许多密码算法（部分老的提供者）不再是默认启用的，以及参数校验（例如：最小秘钥长度）比以前更加严格了。

Phar

  • 现在签名的默认算法为 SHA256。

  • 签名算法增加了对 OpenSSL_SHA256 和 OpenSSL_SHA512 的支持。

SNMP

  • 为安全协议增加了对 SHA256 和 SHA512 的支持。

常规

--with-password-argon2 现在使用 pkg-config 来检测 libargon2。因此现在应该使用 PKG_CONFIG_PATH 来修改 libargon2 的位置。

INI 文件处理的变化

  • INI 配置项 log_errors_max_len 已经被移除。从 PHP 8.0.0 开始将不再起作用。

  • 一个在引用字符串中的前置美元符号现在可以被转义："\${" 将会被解释为内容包含 ${ 的字符串。

  • 双引号内的字符串中反斜线现在被更一致地视为转义字符。之前 "foo\\" 的后面如果是除换行之外的其他字符是不被视为一个终止字符串的。现在，它被解释成一个内容为 foo\ 的字符串。然而有一个例外的地方是后面跟着换行符的字符串 "foo\" 将继续被视为一个有效的、内容为"foo\"的字符串，而不是一个还没有结束的字符串。这个例外的存在是为了天然支持 Windows 文件路径的使用，如 "C:\foo\"。

User Contributed Notes

There are no user contributed notes for this page.


从 PHP 7.4.x 移植到 PHP 8.0.x

Table of Contents

  • 新特性
  • 不向后兼容的变更
  • PHP 8.0 废弃的功能
  • 其他变更

新的主版本号带来了一些新特性和不兼容处，在生产环境上切换 PHP 版本前需要做测试。

参见 PHP 版本迁移指南 7.0.x、7.1.x、7.2.x、7.3.x、7.4.x。

User Contributed Notes

There are no user contributed notes for this page.


新特性

PHP 核心中的新特性

命名参数

新增命名参数的功能。

注解（Attributes）

新增注解的功能。

构造器属性提升（Constructor Property Promotion）

新增对构造器属性提升（在构造函数中声明类的属性）的支持。

联合类型

新增联合类型。

match 表达式

新增 match 表达式。

Nullsafe 运算符

新增 Nullsafe 运算符（?->）。

其他新特性

  • 新增 WeakMap 类。

  • 新增 ValueError 类。

  • 现在，只要类型兼容，任意数量的函数参数都可以用一个可变参数替换。例如允许编写下面的代码：

    <?php
    class A {
    public function     method(int $many, string $parameters, $here) {}
    }
    class     B extends A {
    public function     method(...$everything) {}
    }
    ?>

  • static（"后期静态绑定"中）可以作为返回类型：

    <?php
    class Test {
    public function     create(): static {
    return new static();
    }
    }
    ?>

  • 现在可以通过 $object::class 获取类名，返回的结果和 get_class($object) 一致。

  • new、instanceof 可用于任何表达式，用法为 new (expression)(...$args) 和 $obj instanceof (expression)。

  • 添加对一些变量语法一致性的修复，例如现在能够编写 Foo::BAR::$baz。

  • 添加 Stringable interface，当类定义 __toString() 方法后会自动实现该接口。

  • Trait 可以定义私有抽象方法（abstract private method）。类必须实现 trait 定义的该方法。

  • 可作为表达式使用 throw。使得可以编写以下用法：

    <?php
    $fn     = fn() => throw new Exception('Exception in arrow function');
    $user = $session->user ?? throw new Exception('Must have user');

  • 参数列表中的末尾逗号为可选。

    <?php
    function functionWithLongSignature(
    Type1 $parameter1,
    Type2 $parameter2, // <-- 这个逗号也被允许了
    ) {
    }

  • 现在允许 catch (Exception) exception 而无需捕获到变量中。

  • 支持 mixed 类型。

  • 父类中声明的私有方法不在对子类中的方法执行任何继承规则（final private 构造方法除外）。下列示例说明删除了那些限制：

    <?php
    class ParentClass {
    private function     method1() {}
    private function     method2() {}
    private static function     method3() {}
    // 抛出警告，因为"final"不再有效：
    private final function method4() {}
    }
    class     ChildClass extends ParentClass {
    // 现在允许以下所有内容，即使修饰符与父类中的私有方法不同。
    public abstract function method1() {}
    public static function     method2() {}
    public function     method3() {}
    public function     method4() {}
    }
    ?>

  • 新增 get_resource_id()，返回值跟 (int) $resource 相同。其在更清晰的 API 下提供了相同的功能。

  • 新增 InternalIterator。

日期和时间

  • 新增 DateTime::createFromInterface() 和 DateTimeImmutable::createFromInterface()。

  • 新增 DateTime 格式化标识符 p，跟 P 相同，但对于 UTC 返回 Z 而不是 +00:00。

DOM

新增新遍历和操作 API：DOMParentNode 和 DOMChildNode。

Filter

新增 FILTER_VALIDATE_BOOL，是 FILTER_VALIDATE_BOOLEAN 的别名。首选新名称，因为其使用规范类型名称。

Enchant

新增 enchant_dict_add()、enchant_dict_is_added() 和 LIBENCHANT_VERSION。

FPM

新增新选项 pm.status_listen，允许从不同的端点（例如端口或者 UDS 文件）获取状态。这对于所有的子进程忙于处理长时间运行的请求时获取状态特别有用。

Hash

HashContext 对象现在可序列化。

国际化函数

新增 IntlDateFormatter::RELATIVE_FULL、IntlDateFormatter::RELATIVE_LONG、IntlDateFormatter::RELATIVE_MEDIUM 和 IntlDateFormatter::RELATIVE_SHORT 常量。

LDAP

新增 ldap_count_references()，返回搜索结果中引用消息的数量。

OPcache

如果启用了 opcache.record_warnings ini 设置，OPcache 将在编译时记录警告并在下一次包含时重放，即使是从缓存中提供的。

OpenSSL

新增由加密、解密、签名、验证和读取功能组成的加密消息语法（CMS）（» RFC 5652）支持。该 API 类似于 PKCS #7 函数的 API，但增加了新的编码常量 OPENSSL_ENCODING_DER、OPENSSL_ENCODING_SMIME 和 OPENSSL_ENCODING_PEM：

  • openssl_cms_encrypt() 使用证书加密文件中的消息并将结果输出到提供的文件。
  • openssl_cms_decrypt() 解密文件中的 S/MIME 消息并将结果输出到提供的文件。
  • openssl_cms_read() 将 CMS 文件导出到 PEM 证书数组。
  • openssl_cms_sign() 使用证书和密钥对文件中的 MIME 消息进行签名，并将结果输出到提供的文件。
  • openssl_cms_verify() 用于验证数据块是否完好无损，签名者是否是声称的那个人，然后返回签名者的证书。

正则表达式（兼容 Perl）

新增 preg_last_error_msg()，返回最后一条人可读的 PCRE 错误消息。它是对 preg_last_error()（返回整数枚举值）的补充。

反射

  • 下列方法现在返回内部函数参数默认值的相关信息：

    • ReflectionParameter::isDefaultValueAvailable()
    • ReflectionParameter::getDefaultValue()
    • ReflectionParameter::isDefaultValueConstant()
    • ReflectionParameter::getDefaultValueConstantName()

SQLite3

新增 SQLite3::setAuthorizer() 和相应类常量，用于设置用户定义的回调函数，该函数将用于数据库的授权或拒绝操作。

标准库

  • 新增 str_contains()、str_starts_with() 和 str_ends_with()，分别检查 haystack 是否包含 needle 或以 needle 开头/结尾。

  • 新增 fdiv() 在 IEEE 754 语义下执行浮点除法。认为除以零已经明确定义，将返回 Inf、-Inf 或 NaN。

  • 新增 get_debug_type() 返回对错误消息有用的类型。与 gettype() 不同的是，它使用规范的类型名称，为对象返回类名，为资源表示资源类型。

  • printf() 和相关函数现在支持 %h 和 %H 格式说明符。它们与 %g 和 %G 相同，但始终使用 "." 作为小数点分隔符，而不是通过 LC_NUMERIC 区域确定。

  • 现在，printf() 和相关函数支持使用 "*" 作为宽度或精度，此时宽度/精度将作为参数传递给 printf。这也允许在 %g、%G、%h 和 %H 中使用精度 -1。例如，以下代码可用于重现 PHP 的默认浮点数格式化：

    <?php
    printf    ("%.*H", (int) ini_get("precision"), $float);
    printf("%.*H", (int) ini_get("serialize_precision"), $float);
    ?>

  • 现在，proc_open() 支持伪终端（PTY）描述符。以下将 stdin、stdout 和 stderr 附加到同一个 PTY：

    <?php
    $proc     = proc_open($command, [['pty'], ['pty'], ['pty']], $pipes);
    ?>

  • proc_open() 现在支持套接字对描述符。以下将独立的套接字对附加到 stdin、stdout 和 stderr：

    <?php
    $proc     = proc_open($command, [['socket'], ['socket'], ['socket']], $pipes);
    ?>

    与管道不同，套接字在 Windows 上不会出现阻塞 I/O 问题。然而，并非所有程序都能正确地与 stdio 套接字配合工作。

  • 排序函数现在已稳定，这意味着相等的元素比较将保留其原始顺序。

  • array_diff() 和 array_intersect() 及其变体现在可以接受单个数组作为参数。这意味着现在可以使用下列用法：

    <?php
    // 如果 $excludes 为空也可以：
    array_diff($array, ...$excludes);
    // 如果 $arrays 仅包含单个数组也可以：
    array_intersect(...$arrays);
    ?>

  • ob_implicit_flush() 的 flag 参数已经从接受 int 变更为接受 bool。

Tokenizer

PhpToken 为分词器（tokenizer）新增基于对象的接口。表现更为统一且符合人体工程学，同时内存效率更高、速度更快。

Zip

  • Zip 扩展更新到版本 1.19.1。

  • 新的 ZipArchive::setMtimeName() 和 ZipArchive::setMtimeIndex() 设置条目的修改时间。

  • 新的 ZipArchive::registerProgressCallback() 提供在关闭归档期间更新。

  • 新的 ZipArchive::registerCancelCallback() 允许在归档关闭期间取消。

  • 新的 ZipArchive::replaceFile() 替换条目内容。

  • 新的 ZipArchive::isCompressionMethodSupported() 检查可选的压缩功能。

  • 新的 ZipArchive::isEncryptionMethodSupported() 检查可选的加密功能。

  • 新增 ZipArchive::lastId 属性，用于获取最后新增实体的索引值。

  • 现在使用 ZipArchive::status 和 ZipArchive::statusSys 属性或者 ZipArchive::getStatusString() 方法可以在归档关闭后检查错误。

  • ZipArchive::addGlob() 和 ZipArchive::addPattern() 的 'remove_path' 选项现在视为任意字符串前缀（为了跟 'add_path' 选项保持一致），之前视为目录名称。

  • 可选的压缩/加密功能现在在 phpinfo 中列出。

User Contributed Notes

There are no user contributed notes for this page.


不向后兼容的变更

PHP 核心中不向后兼容的变更

字符串与数字的比较

数字与非数字形式的字符串之间的非严格比较现在将首先将数字转为字符串，然后比较这两个字符串。 数字与数字形式的字符串之间的比较仍然像之前那样进行。 请注意，这意味着 0 == "not-a-number" 现在将被认为是 false 。

比较 | 之前 | 之后
0 == "0" | true | true
0 == "0.0" | true | true
0 == "foo" | true | false
0 == "" | true | false
42 == " 42" | true | true
42 == "42foo" | true | false

其它不向后兼容的变更

  • match 现在是一个保留字。

  • 断言（Assertion）失败现在默认抛出异常。如果想要改回之前的行为，可以在 INI 设置中设置 assert.exception=0 。

  • mixed 现在是保留字，所以不能用于类，接口或者 trait，也禁止在命名空间中使用。

  • 与类名相同的方法名将不再被当做构造方法。应该使用 __construct() 来取代它。

  • 不再允许通过静态调用的方式去调用非静态方法。因此 is_callable() 在检查一个类名与非静态方法时将返回失败（应当检查一个类的实例）。

  • (real) 和 (unset) 转换已被移除。

  • 移除 track_errors 执行。这意味着不能再用 php_errormsg。可以改用 error_get_last() 函数。

  • 移除定义不区分大小写的常量功能。define() 的第三个参数可能不再为 true。

  • 移除使用 __autoload() 函数指定自动加载器的功能。应该改用 spl_autoload_register()。

  • errcontext 参数将不再传递给使用 set_error_handler() 设置的自定义错误处理程序。

  • 移除 create_function()。应该改用匿名函数。

  • 移除 each()。应该改用 foreach 或者 ArrayIterator。

  • 移除在方法中使用 Closure::fromCallable() 或 ReflectionMethod::getClosure() 创建的匿名函数中解绑 this 的能力。

  • 移除了从包含 this 使用的正常闭包中解绑 this 的能力。

  • 移除对对象使用 array_key_exists() 的能力。应该改用 isset() 或 property_exists()。

  • array_key_exists() 中 key 参数类型的行为已经和 isset() 和正常数组访问一致。所有的 key 类型现在使用通用的强制转换，数组/对象 key 会抛出 TypeError。

  • 任意一个数组，将数字 n 作为第一个数字 key，下一个隐式键将会是 n+1。即使 n 为负数也是如此。

  • error_reporting 默认级别现在是 E_ALL。之前排除 E_NOTICE 和 E_DEPRECATED。

  • 现在默认启用 display_startup_errors。

  • 在没有父级的类中使用 parent 将会导致 fatal compile-time 错误。

  • @ 操作将不再屏蔽 fatal 错误（E_ERROR、E_CORE_ERROR、E_COMPILE_ERROR、E_USER_ERROR、E_RECOVERABLE_ERROR、E_PARSE）。当使用 @ 时，接受 error_reporting 为 0 的错误处理程序，应该调整为使用位掩码检查：

    <?php
    // 之前
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
    if (    error_reporting() == 0) {
    return     false;
    }
    // ...
    }

    // 现在
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
    if (!(    error_reporting() & $err_no)) {
    return     false;
    }
    // ...
    }
    ?>

    此外，应注意在生产环境中不显示错误消息，这可能会导致信息泄露。确保 display_errors=Off 与错误记录一起使用。

  • #[ 不再解释为注释的开头，因为此语法现在用于注解。

  • 由于不兼容的方法签名（违反 LSP）导致的继承错误现在将始终生成致命错误。以前在某些情况下会生成警告。

  • 相对于位移、加法还有减法，连接运算符的优先级已经更改。

    <?php
    echo "Sum: " . $a + $b;
    // 之前解释为：
    echo ("Sum: " . $a) + $b;
    // 现在解释为：
    echo "Sum:" . ($a + $b);
    ?>

  • 在运行时默认值解析为 null 的参数，将不在默默将参数类型标记为可为 null。必须改用指定可为 null 类型或者默认值为 null。

    <?php
    // 之前：
    function test(int $arg = CONST_RESOLVING_TO_NULL) {}
    // 之后：
    function test(?int $arg = CONST_RESOLVING_TO_NULL) {}
    // 或者是
    function test(int $arg = null) {}
    ?>

  • 一些警告已转换为 Error 异常：

    • 尝试向非对象写入属性。之前会默默的为 null、false 和空字符串创建 stdClass 对象。
    • 尝试追加元素到已使用 PHP_INT_MAX 作为 key 的数组。
    • 尝试使用无效类型（array 或 object）作为数组的 key 或者字符串的 offset。
    • 尝试向标量值写入数组索引。
    • 尝试解包非数组或 Traversable。
    • 尝试访问未定义的常量，之前，访问未定义的常量将会导致警告并解释为字符串。
    • 传递错误的参数数量到非可变参数内置函数将引发 ArgumentCountError。
    • 传递无效的可数的类型到 count() 将抛出 TypeError。

    一些通知已转换为警告：

    • 尝试读取未定义的变量。
    • 尝试读取未定义的属性。
    • 尝试读取未定义的数组 key。
    • 尝试读取非对象的属性。
    • 尝试读取非数组的数组索引。
    • 尝试转换数组为字符串。
    • 尝试使用资源作为数组 key。
    • 尝试使用 null、bool、float 作为字符串 offset。
    • 尝试读取越界的字符串 offset。
    • 尝试将空字符串分配给字符串 offset。

  • 尝试将多字节字符串分配给字符串 offset 现在将发出警告。

  • 源文件中的异常字符（比如字符串边界外的 NUL 字节）现在将导致 ParseError 异常而不是编译警告。

  • 未捕获异常现在会经过"clean shutdown"，这意味着未捕获的异常之后调用析构方法。

  • 编译时 fatal error"Only variables can be passed by reference"已延迟到运行时，并转换为"Argument cannot be passed by reference"Error 异常。

  • 一些"Only variables should be passed by reference"通知已转换为"Argument cannot be passed by reference"异常。

  • 匿名类生成的名称已经发生了改变。现在生成的名称将包括第一个父类或接口的名称：

    <?php
    new class extends ParentClass {};
    // -> ParentClass@anonymous
    new class implements FirstInterface, SecondInterface {};
    // -> FirstInterface@anonymous
    new class {};
    // -> class@anonymous
    ?>

    上面显示的名称仍然后跟 NUL 字节和唯一的后缀。

  • trait 别名适配中的非绝对 trait 方法引用现在必须明确：

    <?php
    class X {
    use     T1, T2 {
    func as otherFunc;
    }
    function     func() {}
    }
    ?>

    如果同时存在 T1::func() 和 T2::func()，以前此代码会默默接受，并且 func 指向 T1::func。现在则会生成 fatal error，必须明确编写 T1::func or T2::func。

  • trait 中定义的 abstract 方法签名现在会检查类中实现的方法：

    <?php
    trait MyTrait {
    abstract private function     neededByTrait(): string;
    }

    class     MyClass {
    use     MyTrait;

    // 错误，因为返回类型不匹配。
    private function neededByTrait(): int { return 42; }
    }
    ?>

  • 现在将禁用的函数视为不存在的函数，调用禁用函数将报告未知，并且现在可以重新定义已禁用的函数。

  • data:// 流封装协议不在可写，这与文档中的行为相匹配。

  • 算术和位操作符 +、-、*、/、**、%、<<、>>、&、|、^、~、++、-- 的其中一个操作符是 array、resource 或非重载 object 时，现在将始终抛出 TypeError。唯一的例外是仍然支持 array + array 的合并操作。

  • 浮点数到字符串的强制转换现在始终不会受到独立 locale 的影响。

    <?php
    setlocale    (LC_ALL, "de_DE");
    $f = 3.14;
    echo     $f, "\n";
    // Previously: 3,14
    // Now: 3.14
    ?>

    参阅 printf()、number_format() 和 NumberFormatter() 了解自定义数字格式的方法。

  • 已经移除对使用大括号（花括号）进行偏移量访问的弃用支持。

    <?php
    // 将：
    $array{0};
    $array{"key"};
    // 改为：
    $array[0];
    $array["key"];
    ?>

  • 在私有方法上应用 final 修饰符现在将产生警告，除非该方法是构造方法。

  • 如果对象的构造方法 exit()，那么将不再调用对象的析构方法，这与构造方法抛出异常时的行为相匹配。

  • 命名空间名不能再包含空格：Foo\Bar 将识别为命名空间名称，而 Foo \ Bar 则不能。相反，保留关键字现在允许作为命名空间片段，这可能也会改变代码的解释：new\x 现在与 constant('new\x') 相同，而不是 new \x()。

  • 嵌套的三元表达式现在需要的括号。

  • debug_backtrace() 和 Exception::getTrace() 将不再提供对参数的引用。通过回溯将不可能更改函数参数。

  • 数字字符串的处理方式已经更改，以便更直观和更少出错。现在允许在数字字符串中使用尾随空格，以便与起始空格的处理方式保持一致。这主要影响：

    • is_numeric() 函数
    • 字符串间的比较
    • 类型声明
    • 递增/减操作

    "前置数字字符串"的概念已删除大部分；仍然存在的目的是为了简化迁移。发出 E_NOTICE"A non well-formed numeric value encountered"的字符串现在将发出 E_WARNING"A non-numeric value encountered"，并且所有发出 E_WARNING"A non-numeric value encountered"的字符串现在将抛出 TypeError。这主要会影响：

    • 算术运算
    • 位运算

    E_WARNING 到 TypeError 的变更也影响了 E_WARNING"Illegal string offset 'string'"的非法字符串偏移。从字符串到 int/float 的明确强制转换的行为没有改变。

  • 如果魔术方法声明了参数和返回类型，那么它们现在将会检查这些。签名应该与以下列表匹配：

    • __call(string $name, array $arguments): mixed
    • __callStatic(string $name, array $arguments): mixed
    • __clone(): void
    • __debugInfo(): ?array
    • __get(string $name): mixed
    • __invoke(mixed $arguments): mixed
    • __isset(string $name): bool
    • __serialize(): array
    • __set(string $name, mixed $value): void
    • __set_state(array $properties): object
    • __sleep(): array
    • __unserialize(array $data): void
    • __unset(string $name): void
    • __wakeup(): void

  • call_user_func_array() 数组的键现在将解释为参数名，而不是默默忽略。

  • 不再允许在命名空间内声明名为 assert() 的函数，并发出 E_COMPILE_ERROR。assert() 函数受引擎的特殊处理，当定义具有相同名称的命名空间函数时，可能会导致不一致的行为。

迁移资源到对象

一些 resource 已经迁移到了 object。返回值检测从使用 is_resource() 替换为是否是 false。

  • curl_init() 现在将返回 CurlHandle 对象而不是 resource。curl_close() 函数不再有作用，相反，如果不再引用，CurlHandle 实例将自动销毁。

  • curl_multi_init() 现在将返回 CurlMultiHandle 对象而不是 resource。curl_multi_close() 函数不再有作用，相反，如果不再引用，CurlMultiHandle 实例将自动销毁。

  • curl_share_init() 现在将返回 CurlShareHandle 对象而不是 resource。curl_share_close() 函数不再有作用，相反，如果不再引用，CurlShareHandle 实例将自动销毁。

  • enchant_broker_init() 现在将返回 EnchantBroker 对象而不是 resource。

  • enchant_broker_request_dict() 和 enchant_broker_request_pwl_dict() 现在将返回 EnchantDictionary 对象而不是 resource。

  • GD 扩展现在使用 GdImage 对象作为图像的底层数据结构，而不是 resource。imagedestroy() 函数不再有作用，相反，如果不再引用，GdImage 实例将自动销毁。

  • openssl_x509_read() 和 openssl_csr_sign() 现在将返回 OpenSSLCertificate 对象而不是 resource。弃用 openssl_x509_free() 函数且不再起作用，相反，如果不再引用，OpenSSLCertificate 实例将自动销毁。

  • openssl_csr_new() 现在将返回 OpenSSLCertificateSigningRequest 对象而不是 resource。

  • openssl_pkey_new() 现在将返回 OpenSSLAsymmetricKey 对象而不是 resource。弃用 openssl_pkey_free() 函数且不再起作用，相反，如果不再引用，OpenSSLAsymmetricKey 实例将自动销毁。

  • shmop_open() 现在将返回 Shmop 对象而不是 resource。弃用 shmop_close() 函数且不再起作用，相反，如果不再引用，Shmop 实例将自动销毁。

  • socket_create()、socket_create_listen()、socket_accept()、socket_import_stream()、socket_addrinfo_connect()、socket_addrinfo_bind()
和 socket_wsaprotocol_info_import() 现在将返回 Socket 对象而不是
resource。socket_addrinfo_lookup() 现在将返回 AddressInfo 对象组成的数组，而不是 resource。

  • msg_get_queue() 现在将返回 SysvMessageQueue 对象而不是 resource。

  • sem_get() 现在将返回 SysvSemaphore 对象而不是 resource。

  • shm_attach() 现在将返回 SysvSharedMemory 对象而不是 resource。

  • xml_parser_create() 和 xml_parser_create_ns() 现在将返回 XMLParser 对象而不是 resource。xml_parser_free() 函数不再有作用，相反，如果不再引用，XmlParser 实例将自动销毁。

  • XMLWriter 函数现在分别接受和返回 XMLWriter 对象而不是 resource。

  • inflate_init() 现在将返回 InflateContext 对象而不是 resource。

  • deflate_init() 现在将返回 DeflateContext 对象而不是 resource。

COM 和 .Net (Windows)

移除从类型库导入不区分大小写常量的功能。com_load_typelib() 的第二个参数不再是 false；不再禁用 com.autoregister_casesensitive；忽略 com.typelib_file 中的不区分大小写标记。

CURL

CURLOPT_POSTFIELDS 不再接受对象作为数组。要将对象解释为数组，手动执行 (array) 转换。这同样适用于接受数组的其它选项。

日期和时间

mktime() 和 gmmktime() 现在强制需要至少一个参数。time() 可以用来获取当前时间戳。

DOM

已移除 DOM 扩展中无行为和包含测试数据的的未实现类。这些类也已在最新版本的 DOM 标准中移除：

  • DOMNameList
  • DomImplementationList
  • DOMConfiguration
  • DomError
  • DomErrorHandler
  • DOMImplementationSource
  • DOMLocator
  • DOMUserDataHandler
  • DOMTypeInfo
  • DOMStringExtend

已移除 DOM 扩展中没有实现行为的方法：

  • DOMNamedNodeMap::setNamedItem()
  • DOMNamedNodeMap::removeNamedItem()
  • DOMNamedNodeMap::setNamedItemNS()
  • DOMNamedNodeMap::removeNamedItemNS()
  • DOMText::replaceWholeText()
  • DOMNode::compareDocumentPosition()
  • DOMNode::isEqualNode()
  • DOMNode::getFeature()
  • DOMNode::setUserData()
  • DOMNode::getUserData()
  • DOMDocument::renameNode()

Enchant

  • enchant_broker_list_dicts()、enchant_broker_describe() 和 enchant_dict_suggest() 现在将返回空数组而不是 null。

Exif

已移除 read_exif_data()；应该使用 exif_read_data() 替代。

Filter

  • 已移除 FILTER_VALIDATE_URL 过滤中的 FILTER_FLAG_SCHEME_REQUIRED 和 FILTER_FLAG_HOST_REQUIRED flag。scheme 和 host 始终（并且一直）必需。

  • filter_input() 等函数的 INPUT_REQUEST 和 INPUT_SESSION 源码已经移除。这些从未实现过，并且使用它们将始终生成警告。

GD

  • 移除弃用函数 image2wbmp()。

  • 移除弃用函数 png2wbmp() 和 jpeg2wbmp()。

  • imagecropauto() 的 mode 参数默认不再接受 -1。而是应该使用 IMG_CROP_DEFAULT。

  • Windows 上，php_gd2.dll 已经重命名为 php_gd.dll。

GMP

已经移除 gmp_random()。应该使用 gmp_random_range() 或 gmp_random_bits()。

Iconv

不再支持在发生错误时没有正确设置 errno 的 iconv 实现。

IMAP

  • imap_headerinfo() 已移除未使用的 default_host 参数。

  • 已移除 imap_headerinfo() 的别名函数 imap_header()。

国际化函数

  • 已移除弃用常量 INTL_IDNA_VARIANT_2003。

  • 移除弃用常量 Normalizer::NONE。

LDAP

  • 移除弃用函数 ldap_sort()、ldap_control_paged_result() 和 ldap_control_paged_result_response()。

  • ldap_set_rebind_proc() 的接口已修改；callback 不再接受空字符串；应该使用 null 代替。

MBString

  • 已移除 mbstring.func_overload 指令。与其相关的 MB_OVERLOAD_MAIL、MB_OVERLOAD_STRING 和 MB_OVERLOAD_REGEX 常量也已移除。最后，mb_get_info() 中的 "func_overload" 和 "func_overload_list" 条目也已移除。

  • 使用 mb_parse_str() 时必须指定结果数组。

  • 一些弃用的的 mbregex 别名已移除。请参阅下面的列表，以了解应该使用哪些函数：

    • mbregex_encoding() → mb_regex_encoding()
    • mbereg() → mb_ereg()
    • mberegi() → mb_eregi()
    • mbereg_replace() → mb_ereg_replace()
    • mberegi_replace() → mb_eregi_replace()
    • mbsplit() → mb_split()
    • mbereg_match() → mb_ereg_match()
    • mbereg_search() → mb_ereg_search()
    • mbereg_search_pos() → mb_ereg_search_pos()
    • mbereg_search_regs() → mb_ereg_search_regs()
    • mbereg_search_init() → mb_ereg_search_init()
    • mbereg_search_getregs() → mb_ereg_search_getregs()
    • mbereg_search_getpos() → mb_ereg_search_getpos()
    • mbereg_search_setpos() → mb_ereg_search_setpos()

  • mb_ereg_replace() 已移除 e 修饰符。应该使用 mb_ereg_replace_callback() 代替。

  • mb_ereg_replace() 的非字符串模式参数现在将解释为字符串而不是 ASCII 码点。可以通过调用 chr() 来恢复以前的行为。

  • mb_strpos()、mb_strrpos()、mb_stripos()、mb_strripos()、mb_strstr()、mb_stristr()、mb_strrchr() 和 mb_strrichr() 的 needle 参数现在可以为空。

  • 已移除 mb_decode_numericentity() 内部不使用的 is_hex 参数。

  • mb_strrpos() 函数的第三个参数传递编码而不是偏移量的遗留行为已经移除；应该将带编码的 0 偏移量作为第四个参数提供。

  • ISO_8859-* 字符编码的别名已替换为 ISO8859-* 别名，以便与 iconv 扩展实现更好的互操作性。带下划线的 mbregex ISO 8859 别名（ISO_8859_* 和 ISO8859_*）也已移除。

  • mb_ereg() 和 mb_eregi() 现在将在匹配成功时返回布尔值 true。之前，如果未传递 matches，则返回整数 1；如果传递了 matches，则返回 max(1, strlen($matches[0]))。

OCI8

  • OCI-Lob 类现在叫做 OCILob，OCI-Collection 类现在叫做 OCICollection，以实现 PHP 8 arginfo 类型注释工具强制执行的名称合规。

  • 多个别名函数已标记为已弃用。

  • oci_internal_debug() 及其 ociinternaldebug() 已移除。

ODBC

  • odbc_connect() 不再重用连接。

  • odbc_exec() 未使用的 flags 参数已移除。

OpenSSL

  • openssl_seal() 和 openssl_open() 现在需要传递 method，现在认为之前的 "RC4" 默认值不安全。

正则表达式（Perl 兼容）

当传递无效的转义序列时，将不再解释为文字。此行为之前需要 X 修饰符——现在已忽略。

PHP 数据对象

  • 默认错误处理模式已经从"silent"变更为"exceptions"。参阅错误和错误处理获取详情。

  • 一些 PDO 方法的签名已更改：

    • PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs)
    • PDOStatement::setFetchMode(int $mode, mixed ...$args)

PDO ODBC

php.ini 指令 pdo_odbc.db2_instance_name 已移除。

PDO MySQL

PDO::inTransaction() 现在报告连接的实际事务状态，而不是 PDO 维护的近似状态。如果执行的是"隐式事务"查询，PDO::inTransaction() 将会随后返回 false，因为事务不再活动状态。

PostgreSQL

  • 弃用的 pg_connect() 使用多个参数的语法不再支持，而是使用连接字符串。

  • 弃用的 pg_lo_import() 和 pg_lo_export() 将 connection 作为最后一个参数传递的签名不再支持。应该将 connection 作为第一个参数传递。

  • pg_fetch_all() 对于 0 条记录的结果集，现在将返回空数组而不是 false。

Phar

与 phar 关联的元数据将不再自动反序列化，以修复由于对象实例化、自动加载等导致的潜在安全漏洞。

Reflection

  • 方法签名

    • ReflectionClass::newInstance($args)
    • ReflectionFunction::invoke($args)
    • ReflectionMethod::invoke($object, $args)

    已变更为：

    • ReflectionClass::newInstance(...$args)
    • ReflectionFunction::invoke(...$args)
    • ReflectionMethod::invoke($object, ...$args)

    必须同时兼容 PHP 7 和 PHP 8 的代码可以使用以下签名来兼容这两个版本：

    • ReflectionClass::newInstance($arg = null, ...$args)
    • ReflectionFunction::invoke($arg = null, ...$args)
    • ReflectionMethod::invoke($object, $arg = null, ...$args)

  • ReflectionType::__toString() 方法现在将返回该类型的完整调试表示，并且不再弃用。特别是，结果将包括可空类型的可空性指示符。返回值的格式不稳定，并且可能在不同 PHP 版本之间发生变化。

  • Reflection export() 方法已经移除。相反，反射对象可以转换为字符串。

  • ReflectionMethod::isConstructor() 和 ReflectionMethod::isDestructor() 现在也为接口的 __construct() 和 __destruct() 方法返回 true。之前只用于类方法和 trait。

  • ReflectionType::isBuiltin() 方法已移至 ReflectionNamedType。ReflectionUnionType 没有。

Sockets

  • socket_addrinfo_lookup() 弃用的 AI_IDN_ALLOW_UNASSIGNED 和 AI_IDN_USE_STD3_ASCII_RULES flags 已移除。

PHP 标准库（SPL）

  • SplFileObject::fgetss() 已移除。

  • SplFileObject::seek() 总是寻找到一行的开头。之前，位置 >=1 会搜索到下一行的开头。

  • SplHeap::compare() 现在指定方法签名。实现此方法的继承类现在必须使用兼容的方法签名。

  • SplDoublyLinkedList::push()、SplDoublyLinkedList::unshift() 和 SplQueue::enqueue() 现在返回 void 而不是 true。

  • spl_autoload_register() 现在将始终对无效参数抛出 TypeError，因此将会忽略第二个参数 do_throw，并且如果将其设置为 false，则会发出 notice。

  • SplFixedArray 现在是 IteratorAggregate 而不是
Iterator。SplFixedArray::rewind()、SplFixedArray::current()、SplFixedArray::key()、SplFixedArray::next()
和 SplFixedArray::valid() 已移除。在其位置上新增了 SplFixedArray::getIterator()。现在任何在
SplFixedArray 上迭代的代码都必须通过 SplFixedArray::getIterator() 获取
Iterator。这意味着 SplFixedArray 现在可以安全地在嵌套循环中使用。

标准库

  • assert() 将不再执行字符串参数，而是像其他参数一样对待它们。应该使用 assert($a == $b) 而不是 assert('$a == $b')。assert.quiet_eval ini 指令和 ASSERT_QUIET_EVAL 常量也已移除，因为不再有任何效果。

  • 如果不指定 result 数组，则无法再使用 parse_str()。

  • string.strip_tags 过滤器已移除。

  • strpos()、strrpos()、stripos()、strripos()、strstr()、strchr()、strrchr() 和 stristr() 的 needle 参数将始终解释为字符串。非字符串的 needle 之前将解释为 ASCII 码点。现在手动调用 chr() 可用于恢复以前的行为。

  • strpos()、strrpos()、stripos()、strripos()、strstr()、stristr() 和 strrchr() 的 needle 参数现在可为空。

  • substr()、substr_count()、substr_compare() 和 iconv_substr() 的 length 参数现在可为 null。null 值的行为就像是没有提供 length 参数，因此会返回字符串的剩余部分而不是空字符串。

  • array_splice() 的 length 参数现在可为 null。null 值的行为跟忽略参数时相同，从而移除从偏移量到数组末尾的所有内容。

  • vsprintf()、vfprintf() 和 vprintf() 的 args 参数现在必须是数组。之前接受任何类型。

  • password_hash() 不再支持 'salt' 选项。如果使用 'salt' 选项则会生成 warning，提供的 salt 将会忽略，并使用生成的 slat 代替。

  • 如果传递空字符串， quotemeta() 函数现在将返回空字符串。之前返回 false。

  • 下列函数将移除：

    • hebrevc()
    • convert_cyr_string()
    • money_format()
    • ezmlm_hash()
    • restore_include_path()
    • get_magic_quotes_gpc()
    • get_magic_quotes_runtime()
    • fgetss()

  • FILTER_SANITIZE_MAGIC_QUOTES 已移除。

  • 不再支持以相反的参数顺序 ($pieces, $glue) 调用 implode()。

  • parse_url() 现在将区分不存在或空的查询和片段：

    • http://example.com/foo → query = null, fragment = null
    • http://example.com/foo? → query = "", fragment = null
    • http://example.com/foo# → query = null, fragment = ""
    • http://example.com/foo?# → query = "", fragment = ""
    以前所有情况都会导致查询和片段为 null。

  • var_dump() 和 debug_zval_dump() 现在将使用 serialize_precision 而不是 precision 来打印浮点数。在默认配置中，这意味着这些调试函数现在可以完全准确地打印浮点数。

  • 如果 __sleep() 返回的数组包含不存在的属性，这些属性现在会默认忽略。之前会序列化这些属性，就好像它们的值为 null 一样。

  • 启动时的默认区域设置现在始终为 "C"。默认情况下，不会从环境中继承任何区域设置。之前，LC_ALL 设置为 "C"，而 LC_CTYPE 是从环境中继承。但是，如果不手动调用 setlocale()，某些函数将不尊重继承的语言环境。如果应更改默认区域设置组件，现在始终需要手动调用 setlocale()。

  • 已移除 crypt() 中已弃用的 DES 回退。如果将未知的 salt 格式传递给 crypt()，该函数将失败并返回 *0，而不是立即回退到弱 DES 散列。

  • crypt() 现在指定超出 SHA256/SHA512 范围的 rounds 时将失败，返回 *0，而不是修改为最接近的限制。这与 glibc 的行为相匹配。

  • 如果数组包含比较后相等的元素，则排序函数的结果可能会发生改变。

  • 如果使用带有引用参数的回调，则任何没有手动指定参数是引用的时候，接受该回调的函数都会发出 warn。示例包括 array_filter() 和 array_reduce()。以前大多数（但不是全部）函数都是这种情况。

  • file_get_contents() 等函数使用的 HTTP stream 封装协议现在默认使用 HTTP/1.1 而不是 HTTP/1.0。这不会改变客户端的行为，但可能会导致服务器做出不同的响应。要保留旧行为，请设置 'protocol_version' stream 上下文选项，例如

    <?php
    $ctx     = stream_context_create(['http' => ['protocol_version' => '1.0']]);
    echo     file_get_contents('http://example.org', false, $ctx);
    ?>

  • 不再支持在没有指定 salt 时调用 crypt()。如果想使用自动生成的 salt 产出强散列，改用 password_hash()。

  • substr()、mb_substr()、iconv_substr() 和 grapheme_substr() 现在始终控制超出范围的 offset 控制到字符串的边界。在某些情况下，之前会返回 false 而不是空字符串。

  • 在 Windows 上，使用 shell 的程序执行函数（proc_open()、exec()、popen()）现在执行 %comspec% /s /c "$commandline"，始终与执行 $commandline 效果相同 （没有额外的引号）。

Sysvsem

  • sem_get() 的 auto_release 参数已从接受 int 更改为接受 bool。

Tidy

  • 从 tidy_repair_string() 中删除内部未使用的 use_include_path 参数。

  • tidy::repairString() 和 tidy::repairFile() 成为静态方法。

Tokenizer

  • T_COMMENT 记号将不再包含尾随的换行符。换行符将成为以下 T_WHITESPACE 记号的一部分。需要注意的是，T_COMMENT 后面并不总是跟空格，也可能跟着 T_CLOSE_TAG 或者文件结尾。

  • namespace 名称现在使用 T_NAME_QUALIFIED（Foo\Bar）、T_NAME_FULLY_QUALIFIED（\Foo\Bar） 和 T_NAME_RELATIVE（namespace\Foo\Bar）记号表示。T_NS_SEPARATOR 仅用于独立 namespace 分隔符，仅与 group use 声明结合的有效语法。

XMLReader

XMLReader::open() 和 XMLReader::xml() 现在是静态方法。也可以作为实例方法调用，但如果继承类需要覆盖这些方法，要声明为 static。

XML-RPC

XML-RPC 扩展已移动到 PECL，不再是 PHP 发行版的一部分。

Zip

ZipArchive::OPSYS_Z_CPM 已移除（名字错误）。使用 ZipArchive::OPSYS_CPM 代替。

Zlib

  • gzgetss() 已移除。

  • zlib.output_compression 不再对 Content-Type: image/* 自动禁用。

Windows PHP 测试包

测试运行器从 run-test.php 重命名为 run-tests.php，以匹配其在 php-src 中的名字。

User Contributed Notes

aphpguy at galaxy dot za dot net 06-Jul-2023 12:33
If you have older projects that break with PHP7 to 8 migration due to the loose comparison issue:

i.e. if ($a == 0) different behaviour between PHP 7 and PHP 8
(for case like $a = "" or $a = "123foo" and other cases listed at top)

replace in old code:

if ($a == 0) { .. }

with

if (cmp_eq($a, $b)) { .. }

Tested with a wide range of scenarios, even against arrays, booleans, file handles, pipe handles, objects, scalars and numbers.

So old code still behave like before.
Then both PHP8.x and older PHP up to ver 7.x will give the exact same boolean true or false output for loose comparisons.

function cmp_eq($a, $b) {
// If both $a and $b are of type strings, compare them as strings
if (is_string($a) && is_string($b)) { return $a == $b; } // may not be === because php says '42' equals '042' true yet '42' === '042' is false.

// If both $a and $b are numeric strings, compare them as numbers
if (is_numeric($a) && is_numeric($b)) { return $a == $b; }

// If $a is an empty string and $b is 0, or vice versa, return true
if (($a === '' && $b === 0) || ($a === 0 && $b === '')) { return true; }

// If $a is a non-numeric string and $b is 0, or vice versa, return true
if ((is_string($a) && ($a !== '') && ($b === 0)) || (($a === 0) && is_string($b) && ($b !== ''))) {
return true;
}
// special case '123abc' == 123 .. php 7 casts 123abc to 123, then 123 == 123 results in true. lets mimic that.
if ((is_string($a) && ($a !== '') && (is_numeric($b)) && ((bool)$b))) {
$number = filter_var($a, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); //"-234.56xyz"
return $number == $b;
}
if (is_numeric($a) && ((bool)$a) && is_string($b) && ($b !== '')) {
$number = filter_var($b, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); //"-234.56xyz"
return $a == $number;
}

// If $a is a number and $b is a non-numeric string, cast $a to string and compare
if (is_numeric($a) && is_string($b)) { return strval($a) == $b; }

// If $b is a number and $a is a non-numeric string, cast $b to string and compare
if (is_string($a) && is_numeric($b)) { return $a == strval($b); }

// If $a and $b are both non-numeric strings, compare them directly, we should return true if they are the same
return $a == $b;
} // end func cmp_eq

Note: the better way would be to port code to PHP 8, use strict variable typing and rather make use of the === and !== operators.

But in some cases having lots of old code to quickly patch, this might help.
1035041238 at qq dot com 15-Nov-2022 02:41
In PHP 8, an empty string is less than any number, an English letter is always bigger than any number.

More interesting are the punctuation marks and non-word characters, some bigger than numbers, some smaller than numbers

$string = '`~!@#$%^&*()-_=+[]{};:\'"\\|,.<>/?';

$number = 999999999999;

$str_len = strlen($string);

$bigger = $smaller = $equal = [];
for ( $i = 0; $i < $str_len; ++$i ) {
    if ( $string[$i] > $number ) {
        $bigger[] = $string[$i];
    } elseif ( $string[$i] < $number ) {
        $smaller[] = $string[$i];
    } else {
        $equal[] = $string[$i];
    }
}

var_dump( $bigger ); //['`', '~', '@', '^', '_', '=', '[', ']', '{', '}', ';', ':', '\', '|', '<', '>', '?']
var_dump( $smaller); //['!', '#', '$', '%', '&', '*', '(', ')', '-', '+', ''', '"', ',', '.', '/']
var_dump( $equal); //[]
retry, abort, fail 25-Feb-2022 11:57
The change in string to int comparison mentioned above (e.g. '' == 0 now equates to false) has some other nasty consequences:

$a = '';

// php 8

if ( $a < 0 ) echo 'true'; // echos true
if ( $a < -1) echo 'true'; // echos true
if ( $a < -100 ) echo 'true'; // echos true

// php 7

if ( $a < 0 ) echo 'true'; // no output
if ( $a < -1) echo 'true'; // no output
if ( $a < -100 ) echo 'true'; // no output

So in a situation where you may have a web form input and expected an empty value to equate to 0, watch out not only for == 0, != 0, and <= 0 comparisons, but ALL < or <= comparisons to negative integers.


PHP 8.0 废弃的功能

PHP 核心中废弃的功能

  • 如果带有默认值的参数后面跟着一个必要的参数，那么默认值就会无效。这在 PHP 8.0.0 中已被废弃，通常可以通过删除默认值，不影响现有功能：

    <?php
    function test($a = [], $b) {} // 之前
    function test($a, $b) {} // 之后
    ?>

    这条规则的一个例外是 Type $param = null 形式的参数，其中 null 的默认值使得类型隐式为空。这种用法仍然是允许的，但仍建议使用显式可空类型。

    <?php
    function test(A $a = null, $b) {} // 旧写法，仍可用
    function test(?A $a, $b) {} // 推荐写法
    ?>

  • 参数 exclude_disabled 不能设置为 false 来调用 get_defined_functions()，该参数已被废弃，不再起作用。 get_defined_functions() 绝不会再包含禁用的函数。

Enchant

  • 弃用 enchant_broker_set_dict_path() 和 enchant_broker_get_dict_path() ，因为此功能在 libenchant < 1.5 和 libenchant-2 中均不可用。

  • 弃用 enchant_dict_add_to_personal()，使用 enchant_dict_add() 替代。

  • 弃用 enchant_dict_is_in_session()，使用 enchant_dict_is_added() 替代。

  • 弃用 enchant_broker_free() 和 enchant_broker_free_dict()，取而代之的是取消对象。

  • 弃用 ENCHANT_MYSPELL 和 ENCHANT_ISPELL 常量。

LibXML

弃用 libxml_disable_entity_loader()。由于现在需要 libxml 2.9.0，默认情况下会禁用外部实体加载并且不再需要此函数来防止 XXE 攻击，除非使用（仍然易受攻击的） LIBXML_NOENT。在这种情况下，建议使用 libxml_set_external_entity_loader() 重构代码以抑制外部实体加载。

PGSQL / PDO PGSQL

  • 现在常量 PGSQL_LIBPQ_VERSION_STR 的值与 PGSQL_LIBPQ_VERSION相同，因此废弃。

  • pgsql 扩展中的函数别名已废弃。请参阅以下列表了解应该使用那些函数：

    • pg_errormessage() → pg_last_error()
    • pg_numrows() → pg_num_rows()
    • pg_numfields() → pg_num_fields()
    • pg_cmdtuples() → pg_affected_rows()
    • pg_fieldname() → pg_field_name()
    • pg_fieldsize() → pg_field_size()
    • pg_fieldtype() → pg_field_type()
    • pg_fieldnum() → pg_field_num()
    • pg_result() → pg_fetch_result()
    • pg_fieldprtlen() → pg_field_prtlen()
    • pg_fieldisnull() → pg_field_is_null()
    • pg_freeresult() → pg_free_result()
    • pg_getlastoid() → pg_last_oid()
    • pg_locreate() → pg_lo_create()
    • pg_lounlink() → pg_lo_unlink()
    • pg_loopen() → pg_lo_open()
    • pg_loclose() → pg_lo_close()
    • pg_loread() → pg_lo_read()
    • pg_lowrite() → pg_lo_write()
    • pg_loreadall() → pg_lo_read_all()
    • pg_loimport() → pg_lo_import()
    • pg_loexport() → pg_lo_export()
    • pg_setclientencoding() → pg_set_client_encoding()
    • pg_clientencoding() -> pg_client_encoding()

标准库

  • 排序比较函数现在返回 true 或者 false 将会引发弃用警告，应替换为返回小于、等于或者大于零的 int 值。

    <?php
    // 替换
    usort($array, fn($a, $b) => $a > $b);
    // 为
    usort($array, fn($a, $b) => $a <=> $b);
    ?>

Zip

  • 弃用使用空文件作为 ZipArchive。Libzip 1.6.0 不再接受空文件作为有效的 zip 归档。现有的解决方案将在下个版本删除。

  • 弃用面向过程的 Zip API。使用 ZipArchive 替代。可以使用 ZipArchive::statIndex() 和 for 循环完成对所有条目的迭代：

    <?php
    // 使用面向过程 API 进行迭代
    assert(is_resource($zip));
    while (    $entry = zip_read($zip)) {
    echo     zip_entry_name($entry);
    }

    // 使用面向对象 API 进行迭代
    assert($zip instanceof ZipArchive);
    for (    $i = 0; $entry = $zip->statIndex($i); $i++) {
    echo     $entry['name'];
    }
    ?>

反射

  • 弃用 ReflectionFunction::isDisabled()，因为不可能再为禁用的函数创建 ReflectionFunction。此方法现在总是返回 false。

  • 弃用 ReflectionParameter::getClass()、
ReflectionParameter::isArray()、
ReflectionParameter::isCallable()。
应该使用 ReflectionParameter::getType() 和
ReflectionType API 替代。

User Contributed Notes

dominique dot vienne at ik dot me 21-Jun-2021 01:23
If you try to get all methods / functions assigning an optional argument before a mandatory one, try this regex (single line)

<?php
function\s+[a-z][a-zA-Z0-9_]*\((?:\$[a-z][a-zA-Z0-9]*\s*,\s*)*
(?:\$[a-z][A-Za-z0-9_]*\s*=[^\$\)]+)+\$[a-z][a-zA-Z0-9_]*\)
?>

for
<?php
public function test($a, $b) {
$a = [];
$b = [$abc => $ss[],
];
}

private function too($c, $a = true, $b) {
}

protected function bar($a = []) {
}

public function foo($a, $b = true) {
}

public function fooBar32($a=true, $b = [], $c) {
}

private function oo_bAr($a = []) {
}
?>
it will match too() and fooBar32()

Have a nice migration! ;)


其他变更

SAPI 模块变更

Apache2Handler

PHP 模块从 php7_module 重命名为 php_module。

函数变更

Reflection

可通过新参数 filter 来过滤 ReflectionClass::getConstants() 和 ReflectionClass::getReflectionConstants() 的返回结果。 新增三个常量，搭配使用：

  • ReflectionClassConstant::IS_PUBLIC
  • ReflectionClassConstant::IS_PROTECTED
  • ReflectionClassConstant::IS_PRIVATE

标准

现在 math 函数 abs()、ceil()、floor() 和 round() 可以正确的遵循 strict_types 指令。以前，即使在严格类型模式下，也会强制转换第一个参数。

Zip

  • ZipArchive::addGlob() 和 ZipArchive::addPattern() 方法中 options 数组参数可接受更多的值：

    • flags
    • comp_method
    • comp_flags
    • env_method
    • enc_password

  • ZipArchive::addEmptyDir()、ZipArchive::addFile()、ZipArchive::addFromString() 方法新增 flags 参数。 可用于名称编码（ZipArchive::FL_ENC_*）与条目（entry）替换（ZipArchive::FL_OVERWRITE）。

  • ZipArchive::extractTo() 现在会储存文件的修改时间。

其他扩展变更

CURL

  • 现在 CURL 扩展要求 libcurl 版本至少为 7.29.0。

  • 移除了 curl_version() 废弃的参数 version。

日期/时间

现在 DatePeriod 实现（implements）了 IteratorAggregate（之前是 Traversable）。

DOM

现在 DOMNamedNodeMap 与 DOMNodeList 实现（implements）了 IteratorAggregate（之前是 Traversable）。

国际化

现在 IntlBreakIterator 与 ResourceBundle 实现（implements）了 IteratorAggregate（之前是 Traversable）。

Enchant

现在环境允许时，enchant 会默认使用 libenchant-2。仍然支持 libenchant 1，但已经废弃，并将在未来移除。

GD

  • imagepolygon()、imageopenpolygon()、imagefilledpolygon() 的参数 num_points 现在为可选参数。这些函数可用三或四个参数去调用。省略参数时，会按 count($points)/2 计算。

  • 新增函数 imagegetinterpolation()，可获取当前的插值（interpolation）。

JSON

现在无法禁用 JSON 扩展，将是任意 PHP 版本的内置功能，类似 date 扩展。

MBString

更新 Unicode 数据表版本到 13.0.0。

PDO

现在 PDOStatement 实现（implements）了 IteratorAggregate (之前是 Traversable)。

LibXML

现在要求 libxml 最小版本为 2.9.0。这代表着确保了默认情况下禁用了外部实体加载（external entity loading）的功能。无需额外步骤即可防范 XML 外部实体注入攻击（XXE attacks）。

MySQLi/PDO MySQL

  • 未使用 mysqlnd 时（也是默认且推荐的做法），支持的最小 libmysqlclient 版本为 5.5。

  • 现在 mysqli_result 实现（implements）了 IteratorAggregate (之前是 Traversable)。

PGSQL/PDO PGSQL

PGSQL 与 PDO PGSQL 扩展需要 libpq 的版本号至少为 9.1。

Readline

在交互提示开始之前调用 readline_completion_function()（例如在 auto_prepend_file 中），将重写默认的交互输入补全函数。之前，只有交互提示（interactive prompt）开始后，readline_completion_function() 才会运行。

SimpleXML

现在 SimpleXMLElement 实现（implements）了 RecursiveIterator 并吸收了 SimpleXMLIterator 的功能。SimpleXMLIterator 是 SimpleXMLElement 的一个空扩展。

INI 文件处理的变更

  • com.dotnet_version 是一个新的 INI 指令，用于选择 dotnet 对象的 .NET framework 版本。

  • zend.exception_string_param_max_len 是一个新的 INI 指令，用于设置字符串化的调用栈（stack strace）的最大字符串长度。

EBCDIC

不再支持 EBCDIC targets，虽然它不太可能还在当初的地方继续运行。

性能

  • opcache 扩展新增了即时编译（JIT）支持。

  • array_slice() 用于没有空隙的数组时，将不会扫描整个数组去查找开始的位移（offset）。在 offset 较大、长度较小时，会显著减少函数的运行时间。

  • 当本地化 LC_CTYPE 为 "C" 时（也是默认值），strtolower() 会使用 SIMD 的实现。

User Contributed Notes

barry dot nelson at amobiledevice dot com 16-Jan-2023 12:18
If loading the PHP8 apache module on SuSe Linux, the configuration scripts incorrectly try to load it with automatically generated load statement of:
LoadModule php8_module                     /usr/lib64/apache2/mod_php8.so
This does not work, the patch below fixes the conf file generator...

--- /usr/share/apache2/get_module_list    2023-01-14 22:41:49.586825349 -0500
+++ /usr/share/apache2/get_module_list    2023-01-14 22:42:02.171600410 -0500
@@ -91,4 +91,8 @@
     esac

+    if [ "$module_id" = "php8_module" ]; then
+        module_id="php_module"
+    fi
+
     if [[ -f $module_path ]]; then
         printf "LoadModule %-30s %s\n" $module_id $module_path >&3


从 PHP 7.3.x 移植到 PHP 7.4.x

Table of Contents

  • 新特性
  • 新的类和接口
  • 新函数
  • 新的全局常量
  • 不向后兼容的变更
  • PHP 7.4.x 废弃的功能
  • 移除的扩展
  • 其他变更
  • Windows 支持

这个新的小版本带来了大量的新特性和少量的兼容性调整在生产环境切换 PHP 版本前应该进行相关测试。

参见 PHP 版本迁移指南 7.0.x、7.1.x、7.2.x 和 7.3.x。

User Contributed Notes

There are no user contributed notes for this page.


新特性

PHP 核心中的新特性

属性添加限定类型

类的属性中现在支持添加指定的类型。

<?php
class User {
public int $id;
public string $name;
}
?>
上面的例子中，会强制要求 $user->id 只能为 int 类型，同时 $user->name 只能为 string 类型。

箭头函数

箭头函数提供了一种更简洁的定义函数的方法。

<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>

有限返回类型协变与参数类型逆变

以下代码现在可以正常执行：

<?php
class A {}
class B extends A {}

class Producer {
public function method(): A {}
}
class ChildProducer extends Producer {
public function method(): B {}
}
?>
只有在使用自动加载的情况下，才会有完整的差异支持。在一个文件内，只有非循环类型引用是可能的，因为在引用之前，所有的类都需要可用。

空合并运算符赋值

<?php
$array['key'] ??= computeDefault();
// 等同于以下旧写法
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
?>

数组展开操作

<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>

数值文字分隔符

数字文字可以在数字之间包含下划线。

<?php
6.674_083e-11; // float
299_792_458; // decimal
0xCAFE_F00D; // hexadecimal
0b0101_1111; // binary
?>

弱引用

弱引用允许程序员保留对对象的引用，但不会阻止销毁对象。

允许从 __toString() 抛出异常

现在允许从 __toString() 抛出异常。之前的版本，将会导致致命错误。新版本中，之前发生致命错误的代码，已经被转换为 Error 异常。

CURL

如果扩展是使用 libcurl >= 7.56.0 构建的，CURLFile 现在除了支持普通文件名之外还支持流封装协议。

Filter

FILTER_VALIDATE_FLOAT 过滤器现在支持 min_range 和 max_range 选项，其含义跟 FILTER_VALIDATE_INT 相同。

FFI

FFI 是新扩展，提供了简单的方式去 C 库中调用原生函数、访问原生变量和创建和访问定义的数据结构。

GD

添加 IMG_FILTER_SCATTER 图片过滤器以将分散过滤器（scatter filter）应用于图片。

Hash

使用循环卷积多项式新增 crc32c 散列。此 CRC32 变体用于 iSCSI、SCTP、Btrfs 和 ext4 等存储系统。

多字节字符串

新增 mb_str_split() 函数，提供了跟 str_split() 相同的行为，但是在码点上操作，而不是字节。

OPcache

新增缓存预加载特性。

正则表达式（兼容 Perl）

preg_replace_callback() 和 preg_replace_callback_array() 函数现在接受附加的 flags 参数，支持 PREG_OFFSET_CAPTURE 和 PREG_UNMATCHED_AS_NULL flag。这会影响传递给回调函数的匹配数组的格式。

PDO

现在可以将用户名和密码指定为 mysql、mssql、sybase、dblib、firebird 和 oci 驱动程序的 PDO DSN 的一部分。之前仅支持 pgsql 驱动程序。如果在构造方法和 DSN 中都指定了，则优先使用构造方法中的用户名/密码。

现在可以在 SQL 查询中转义问号，以避免解释为参数占位符。编写 ?? 将会向数据库发送一个问号，例如使用 PostgreSQL JSON 键中存在（?）运算符。

PDO_OCI

PDOStatement::getColumnMeta() 现在有效。

PDO_SQLite

PDOStatement::getAttribute(PDO::SQLITE_ATTR_READONLY_STATEMENT) 允许检查语句是否只读，例如它是否修改数据库。

PDO::setAttribute(PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES, true) 允许在 PDO::errorInfo() 和 PDOStatement::errorInfo() 中使用 SQLite3 扩展结果代码。

SQLite3

新增 SQLite3::lastExtendedErrorCode() 用于获取最后的扩展结果代码（extended result code）。

新增 SQLite3::enableExtendedResultCodes($enable = true)，用于 SQLite3::lastErrorCode() 返回扩展结果代码。

标准

带标签数组的 strip_tags()

strip_tags() 现在接受允许的标签数组：现在可以编写
strip_tags($str, ['a', 'p']) 代替
strip_tags($str, '<a><p>')。

自定义对象序列化

新增自定义对象序列化的新机制，使用两种新魔术方法：__serialize 和 __unserialize。

<?php
// 返回数组，包含对象所有必要的状态。
public function __serialize(): array;

// 从指定的数据数组中回复对象状态。
public function __unserialize(array $data): void;
?>
新的序列化机制取代了 Serializable 接口，并且将会在未来弃用。

不带参数的数组合并函数

现在可以不带任何参数调用 array_merge() 和
array_merge_recursive()，此时会返回空数组。这跟展开运算符结合非常有用，比如
array_merge(...$arrays)。

proc_open() 函数

proc_open() 现在接受数组而不是命令字符串。在这种情况下，会直接打开进程（无需通过 shell），PHP 将会负责任何必要的参数转义。

<?php
proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);
?>

proc_open() 现在支持 redirect 和 null 描述符。

<?php
// 就像 shell 上 2>&1
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);
// 就像 shell 上的 2>/dev/null 或 2>nul
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);
?>

不带 libargon 的 argon2i(d)

在不使用 libargon 的情况下编译 PHP 时，password_hash() 现在由 sodium 扩展实现了 argon2i 和 argon2id 。

User Contributed Notes

wow-apps.pro 26-Feb-2020 08:42
<?php

// How to get property type? For example for testing:

class Foo
{
    private int $num;
    private bool $isPositive;
    private $notes;
}

$reflection = new \ReflectionClass(Foo::class);
$classProperties = $reflection->getProperties(\ReflectionProperty::IS_PRIVATE);
foreach ($classProperties as $classProperty) {
    var_dump((string) $classProperty->getType());
}

/**
 * Result:
 * "int"
 * "bool"
 * ""
 */
Rain 27-Jan-2020 08:44
It should be noted that typed properties internally are never initialized to a default null. Unless of course you initialize them to null yourself. That's why you will always going to encounter this error if you try to access them before initialization.

**Typed property foo::$bar must not be accessed before initialization**

<?php
class User
{
    public $id;
    public string $name; // Typed property (Uninitialized)
    public ?string $age = null; //  Typed property (Initialized)
}

$user = new User;
var_dump(is_null($user->id)); // bool(true)
var_dump(is_null($user->name)); // PHP Fatal error: Typed property User::$name must not be accessed before initialization
var_dump(is_null($user->age));// bool(true)
?>

Another thing worth noting is that it's not possible to initialize a property of type object to anything other than null.  Since the evaluation of properties happens at compile-time and object instantiation happens at runtime. One last thing, callable type is not supported due to its context-dependent behavior.


新的类和接口

Reflection

  • ReflectionReference

User Contributed Notes

There are no user contributed notes for this page.


新函数

PHP 核心中新增的函数

  • get_mangled_object_vars()
  • password_algos()
  • sapi_windows_set_ctrl_handler()

GD

  • imagecreatefromtga()

多字节字符串

  • mb_str_split()

OpenSSL

  • openssl_x509_verify()

进程控制

  • pcntl_unshare()

SQLite3

  • SQLite3::backup()
  • SQLite3Stmt::getSQL()

User Contributed Notes

There are no user contributed notes for this page.


新的全局常量

PHP 核心中预定义的常量

  • PHP_WINDOWS_EVENT_CTRL_C
  • PHP_WINDOWS_EVENT_CTRL_BREAK

多字节字符串

  • MB_ONIGURUMA_VERSION

Sockets

添加了 FreeBSD 系统中特有的选项：

  • SO_LABEL
  • SO_PEERLABEL
  • SO_LISTENQLIMIT
  • SO_LISTENQLEN
  • SO_USER_COOKIE

Tidy

  • TIDY_TAG_ARTICLE
  • TIDY_TAG_ASIDE
  • TIDY_TAG_AUDIO
  • TIDY_TAG_BDI
  • TIDY_TAG_CANVAS
  • TIDY_TAG_COMMAND
  • TIDY_TAG_DATALIST
  • TIDY_TAG_DETAILS
  • TIDY_TAG_DIALOG
  • TIDY_TAG_FIGCAPTION
  • TIDY_TAG_FIGURE
  • TIDY_TAG_FOOTER
  • TIDY_TAG_HEADER
  • TIDY_TAG_HGROUP
  • TIDY_TAG_MAIN
  • TIDY_TAG_MARK
  • TIDY_TAG_MENUITEM
  • TIDY_TAG_METER
  • TIDY_TAG_NAV
  • TIDY_TAG_OUTPUT
  • TIDY_TAG_PROGRESS
  • TIDY_TAG_SECTION
  • TIDY_TAG_SOURCE
  • TIDY_TAG_SUMMARY
  • TIDY_TAG_TEMPLATE
  • TIDY_TAG_TIME
  • TIDY_TAG_TRACK
  • TIDY_TAG_VIDEO

User Contributed Notes

There are no user contributed notes for this page.


不向后兼容的变更

PHP 核心中不向后兼容的变更

以数组形式访问非数组

尝试以数组方式访问 null，bool， int，float 或 resource （例如 $null["key"]）将会抛出 notice 通知。

get_declared_classes() 函数

get_declared_classes() 函数将不再返回匿名的类，假如它们没有被实例化的话。

fn 关键词

fn 成为了保留关键词。需要特别注意，它不能再做为函数名或类名使用，但是仍然可以做为方法名和常量名存在。

文件尾部的 <?php 标签

文件尾部的 <?php 标签（不包含空行）将会被解释成 PHP 起始标记。之前，不是解释为短开始标记，后跟文字 php 并导致语法错误（short_open_tag=1），就是解释为文字 <?php 字符串（short_open_tag=0）。

Stream 封装协议

在 stream 上使用 include/require 时，将使用 STREAM_OPTION_READ_BUFFER 选项调用 streamWrapper::stream_set_option()。编写的自定义 stream 封装协议可能需要实现 streamWrapper::stream_set_option() 方法以避免警告（始终返回 false 就足够了）。

Serialization 序列化

序列化类型 o 被移除。因为它不是由 PHP 生成的，这可能会影响到之前项目中手动生成的序列化字符串。

密码算法常量

密码哈希算法标识符现在是可空字符串，而不再是整数。

  • PASSWORD_DEFAULT 之前是 int 1; 现在是"2y"（在 PHP 7.4.0、7.4.1、7.4.2 中是 null）
  • PASSWORD_BCRYPT 之前是 int 1; 现在是 string '2y'
  • PASSWORD_ARGON2I 之前是 int 2; 现在是 string 'argon2i'
  • PASSWORD_ARGON2ID 之前是 int 3; 现在是 string 'argon2id'

应用中如果正常使用了常量 PASSWORD_DEFAULT，PASSWORD_BCRYPT，PASSWORD_ARGON2I 和 PASSWORD_ARGON2ID 将不会受到影响。

htmlentities() 函数

htmlentities() 如果与仅支持基本实体替换（basic entity substitution）的编码一起使用，现在将发出 notice（而不是严格标准的 warning），在这种情况下，相当于 htmlspecialchars()。

fread() and fwrite() 函数

fread() 和 fwrite() 在操作失败的时候会返回 false。之前的版本中会返回空字符串或 0。EAGAIN/EWOULDBLOCK 不视为故障。

这些函数现在也会在失败时发出 NOTICE 通知，例如当试图写入一个只读文件资源时。

BCMath 任意精度数学

如果传递了例如 "32foo" 这种格式不正确的数字，BCMath 函数现在将发出警告。和以前一样，参数将解释为 0。

CURL

现在尝试序列化 CURLFile 类将会生成异常。之前仅会在反序列化时引发。

弃用 CURLPIPE_HTTP1，并在 cURL 7.62.0 起不再支持。

弃用 curl_version() 的 $version 参数。如果传递了任何不等于默认 CURLVERSION_NOW 的值，则会引发警告并忽略参数。

日期和时间

在 DateTime 或 DateTimeImmutable 实例上调用 var_dump() 或类似方法将不会忘记对象上的可访问属性。

DateInterval 对象的比较（使用 ==、< 等）现在将生成警告并始终返回 false。之前所有的 DateInterval 对象都认为相等，除非它们有属性。

Intl

idn_to_ascii() 和 idn_to_utf8() 的默认参数的值现在为 INTL_IDNA_VARIANT_UTS46，而不是已弃用的 INTL_IDNA_VARIANT_2003。

MySQLi

内嵌服务器功能已移除。自 PHP 7.0 起就已破坏了。

未记录的 mysqli::$stat 属性已移除，以支持 mysqli::stat()。

OpenSSL

openssl_random_pseudo_bytes() 函数现在将在错误情况下抛出异常，类似于 random_bytes()。特别是，如果请求的字节数小于或等于零，则会引发 Error；如果无法收集到足够的随机性，则会引发 Exception。如果函数不抛出异常，则 $crypto_strong 输出参数保证始终为 true，因此不需要手动检查它。

正则表达式（Perl 兼容）

当使用 PREG_UNMATCHED_AS_NULL 模式时，后跟不匹配的捕获组现在也将设置为 null（如果启用了偏移捕获，则为 [null, -1]）。这意味着 $matches 的大小将始终相同。

PHP 数据对象

尝试序列化 PDO 或 PDOStatement 实例现在将生成 Exception 而不是 PDOException，这与其它不支持序列化的内部类一致。

反射

现在如果尝试对 Reflection 对象序列化将会生成异常。从未支持反射对象序列化并会引起反射对象错误。现在已明确禁止。

ReflectionClassConstant、ReflectionMethod 和 ReflectionProperty 类常量的值发生了变化。

PHP 标准库（SPL）

现在对 ArrayObject 实例调用 get_object_vars() 将始终返回 ArrayObject 本身（或子类）的属性。之前，除非指定了 ArrayObject::STD_PROP_LIST flag，否则将返回包装后的 array/object。

其它受到影响的操作有：

  • ReflectionObject::getProperties()
  • reset()、current() 等等。 改用 Iterator 方法。
  • 可能将对象属性作为列表处理的其它情况。比如 array_walk()。

(array) 转换不受影响。它们将继续返回包装数组或 ArrayObject 属性，具体取决于是否使用 ArrayObject::STD_PROP_LIST flag。

如果传递零，SplPriorityQueue::setExtractFlags() 将引发异常。以前，这会在执行下个提取操作时生成可恢复的致命错误。

除了 Serializable 接口之外，ArrayObject、ArrayIterator、SplDoublyLinkedList 和 SplObjectStorage 现在还支持 __serialize() 和 __unserialize() 机制。这意味着在旧版本上创建的序列化负荷仍然可以反序列化，但旧版本将无法理解 PHP 7.4 创建的新负荷（payloads）。

Tokenizer

token_get_all() 现在将为非法字符发出 T_BAD_CHARACTER token，而不是在 token stream 中留下漏洞。

接收到的 Cookies

从 PHP 7.4.11 开始，为了安全考虑，接受到的 Cookie 中的 names 参数不再被 URL 编码。

User Contributed Notes

happydog at kennel17 24-Jan-2021 11:23
Re: "The o serialization format has been removed. As it is never produced by PHP, this may only break unserialization of manually crafted strings."

This little-o serialisation format was used by PHP3 but was never generated by PH PHP4 or above.  The deserialization code still recognised it, though, for reasons of backwards-compatibility with PHP3.

However, based on a bit of investigation, it looks like this code has been broken for about 15 years, so although this is listed as a deprecation, in practice it wasn't.

See this Stack Overflow question for a really great answer, with a lot more detail about this: https://stackoverflow.com/questions/65289729/what-was-phps-o-serialization-format-for


PHP 7.4.x 废弃的功能

PHP 核心中废弃的功能

没有显式括号的嵌套三元运算符

嵌套的三元操作中，必须明确使用显式括号来决定操作的顺序。以前，如果不使用括号，在大多数情况下，左关联性不会导致预期的行为。

<?php
1 ? 2 : 3 ? 4 : 5; // 弃用
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>

当运算对象嵌套到中间时，不需要括号，因为没有歧义且不受关联顺序的影响：

1 ? 2 ? 3 : 4 : 5 // ok

大括号访问数组和字符串索引

使用大括号访问数组及字符串索引的方式已被废弃。请使用 $var[$idx] 的语法来替代 $var{$idx}。

(real) 类型和 is_real() 函数

(real) 类型已被废弃，请使用 (float) 来替代。

同时被废弃的还有 is_real() 函数，请使用 is_float() 来替代。

Unbinding $this when $this is used

弃用在未捆绑 $this 的非静态 closure 中使用 $this。

parent 关键词在没父类的类中使用

在没有父类的类中使用 parent 关键词已被废弃，并且在将来的 PHP 版本中将会抛出一个编译错误。目前只在运行时访问父类时才会产生错误。

allow_url_include INI 选项

配置文件中的 allow_url_include 选项被废弃。如果启用了该选项，将会产生一个弃用通知。

基础转换函数中的无效字符处理

在下面这些基础转换函数中，base_convert(),
bindec(), octdec() 和
hexdec()
如果传入了非法字符，将会抛出一个弃用通知。函数会忽略掉无效字符后正常返回结果。前导空格和尾部空格，以及类型为
0x (取决于基数) 被允许传入。

在对象中使用 array_key_exists()

在一个对象中使用 array_key_exists() 已被废弃。请使用 isset() 或 property_exists() 来替代。

魔术引号函数

魔术引号函数 get_magic_quotes_gpc() 和 get_magic_quotes_runtime() 已被废弃。它们将永远返回 false。

hebrevc() 函数

hebrevc() 函数已被废弃。 可以用 nl2br(hebrev($str)) 来替代，更好的方法是启用 Unicode RTL 来支持。

convert_cyr_string() 函数

convert_cyr_string() 函数已被废弃。可以用 mb_convert_string()， iconv() 或 UConverter 替代。

money_format() 函数

money_format() 函数已被废弃。 可以用更国际化的 NumberFormatter 功能来替代。

ezmlm_hash() 函数

ezmlm_hash() 函数已被废弃。

restore_include_path() 函数

restore_include_path() 函数已被废弃。可以用 ini_restore('include_path') 替代。

Implode 函数的参数顺序

implode() 允许反转参数顺序的特性已被废弃，请使用 implode($glue, $parts) 来替代 implode($parts, $glue)。

COM

导入类型库的大小写不敏感的常量注册已被废弃。

Filter

FILTER_SANITIZE_MAGIC_QUOTES 已被废弃，使用 FILTER_SANITIZE_ADD_SLASHES 来替代。

多字节字符串

弃用向 mb_ereg_replace() 传递非字符串 pattern。目前，非字符串 pattern 被解释为 ASCII 码点。在 PHP 8 中，pattern 将被解释为字符串。

弃用传递 encoding 作为 mb_strrpos() 的第三个参数。而是替换为第三个参数 offset 默认传 0，且 encoding 作为第四个参数。

轻量目录访问协议

ldap_control_paged_result_response() 和
ldap_control_paged_result() 函数已被废弃。控制页面操作可以使用
ldap_search() 替代。

Reflection

调用 ReflectionType::__toString() 现在将会抛出一个弃用通知。 该方法从 PHP 7.1 开始，在 ReflectionNamedType::getName() 的文档中已经被声明废弃，但是由于技术原因，并没有抛出弃用通知。

弃用所有 Reflection 类的 export() 方法。而是替换为构造 Reflection 对象并转换为字符串：

<?php
// ReflectionClass::export(Foo::class, false) 是：
echo new ReflectionClass(Foo::class), "\n";

// $str = ReflectionClass::export(Foo::class, true) 是：
$str = (string) new ReflectionClass(Foo::class);
?>

Socket

常量 AI_IDN_ALLOW_UNASSIGNED 和 AI_IDN_USE_STD3_ASCII_RULES 在 socket_addrinfo_lookup() 中不再可用，因为该常量在 glibc 中已被废弃。

User Contributed Notes

Techlemur 13-Nov-2020 08:58
^((?!\().*)(\?[^php]).*(\:)([\s\v]+)(?!\().*[^\/](\?)([\s\v\h]*).*(\:[^=])
Regex to find deprecated nested ternaries
Ahmad Asjad 03-Jun-2020 10:01
(\?[^php]).*(\:).*(\?).*(\:[^=])
Above regex can help others to find the nested ternary operator


移除的扩展

这些扩展已经被转移到 PECL 中，不再是 PHP 发行版的一部分。这些扩展的 PECL 包版本将根据用户的需要来自行安装。

  • Firebird/Interbase——通过 PDO Firebird 驱动仍然可以访问基于 InterBase 和/或 Firebird 的数据库。
  • Recode
  • WDDX

User Contributed Notes

There are no user contributed notes for this page.


其他变更

性能提升

PHP 核心

为 array_key_exists() 函数添加了一个专门的 VM opcache 优化，如果该函数可以被静态解析，则可以提高该函数的性能。如果你在项目中使用了命名空间，可能会需要使用 \array_key_exists() 来显性的导入该函数。

正则表达式 (Perl-Compatible)

当对同一字符串（但可能有不同的偏移量）在 UTF-8 模式（"u" 修饰符）下重复调用 preg_match() 时，只会检查一次 UTF-8 有效性。

INI 配置文件处理的变化

zend.exception_ignore_args 是新的 INI 指令，用于包含或排除异常生成的栈跟踪中的参数。

opcache.preload_user 是新的 INI 指令，用于指定当以 root（出于安全原因不允许这样做）执行时，执行预加载代码的用户帐户。

迁移到 pkg-config

一些扩展已经迁移到只使用 pkg-config 来检测库的依赖性。一般来说，这意味着不再用 --with-foo-dir=DIR 或类似的参数，而是使用 --with-foo。自定义库的路径可以通过向 PKG_CONFIG_PATH 添加额外的目录，或通过 FOO_CFLAGS 和 FOO_LIBS 来明确指定。

以下扩展和 SAPI 会受到影响：

  • CURL:
    • --with-curl 选项不再接受一个目录。
  • Enchant:
    • --with-enchant 选项不再接受一个目录。
  • FPM:
    • --with-fpm-systemd 现在仅使用 pkg-config 进行 libsystem 检查。libsystemd 所需的最低版本是 209。
  • GD:
    • --with-gd 改变为 --enable-gd（是否启用扩展）和 --with-external-gd（选择使用外部 libgd，而不是捆绑 libgd）。
    • --with-png-dir 参数被移除。需要 libpng 支持。
    • --with-zlib-dir 参数被移除。需要 zlib 支持。
    • --with-freetype-dir 改变为 --with-freetype
    • --with-jpeg-dir 改变为 --with-jpeg
    • --with-webp-dir 改变为 --with-webp
    • --with-xpm-dir 改变为 --with-xpm
  • IMAP:
    • --with-kerberos-systemd 选项不再接受一个目录。
  • Intl:
    • --with-icu-dir 被移除。如果使用了 --enable-intl 参数，需要 libicu 支持。
  • LDAP:
    • --with-ldap-sasl 选项不再接受一个目录。
  • Libxml:
    • --with-libxml-dir 被移除。
    • --enable-libxml 改变为 --with-libxml。
    • --with-libexpat-dir 被重命名为 --with-expat 并且该选项不再接受一个目录。
  • Litespeed:
    • --with-litespeed 改变为 --enable-litespeed。
  • Mbstring:
    • --with-onig 被移除。如果指定了 --disable-mbregex 参数，则需要 libonig 支持。
  • ODBC:
    • --with-iodbc 选项不再接受一个目录。
    • --with-unixODBC 现在没有目录时使用 pkg-config（首选）。对于没有 libodbc.pc 的旧版本，仍然接受目录。
  • OpenSSL:
    • --with-openssl 选项不再接受一个目录。
  • PCRE:
    • --with-pcre-regex 已移除。而是提供了 --with-external-pcre 来选择使用外部 PCRE 库，而不是捆绑的那个。
  • PDO_SQLite:
    • --with-pdo-sqlite 选项不再接受一个目录。
  • Readline:
    • --with-libedit 选项不再接受一个目录。
  • Sodium:
    • --with-sodium 选项不再接受一个目录。
  • SQLite3:
    • --with-sqlite3 选项不再接受一个目录。
  • XSL:
    • --with-xsl 选项不再接受一个目录。
  • Zip:
    • --with-libzip 已移除。
    • --enable-zip 改变为 --with-zip。

CSV 转义

现在 fputcsv()、fgetcsv()、SplFileObject::fputcsv()、SplFileObject::fgetcsv() 和 SplFileObject::setCsvControl() 的 $escape 参数 接受空字符，这会禁用 PHP 专有的转义机制。

str_getcsv() 的行为已相应调整（之前空字符串与使用默认值相同）。

SplFileObject::getCsvControl() 也可以相应的为第三个数组元素返回空字符串。

数据过滤

filter 扩展不再展示用于 Unix 构建的 --with-pcre-dir，并且现在可以在使用 ./configure 时可靠地编译为共享。

GD

捆绑 libgd 中 imagecropauto() 的行为已与系统 libgd 的行为同步：

  • IMG_CROP_DEFAULT 不再回退到 IMG_CROP_SIDES
  • 阈值裁剪（threshold-cropping）现在使用系统 libgd 算法

imagecropauto() 的默认 $mode 参数已更改为 IMG_CROP_DEFAULT；现已弃用传递 -1。

imagescale() 现在支持将 -1 传递给 $new_width，从而保留宽高比以缩放到固定的高度。

HASH 消息摘要框架

不能再禁用 hash 扩展，并且始终是编译 PHP 的组成部分，类似于 date 扩展。

Intl

intl 扩展现在至少需要 ICU 50.1。

ResourceBundle 现在实现了 Countable。

轻量级目录访问协议

移除对 nsldap 和 umich_ldap 的支持。

Libxml

所有基于 libxml 的扩展现在都需要 libxml 2.7.6 及其更高的版本。

多字节字符串

oniguruma 库不再与 PHP 捆绑，而是需要在系统上提供 libonig。或者可以使用 --disable-mbregex 禁用 mbregex 组件。

OPcache

--disable-opcache-file 和 --enable-opcache-file 配置选项已移除，以支持 opcache.file_cache INI 指令。

密码散列

现在 password_hash() 和 password_needs_rehash() 函数接受可以为 null 的字符串和 int 作为 $algo 参数。

PEAR

默认不再启用 PEAR（包括 PECL）的安装。可以使用 --with-pear 手动启用它。此选项已弃用，将来可能会移除。

Reflection

ReflectionClass、ReflectionFunction、ReflectionMethod、ReflectionObject 和 ReflectionProperty 类的修饰符常量 (IS_ABSTRACT、IS_DEPRECATED、IS_EXPLICIT_ABSTRACT、IS_FINAL、IS_IMPLICIT_ABSTRACT、IS_PRIVATE、IS_PROTECTED、IS_PUBLIC 和 IS_STATIC) 的数值已经更改。

SimpleXML

SimpleXMLElement 现在实现了 Countable。

SQLite3

捆绑的 libsqlite 已移除。要编译 SQLite3 扩展，现在需要系统 libsqlite3 ≥ 3.7.4。要编译 PDO_SQLite 扩展，现在需要系统 libsqlite3 ≥ 3.5.0。

现在明确禁止 SQLite3、SQLite3Stmt 和 SQLite3Result 的序列化和反序列化。以前，可以序列化这些类的实例，但反序列化会产生不能用的对象。

@param 表示法现在也可用于表示 SQL 查询参数。

Zip

捆绑的 libzip 库已移除。编译 zip 扩展现在需要系统 libzip >= 0.11。

User Contributed Notes

santi at mola dot io 31-Jul-2020 07:54
Note for internals/extensions:

Many opcode values changed between PHP 7.3 and 7.4, so most documentation resources are outdated in that regard. You can look the definitions at Zend/zend_vm_opcodes.h in php-src. For example, ZEND_ECHO changes from 40 to 136.

While opcode changes happen in a lot of PHP versions, the change in 7.4 is quite significant.
ohcc at 163 dot com 09-Jun-2020 04:56
As of PHP 7.4, an exception thrown within the user-defined shutdown function can be caught by the user-defined exception handler.

<?php
    set_error_handler(
        function($level, $error, $file, $line){
            if(0 === error_reporting()){
                return false;
            }
            throw new ErrorException($error, -1, $level, $file, $line);
        },
        E_ALL
    );

    register_shutdown_function(function(){
        $error = error_get_last();
        if($error){
            throw new ErrorException($error['message'], -1, $error['type'], $error['file'], $error['line']);
        }
    });

    set_exception_handler(function($exception){
        // ... more code ...
    });

    require 'NotExists.php';
Florent H (Sowapps) 16-Feb-2020 07:37
This version brings an important changes with the directive zend.exception_ignore_args set to On by default.
In all stack traces, the args key is now missing.
All php frameworks have to handle this to report errors & exceptions.


Windows 支持

configure flag

configure 命令现在支持 CFLAGS 和 LDFLAGS 环境变量。

CTRL 处理

控制台上的 CTRL+C 和 CTRL+BREAK 可以通过 sapi_windows_set_ctrl_handler() 设置处理函数来捕获。

Windows 上的 proc_open() 可以传递"create_process_group"选项。如果子进程要处理 CTRL 事件，则这是必需的。

OPcache

OPcache 现在通过 INI 指令 opcache.cache_id 支持不同用户有不限数量的单独缓存。具有相同缓存 ID 和用户的所有进程共享一个 OPcache 实例。

stat

stat 实现已经重构。

  • 提供 inode 编号，并且其基于 NTFS 文件索引。
  • device 编号现在基于卷序列号。

注意，这两个值均来源于系统并且是基于 64 位系统原样提供。在 32 位系统上，这些值在 PHP 32 位整数上可能会溢出，所以它们是假的。

libsqlite3

libsqlite3 不再静态编译为 php_sqlite3.dll 和 php_pdo_sqlite.dll，而是作为 libsqlite3.dll 提供。依次参阅 SQLite3 和 PDO_SQLITE 的安装说明。

User Contributed Notes

There are no user contributed notes for this page.


从 PHP 7.2.x 移植到 PHP 7.3.x

Table of Contents

  • 新特性
  • 新函数
  • 新的全局常量
  • 不向下兼容的变更
  • PHP 7.3.x 中废弃的功能
  • 其它变更
  • Windows 支持

这个新的小版本带来了大量的新特性和少量的兼容性调整在生产环境切换 PHP 版本前应该进行相关测试。

参见 PHP 版本迁移指南 7.0.x、7.1.x、7.2.x。

User Contributed Notes

There are no user contributed notes for this page.


新特性

PHP 核心

更灵活的 Heredoc 和 Nowdoc 语法

Heredoc 和 Nowdoc 语法变的更灵活。现在支持闭合标记符的缩进，并且不再强制闭合标记符的换行。

数组解构支持引用赋值

数组解构现在支持使用语法 [&$a, [$b, &$c]] = $d 进行引用赋值。list() 也支持同样的操作。

Instanceof 操作符接受字面量

instanceof 现在允许字面量作为第一个操作数，在这种情况下，结果始终为 false。

一些编译错误替换为 CompileError 异常

新增 CompileError 异常，ParseError 继承该异常。现在，少量编译错误将抛出 CompileError，而不是生成致命错误。目前仅影响 TOKEN_PARSE 模式下 token_get_all() 可能抛出的编译错误，但将来可能会转换更多错误。

调用中允许尾随逗号

现在允许在函数和方法调用中使用尾随逗号。

Argon2id 支持

--with-password-argon2[=dir] 配置参数现在提供了对 password_hash()、password_verify()、password_get_info() 和 password_needs_rehash() 函数的 Argon2i 和Argon2id 散列支持。可以使用 PASSWORD_ARGON2ID 常量对密码进行散列处理和验证。password_*() 函数现在对 Argon2i 和 Argon2id 的支持要求 PHP 链接的 libargon2 引用 library ≥ 20161029。

FastCGI 进程管理器

新增了自定义 FPM 日志记录的新选项：

log_limit
此全局选项可用于设置日志记录的行限制，允许记录长度超过 1024 个字符的消息而不换行。还修复了各种封装器问题。
log_buffering
此全局选项实验性允许无需额外缓冲的日志记录。
decorate_workers_output
当启用 catch_workers_output 时，此 pool 选项允许禁用 worker 输出的输出装饰器。

BC 数学函数

bcscale() 现在可以用于检索当前使用的精度。

轻量目录访问协议

LDAP 查询函数和 ldap_parse_result() 已新增对 LDAP 控件的完全支持：

  • ldap_add()、ldap_mod_replace()、ldap_mod_add()、ldap_mod_del()、ldap_rename()、ldap_compare()、ldap_delete()、ldap_modify_batch()、ldap_search()、ldap_list() 和 ldap_read() 新增 $controls 参数，用于发送控件到服务器。
  • ldap_parse_result() 新增输出参数 $controls 用于从服务器中获取控件。
  • ldap_get_option() 和 ldap_set_option() 修复了对 LDAP_OPT_SERVER_CONTROLS 和 LDAP_OPT_CLIENT_CONTROLS 的支持。

多字节字符串函数

完整的大小写映射和大小写折叠支持

新增完整的大小写映射和大小写折叠。与简单的大小写映射不同，完整的大小写映射可能会更改字符串的长度。例如：

<?php
mb_strtoupper("Stra?e");
// Produces STRA?E on PHP 7.2
// Produces STRASSE on PHP 7.3
?>
通过 mb_convert_case() 可以使用不同的大小写映射和折叠模式：
  • MB_CASE_LOWER（用于 mb_strtolower()）
  • MB_CASE_UPPER（用于 mb_strtoupper()）
  • MB_CASE_TITLE
  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE（用于不区分大小写操作）
仅执行绝对的、与语言无关的完整大小写映射。

不区分大小写的字符串操作会使用大小写折叠

不区分大小写的字符串操作现在在比较期间会使用大小写折叠（将所有字符转换为相同的大写或小写）而不是大小写映射（将所有字符转换为其等效的大写或者小写形式）。这意味着现在更多的字符将被视为（不区分大小写）相等。

MB_CASE_TITLE 执行标题大小写转换

mb_convert_case() 现在使用 MB_CASE_TITLE 基于 Unicode 属性衍生的 Cased 和 CaseIgnorable 执行标题大小写转换。尤其是还改进了对引号和撇号的处理。

Unicode 11 支持

多字节字符串数据表已经更新到 Unicode 11。

长字符串支持

多字节字符串函数 现在正确支持超过 2GB 的字符串。

性能提升

多字节字符串扩展的性能得到了全面显著提高。最大的改进是大小写转换函数。

命名捕获支持

mb_ereg_* 函数现在支持命名捕获。像 mb_ereg() 这样的匹配函数现在将使用组号和名称返回命名捕获，类似于 PCRE：

<?php
mb_ereg('(?<word>\w+)', '国', $matches);
// => [0 => "国", 1 => "国", "word" => "国"];
?>
此外，mb_ereg_replace() 现在支持 \k<> 和 \k'' 符号来引用替换字符串中的命名捕获：
<?php
mb_ereg_replace('\s*(?<word>\w+)\s*', "_\k<word>_\k'word'_", ' foo ');
// => "_foo_foo_"
?>
\k<> 和 \k'' 也可用于编号引用，组编号大于 9 也适用。

Readline

readline_info() 中新增对 completion_append_character 和 completion_suppress_append 选项的支持。仅当 PHP 链接到 libreadline（而不是 libedit）时，这些选项才可用。

User Contributed Notes

yoander dot valdes at yahoo dot com 31-May-2019 11:34
"Trailing commas in function and method calls are now allowed" means function parameters, example:

<?php

function my1() {
        echo "xxxxxx\n";
}

function my2() {
        echo "yyyyyy\n";
}

my1(),my2(); // PHP Parse error:  syntax error

my1(,); // PHP Parse error:  syntax error

my1(1,); my2(2,); // OK

?>


新函数

PHP 内核

  • array_key_first()
  • array_key_last()
  • gc_status()
  • hrtime()
  • is_countable()
  • net_get_interfaces()

FastCGI 进程管理器

  • fpm_get_status()

日期和时间

  • DateTime::createFromImmutable()

GNU 高精度

  • gmp_binomial()
  • gmp_kronecker()
  • gmp_lcm()
  • gmp_perfect_power()

国际化相关函数

  • Normalizer::getRawDecomposition()
  • normalizer_get_raw_decomposition()
  • Spoofchecker::setRestrictionLevel()

轻量目录访问协议

  • ldap_add_ext()
  • ldap_bind_ext()
  • ldap_delete_ext()
  • ldap_exop_refresh()
  • ldap_mod_add_ext()
  • ldap_mod_replace_ext()
  • ldap_mod_del_ext()
  • ldap_rename_ext()

OpenSSL

  • openssl_pkey_derive()

Sockets

  • socket_wsaprotocol_info_export()
  • socket_wsaprotocol_info_import()
  • socket_wsaprotocol_info_release()

User Contributed Notes

There are no user contributed notes for this page.


新的全局常量

PHP 核心中预定义的常量

  • PASSWORD_ARGON2ID

客户端 URL 库

  • CURLAUTH_BEARER
  • CURLAUTH_GSSAPI
  • CURLE_WEIRD_SERVER_REPLY
  • CURLINFO_APPCONNECT_TIME_T
  • CURLINFO_CONNECT_TIME_T
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
  • CURLINFO_CONTENT_LENGTH_UPLOAD_T
  • CURLINFO_FILETIME_T
  • CURLINFO_HTTP_VERSION
  • CURLINFO_NAMELOOKUP_TIME_T
  • CURLINFO_PRETRANSFER_TIME_T
  • CURLINFO_PROTOCOL
  • CURLINFO_PROXY_SSL_VERIFYRESULT
  • CURLINFO_REDIRECT_TIME_T
  • CURLINFO_SCHEME
  • CURLINFO_SIZE_DOWNLOAD_T
  • CURLINFO_SIZE_UPLOAD_T
  • CURLINFO_SPEED_DOWNLOAD_T
  • CURLINFO_SPEED_UPLOAD_T
  • CURLINFO_STARTTRANSFER_TIME_T
  • CURLINFO_TOTAL_TIME_T
  • CURL_LOCK_DATA_CONNECT
  • CURL_LOCK_DATA_PSL
  • CURL_MAX_READ_SIZE
  • CURLOPT_ABSTRACT_UNIX_SOCKET
  • CURLOPT_DISALLOW_USERNAME_IN_URL
  • CURLOPT_DNS_SHUFFLE_ADDRESSES
  • CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
  • CURLOPT_HAPROXYPROTOCOL
  • CURLOPT_KEEP_SENDING_ON_ERROR
  • CURLOPT_PRE_PROXY
  • CURLOPT_PROXY_CAINFO
  • CURLOPT_PROXY_CAPATH
  • CURLOPT_PROXY_CRLFILE
  • CURLOPT_PROXY_KEYPASSWD
  • CURLOPT_PROXY_PINNEDPUBLICKEY
  • CURLOPT_PROXY_SSLCERT
  • CURLOPT_PROXY_SSLCERTTYPE
  • CURLOPT_PROXY_SSL_CIPHER_LIST
  • CURLOPT_PROXY_SSLKEY
  • CURLOPT_PROXY_SSLKEYTYPE
  • CURLOPT_PROXY_SSL_OPTIONS
  • CURLOPT_PROXY_SSL_VERIFYHOST
  • CURLOPT_PROXY_SSL_VERIFYPEER
  • CURLOPT_PROXY_SSLVERSION
  • CURLOPT_PROXY_TLS13_CIPHERS
  • CURLOPT_PROXY_TLSAUTH_PASSWORD
  • CURLOPT_PROXY_TLSAUTH_TYPE
  • CURLOPT_PROXY_TLSAUTH_USERNAME
  • CURLOPT_REQUEST_TARGET
  • CURLOPT_SOCKS5_AUTH
  • CURLOPT_SSH_COMPRESSION
  • CURLOPT_SUPPRESS_CONNECT_HEADERS
  • CURLOPT_TIMEVALUE_LARGE
  • CURLOPT_TLS13_CIPHERS
  • CURLPROXY_HTTPS
  • CURLSSH_AUTH_GSSAPI
  • CURL_SSLVERSION_MAX_DEFAULT
  • CURL_SSLVERSION_MAX_NONE
  • CURL_SSLVERSION_MAX_TLSv1_0
  • CURL_SSLVERSION_MAX_TLSv1_1
  • CURL_SSLVERSION_MAX_TLSv1_2
  • CURL_SSLVERSION_MAX_TLSv1_3
  • CURL_SSLVERSION_TLSv1_3
  • CURL_VERSION_ALTSVC (as of PHP 7.3.6)
  • CURL_VERSION_ASYNCHDNS
  • CURL_VERSION_BROTLI
  • CURL_VERSION_CONV
  • CURL_VERSION_CURLDEBUG (as of PHP 7.3.6)
  • CURL_VERSION_DEBUG
  • CURL_VERSION_GSSAPI
  • CURL_VERSION_GSSNEGOTIATE
  • CURL_VERSION_HTTPS_PROXY
  • CURL_VERSION_IDN
  • CURL_VERSION_LARGEFILE
  • CURL_VERSION_MULTI_SSL
  • CURL_VERSION_NTLM
  • CURL_VERSION_NTLM_WB
  • CURL_VERSION_PSL (as of PHP 7.3.6)
  • CURL_VERSION_SPNEGO
  • CURL_VERSION_SSPI
  • CURL_VERSION_TLSAUTH_SRP

数据过滤

  • FILTER_SANITIZE_ADD_SLASHES

JavaScript 对象表示法

  • JSON_THROW_ON_ERROR

轻量目录访问协议

  • LDAP_CONTROL_ASSERT
  • LDAP_CONTROL_MANAGEDSAIT
  • LDAP_CONTROL_PROXY_AUTHZ
  • LDAP_CONTROL_SUBENTRIES
  • LDAP_CONTROL_VALUESRETURNFILTER
  • LDAP_CONTROL_PRE_READ
  • LDAP_CONTROL_POST_READ
  • LDAP_CONTROL_SORTREQUEST
  • LDAP_CONTROL_SORTRESPONSE
  • LDAP_CONTROL_PAGEDRESULTS
  • LDAP_CONTROL_AUTHZID_REQUEST
  • LDAP_CONTROL_AUTHZID_RESPONSE
  • LDAP_CONTROL_SYNC
  • LDAP_CONTROL_SYNC_STATE
  • LDAP_CONTROL_SYNC_DONE
  • LDAP_CONTROL_DONTUSECOPY
  • LDAP_CONTROL_PASSWORDPOLICYREQUEST
  • LDAP_CONTROL_PASSWORDPOLICYRESPONSE
  • LDAP_CONTROL_X_INCREMENTAL_VALUES
  • LDAP_CONTROL_X_DOMAIN_SCOPE
  • LDAP_CONTROL_X_PERMISSIVE_MODIFY
  • LDAP_CONTROL_X_SEARCH_OPTIONS
  • LDAP_CONTROL_X_TREE_DELETE
  • LDAP_CONTROL_X_EXTENDED_DN
  • LDAP_CONTROL_VLVREQUEST
  • LDAP_CONTROL_VLVRESPONSE

多字节字符串

  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE

OpenSSL

  • STREAM_CRYPTO_PROTO_SSLv3
  • STREAM_CRYPTO_PROTO_TLSv1_0
  • STREAM_CRYPTO_PROTO_TLSv1_1
  • STREAM_CRYPTO_PROTO_TLSv1_2

PostgreSQL

  • PGSQL_DIAG_SCHEMA_NAME
  • PGSQL_DIAG_TABLE_NAME
  • PGSQL_DIAG_COLUMN_NAME
  • PGSQL_DIAG_DATATYPE_NAME
  • PGSQL_DIAG_CONSTRAINT_NAME
  • PGSQL_DIAG_SEVERITY_NONLOCALIZED

User Contributed Notes

There are no user contributed notes for this page.


不向下兼容的变更

PHP 核心

Heredoc/Nowdoc 结束标记解释

由于引入了灵活的 heredoc/nowdoc 语法，正文中包含结束标记的文档字符串可能会导致语法错误或解释发生变化。例如在：

<?php
$str = <<<FOO
abcdefg
 FOO
FOO;
?>
FOO 缩进在出现之前没有任何特殊含义。现在将解释为 heredoc 字符串的结尾，并且之后的 FOO; 将导致语法错误。这个问题始终可以通过选择一个不在字符串内容中出现的标记标签来解决。

Switch 中使用 Continue 会发出警告

switch 控制流结构使用 continue 语句现在将生成警告。在 PHP 中，continue 语句相当于 break，而在其它语言中它们的行为等同于 continue 2。

<?php
while ($foo) {
switch ($bar) {
case "baz":
continue;
// Warning: "continue" targeting switch is equivalent to
// "break". Did you mean to use "continue 2"?
}
}
?>

ArrayAccess 上整数 key 的严格解释

类型 $obj["123"] 的数组访问，其中 $obj 实现了 ArrayAccess 以及 "123" 是整数 string 字面量且将不再默默转换为整数，即调用 $obj->offsetGet("123") 而不是 $obj->offsetGet(123)。这与非字面量的值的现有行为相匹配。数组的行为不会受到任何影响，它们仍然会将整数字符串 key 默默转换为整数。

静态属性将不再通过引用赋值分离

在 PHP 中，静态属性是在继承类之间共享的，除非在子类中明确重写了静态属性。然而，由于实现上的原因，可以通过分配引用来分离静态属性。该漏洞已得到修复。

<?php
class Test {
public static $x = 0;
}
class Test2 extends Test { }

Test2::$x = &$x;
$x = 1;

var_dump(Test::$x, Test2::$x);
// Previously: int(0), int(1)
// Now: int(1), int(1)
?>

由访问数组和属性返回的引用会立即展开

由访问数组和属性返回的引用现在作为访问的一部分展开（unwrapped）。这意味着在访问和使用访问的值之间，不会再修改引用：

<?php
$arr = [1];
$ref =& $arr[0];
var_dump($arr[0] + ($arr[0] = 2));
// 之前：int(4)，现在：int(3)
?>
这使得引用和非引用的行为保持一致。请注意，在单个表达式中读取和写入值仍然是未定义的行为，并且将来可能会再次发生变化。

不再支持非整数 key 的可遍历对象的进行参数解包

参数不会解包存在非整数 key 的 Traversable。以下代码在 PHP 5.6-7.2 中意外起作用。

<?php
function foo(...$args) {
var_dump($args);
}
function gen() {
yield 1.23 => 123;
}
foo(...gen());
?>

杂项

ext_skel 应用程序已重新设计，添加了一些新选项并删除了一些旧选项。现在是用 PHP 编写的，没有外部依赖项。

已弃用对 BeOS 的支持。

由于在 EH_THROW 模式下将警告自动转换为异常而引发的异常（例如某些 DateTime 异常）将不再填充 error_get_last() 状态。因此，它们现在的工作方式与手动引发异常相同。

TypeError 现在将错误类型分别报告为 int 和 bool，而不是 integer 和 boolean。

未定义变量传递给 compact()，现在将报告为 notice。

getimagesize() 和相关函数现在将 BMP 图像的 mime 类型报告为 image/bmp 而不是 image/x-ms-bmp，因为前者已经在 IANA 注册（参阅 » RFC 7903）。

stream_socket_get_name() 现在将返回由中括号括起来的 IPv6 地址。例如，将返回 "[::1]:1337" 而不是 "::1:1337"。

BCMath 任意精度数学

BCMath 函数抛出的所有警告现在都使用 PHP 的错误处理。以前，一些警告直接写入了 stderr。

现在，bcmul() 和 bcpow() 返回带有指定小数位数的数字。以前，返回的数字可能省略了尾随的小数零。

IMAP、POP3 和 NNTP

默认情况下禁用 rsh/ssh 登录。使用 imap.enable_insecure_rsh 启用它们。请注意，将邮箱名称传递给 rsh/ssh 命令之前，IMAP 库不会对其进行过滤，因此在启用 rsh/ssh 的情况下将不受信任的数据传递给该函数是不安全的。

多字节字符串

由于增加了对命名捕获的支持，使用命名捕获的 mb_ereg_*() 模式的行为会有所不同。特别是命名捕获将成为匹配的一部分，并且 mb_ereg_replace() 将说明额外语法。有关详细信息，请参阅命名捕获。

MySQL 扩展提升

预处理语句现在可以正确报告带有小数位数说明符的 DATETIME、TIME 和 TIMESTAMP 列的带小数的秒（例如，使用微秒时为 TIMESTAMP(6)）。以前，返回值中简单地省略了秒的小数部分。

MySQL 函数（PDO_MYSQL）

预处理语句现在可以正确报告带有小数位数说明符的 DATETIME、TIME 和 TIMESTAMP 列的带小数的秒（例如，使用微秒时为 TIMESTAMP(6)）。以前，返回值中简单地省略了秒的小数部分。请注意，这仅影响关闭模拟预处理时 PDO_MYSQL 的使用（例如使用原生预处理功能）。使用具有 PDO::ATTR_EMULATE_PREPARES=true（默认值）的连接的语句不受已修复错误的影响，并且已经从引擎获取了带正确小数的秒值。

反射

反射导出为字符串，现在分别使用 int 和 bool 而不是 integer 和 boolean。

PHP 标准库（SPL）

如果 SPL 自动加载器抛出异常，则不会执行后面的自动加载器。以前，所有自动加载器都会执行，并且会将异常链接起来。

SimpleXML

涉及 SimpleXML 对象的数学运算现在会将文本视为 int 或 float，以更合适者为准。以前，值会被无条件视为 int。

传入 cookie

从 PHP 7.3.23 起，出于安全原因，传入 cookie 的 names 不再进行 url 解码。

User Contributed Notes

chris at ocproducts dot com 01-May-2020 08:17
PCRE has been updated (https://wiki.php.net/rfc/pcre2-migration#backward_incompatible_changes).
The new PCRE version is stricter in some cases.


PHP 7.3.x 中废弃的功能

PHP 核心中废弃的功能

大小写不敏感的常量

大小写不敏感的常量声明现已被废弃。将 true 作为第三个参数传递给 define() 将会导致一个废弃警告。大小写不敏感的使用（在读取时使用一个与声明时不同的大小写方式）也已被废弃。

命名空间中的 assert()

废弃：在一个命名空间中声明一个名为 assert() 的函数。 assert() 函数属于引擎特殊处理的情况，当在命名空间中使用相同名字去定义 函数时也许会导致不一致的行为。

在字符串中搜索非字符串内容

废弃：将一个非字符串内容传递给字符串搜索函数。 在将来所有待搜索的内容都将被视为字符串，而不是 ASCII 编码值。如果需要依赖这个特性，你应该 要么显示地进行类型转换（转为字符串），或者显示地调用 chr()。 以下是受到影响的方法：

  • strpos()
  • strrpos()
  • stripos()
  • strripos()
  • strstr()
  • strchr()
  • strrchr()
  • stristr()

Strip-Tags 流

已弃用 fgetss() 函数和
string.strip_tags 流过滤器。这同样影响了 SplFileObject::fgetss()
方法和 gzgetss() 函数。

数据过滤

对于 FILTER_FLAG_SCHEME_REQUIRED 和 FILTER_FLAG_HOST_REQUIRED 常量的显示使用已被废弃。 总之，FILTER_VALIDATE_URL 已经隐含了这两者。

图像处理和 GD 库

image2wbmp() 已被废弃。

国际化相关函数

如果 PHP 关联的ICU ≥ 56, 那么 Normalizer::NONE 形式的使用将会导致抛出一个废弃警告。

多字节字符串

以下在文档中不存在的 mbereg_*() 别名已被废弃。请使用相应的 mb_ereg_*() 变体替代。

  • mbregex_encoding()
  • mbereg()
  • mberegi()
  • mbereg_replace()
  • mberegi_replace()
  • mbsplit()
  • mbereg_match()
  • mbereg_search()
  • mbereg_search_pos()
  • mbereg_search_regs()
  • mbereg_search_init()
  • mbereg_search_getregs()
  • mbereg_search_getpos()
  • mbereg_search_setpos()

ODBC 和 DB2 函数 (PDO_ODBC)

pdo_odbc.db2_instance_name ini 设置项在先前已被废弃。 它在文档中自 PHP 5.1.1 起被废弃

User Contributed Notes

There are no user contributed notes for this page.


其它变更

PHP 核心

Set(raw)cookie 函数接受 $option 数组参数

setcookie() 和 setrawcookie() 现在还支持以下签名：

setcookie(string $name, string $value = "", array $options = []): bool
$options 是关联数组，可以存在以下任意 key "expires"、"path"、"domain"、"secure"、"httponly" 和 "samesite"。

新的 Syslog ini 配置

如果 error_log 设置为 syslog，则新增以下 ini 指令来自定义日志记录：

syslog.facility
指定记录消息的程序类型。
syslog.filter
指定过滤纪录消息的过滤器类型，支持的过滤器类型——all、no-ctrl 和 ascii。自 PHP 7.3.8 起，raw 也可以使用，恢复了 syslog 在之前 PHP 版本中的行为方式。此过滤器还会影响 syslog() 的调用，
syslog.ident
指定在每条消息前面添加的标识符（ident）字符串。

垃圾回收机制

循环 GC 已增强，这可能会带来相当大的性能改进。

其它

var_export() 现在导出 stdClass
为数组转换为对象（(object) array( ... )），而不是使用不存在的方法
stdClass::__setState()。

debug_zval_dump() 已变更为跟 var_dump() 一样的方式显示递归数组和对象。现在，不会重复展示两次了。

array_push() 和 array_unshift() 现在也可以使用单个参数调用，这对于展开运算符来说尤其方便。

交互式 PHP 调试程序

已移除未使用的常量 PHPDBG_FILE、PHPDBG_METHOD、PHPDBG_LINENO 和 PHPDBG_FUNC。

FastCGI 进程管理器

getallheaders() 函数现已可用。

客户端 URL 库

现在需要 libcurl ≥ 7.15.5。

数据过滤

FILTER_VALIDATE_FLOAT 现在还支持 thousand 选项，该选项定义允许的千位分隔符集合。默认值（"',."）与以前的 PHP 版本完全向后兼容。

FILTER_SANITIZE_ADD_SLASHES 已添加为 magic_quotes 过滤器（FILTER_SANITIZE_MAGIC_QUOTES）的别名。 magic_quotes 过滤器可能会在未来的 PHP 版本中移除。

FTP

默认传输模式已更改为 binary。

国际化相关函数

当 PHP 链接到 ICU ≥ 56 时，Normalizer::NONE 已弃用。

引入了 Normalizer::FORM_KC_CF 作为 NFKC_Casefold 标准化的 Normalizer::normalize() 参数；当与 ICU ≥ 56 链接时可用。

JavaScript 对象表示法

添加了新 JSON_THROW_ON_ERROR flag，可以与 json_decode() 或 json_encode()
一起使用，并导致这些函数在发生错误时抛出新的 JsonException，而不是使用 json_last_error() 和
json_last_error_msg() 检索全局错误状态。JSON_PARTIAL_OUTPUT_ON_ERROR 优先于
JSON_THROW_ON_ERROR。

多字节字符串

配置项 --with-libmbfl 不再可用。

ODBC (Unified)

已移除对 ODBCRouter 和 Birdstep 的支持（包括 birdstep.max_links ini 指令）。

OPcache

opcache.inherited_hack ini 指令已移除。自 PHP 5.3.0 起，已忽略该值。

OpenSSL

添加了 min_proto_version 和 max_proto_version ssl stream 选项以及可能的 TLS 协议值的相关常量。

正则表达式（Perl 兼容）

PCRE 扩展已升级到 PCRE2，这可能会导致出现细微的行为变化（例如，现在对类中的字符范围进行更严格的解释），并增强了现有的正则表达式语法。

preg_quote() 现在也转义 '#' 字符。

Microsoft SQL Server 和 Sybase 函数（PDO_DBLIB）

添加了属性 PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS 以启用自动跳过 rowset。

添加了公开 TDS 版本的 PDO::DBLIB_ATTR_TDS_VERSION 属性。

DATETIME2 列现在被视为 DATETIME 列。

SQLite 函数（PDO_SQLITE）

现在可以通过将新的 PDO::SQLITE_ATTR_OPEN_FLAGS 属性设置 PDO::SQLITE_OPEN_READONLY 以只读模式打开 SQLite3 数据库。

Session 处理

session_set_cookie_params() 现在还支持以下签名：

session_set_cookie_params(array $options): bool
其中 $options 是关联数组，可以存在以下任意 key "lifetime"、"path"、"domain"、"secure"、"httponly" 和 "samesite"。因此，session_get_cookie_params() 的返回值现在也有带有 "samesite" key 的元素。此外，还添加了新的 session.cookie_samesite ini 选项来设置 cookie 的 SameSite 指令的默认值。默认为 ""（空字符串），因此未设置 SameSite 指令。可以设置为 "Lax" 或 "Strict"，这会设置相应的 SameSite 指令。

Tidy

现在也透明地支持针对 » tidyp 进行编译。由于 tidyp 没有提供 API 来获取发布日期，因此 tidy_get_release() 和 tidy::getRelease() 在这种情况下返回 'unknown'。

XML 解析器

如果扩展是针对 libxml 编译，则不再忽略 xml_set_external_entity_ref_handler() 回调的返回值。以前，会忽略返回值，并且不会停止解析。

Zip

不建议针对捆绑的 libzip 进行编译，但通过在配置中添加 --without-libzip 仍然可以实现。

Zlib 压缩

compress.zlib 包装器添加了 zlib/level 上下文选项，以方便设置所需的压缩级别。

User Contributed Notes

There are no user contributed notes for this page.


Windows 支持

PHP 核心

更符合 POSIX 标准的文件删除方法

文件描述符默认以共享读/写/删除模式打开。这有效地映射了 POSIX 语义，并允许在使用句柄时删除文件。它不完全相同，一些平台差异仍然存在。在删除之后，将阻塞文件名条目，直到所有打开的句柄都已关闭。

User Contributed Notes

There are no user contributed notes for this page.


从 PHP 7.1.x 移植到 PHP 7.2.x

Table of Contents

  • 新特性
  • 新函数
  • 新全局常量
  • 不向下兼容的变更
  • PHP 7.2.x 中废弃的功能
  • 其他变更

这个新的小版本带来了大量的新特性和少量的兼容性调整在生产环境切换 PHP 版本前应该进行相关测试。

参见 PHP 版本迁移指南 7.0.x 和 7.1.x。

User Contributed Notes

There are no user contributed notes for this page.


新特性

新的对象类型

这种新的对象类型, object, 引进了可用于逆变（contravariant）参数输入和协变（covariant）返回任何对象类型。

<?php

function test(object $obj) : object
{
return new SplQueue();
}

test(new stdClass());

通过名称加载扩展

扩展文件不再需要通过文件加载 (Unix下以.so为文件扩展名，在Windows下以 .dll 为文件扩展名) 进行指定。可以在php.ini配置文件进行启用, 也可以使用 dl() 函数进行启用。

重写抽象方法（Abstract method）

当一个抽象类继承于另外一个抽象类的时候，继承后的抽象类可以重写被继承的抽象类的抽象方法。

<?php

abstract class A
{
abstract function test(string $s);
}
abstract class B extends A
{
// 被覆盖 - 仍然保持参数的逆变和返回的逆变
abstract function test($s) : int;
}

Sodium 现在是核心扩展

现代 Sodium 加密类已经成为 PHP 核心扩展。

参阅 Sodium 章节获取完整函数参考。

使用 Argon2 算法生成密码散列

Argon2 已经加入到密码散列 API, 以下是显露出来的常量:

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

新增 PDO 字符串扩展类型

当你准备支持多语言字符集，PDO的字符串类型已经扩展支持国际化的字符集。以下是扩展的常量：

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

这些常量通过PDO::PARAM_STR利用位运算OR进行计算：

<?php

$db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL);

为 PDO 新增额外的模拟调试信息

PDOStatement::debugDumpParams()方法已经更新，当发送SQL到数据库的时候，在一致性、行查询（包括替换绑定占位符）将会显示调试信息。这一特性已经加入到模拟调试中（在模拟调试打开时可用）。

LDAP 支持新的操作方式

LDAP 扩展已经新增了EXOP支持. 扩展暴露以下函数和常量:

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()
  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Socket 扩展添加了地址信息

Socket 扩展现在具有查找地址信息的能力，且可以连接到这个地址，或者进行绑定和解析。为此添加了以下一些函数:

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

扩展了参数类型

重写方法和接口实现的参数类型现在可以省略了。不过这仍然是符合LSP，因为现在这种参数类型是逆变的。

<?php

interface A
{
public function Test(array $input);
}

class B implements A
{
public function Test($input){} // $input 忽略类型
}

允许分组命名空间的尾部逗号

命名空间可以在PHP 7中使用尾随逗号进行分组引入。

<?php

use Foo\Bar\{
Foo,
Bar,
Baz,
};

proc_nice() 现在支持 Windows

proc_nice() 函数现在支持 Windows。

pack() 和 unpack() 字节序支持

pack() 和 unpack() 函数现在 float 和 double 都支持大小端。

EXIF 扩展增强

EXIF 扩展已更新以支持更多的格式。这意味着使用 exif_read_data() 函数解析图片时，现在可以正确转换图片格式的特定标签。现在支持下面这些新格式：

  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

EXIF 函数 exif_read_data() 和 exif_thumbnail() 现在支持传递流作为它们的第一个参数。

PCRE 新功能

  • PCRE_DUPNAMES 设置新增 J 修饰符。

SQLite3 允许写入 BLOB

SQLite3::openBlob() 现在允许在写入模式打开 BLOB 字段，以前仅支持读模式。

Oracle OCI8 透明应用程序故障转移回调

新增 Oracle 数据库透明应用程序故障转移（TAF）回调的支持。 TAF 允许 PHP OCI8 应用程序在断开链接时自动重新连接到预配置的数据库。新的 TAF 回调支持允许 PHP 应用程序在故障转移期间的监控和控制重新连接。

ZIP 扩展增强

新增加密归档读写支持（需要 libzip 1.2.0）。

现在 ZipArchive 类实现了 Countable 接口。

zip:// 流现在接受 'password' 上下文选项。

User Contributed Notes

antonfedonyuk at gmail dot com 21-Apr-2021 12:27
Note: "omitted" = "removed":
<?php
declare(strict_types=1);

interface ITest
{
    public function run(array $input);
}

class Test implements ITest
{
    public function run($input) {
       return $input;
   }
}

echo (new Test())->run('foo'); // display foo, no error
?>
info at ensostudio dot ru 11-Sep-2020 07:28
Note: you cant change parameter type for abstract method defined in interface.
<?php
abstract class AbstractAssocArray imlements ArrayAccess
{
    abstract public function offsetSet($offset, $value): void;
    ...
}
abstract class AbstractAssocArray2 extends AbstractAssocArray
{
    abstract public function offsetSet(string $offset, $value): void;
}
class AssocArray extends AbstractAssocArray2
{
    public function offsetSet(string $offset, $value): void
    {
         $this->{$offset} = $value;
    }
}
?>
It's throw fatal error: Declaration of AbstractAssocArray::offsetSet(string $offset, $value): void must be compatible with AbstractAssocArrayAccess::offsetSet($offset, $value).


新函数

PHP 内核

  • stream_isatty()
  • sapi_windows_vt100_support()

SPL

  • spl_object_id()

DOM

  • DomNodeList::count()
  • DOMNamedNodeMap::count()

FTP

  • ftp_append()

GD

  • imagesetclip()
  • imagegetclip()
  • imageopenpolygon()
  • imageresolution()
  • imagecreatefrombmp()
  • imagebmp()

Hash

  • hash_hmac_algos()

LDAP

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()

多字节字符串

  • mb_chr()
  • mb_ord()
  • mb_scrub()

Oracle OCI8

  • oci_register_taf_callback()
  • oci_unregister_taf_callback()

Sockets

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Sodium

  • sodium_add()
  • sodium_bin2hex()
  • sodium_compare()
  • sodium_crypto_aead_aes256gcm_decrypt()
  • sodium_crypto_aead_aes256gcm_encrypt()
  • sodium_crypto_aead_aes256gcm_is_available()
  • sodium_crypto_aead_aes256gcm_keygen()
  • sodium_crypto_aead_chacha20poly1305_decrypt()
  • sodium_crypto_aead_chacha20poly1305_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen()
  • sodium_crypto_aead_chacha20poly1305_keygen()
  • sodium_crypto_auth_keygen()
  • sodium_crypto_auth_verify()
  • sodium_crypto_auth()
  • sodium_crypto_box_keypair_from_secretkey_and_publickey()
  • sodium_crypto_box_keypair()
  • sodium_crypto_box_open()
  • sodium_crypto_box_publickey_from_secretkey()
  • sodium_crypto_box_publickey()
  • sodium_crypto_box_seal_open()
  • sodium_crypto_box_seal()
  • sodium_crypto_box_secretkey()
  • sodium_crypto_box_seed_keypair()
  • sodium_crypto_box()
  • sodium_crypto_generichash_final()
  • sodium_crypto_generichash_init()
  • sodium_crypto_generichash_keygen()
  • sodium_crypto_generichash_update()
  • sodium_crypto_generichash()
  • sodium_crypto_kdf_derive_from_key()
  • sodium_crypto_kdf_keygen()
  • sodium_crypto_kx_client_session_keys()
  • sodium_crypto_kx_keypair()
  • sodium_crypto_kx_publickey()
  • sodium_crypto_kx_secretkey()
  • sodium_crypto_kx_seed_keypair()
  • sodium_crypto_kx_server_session_keys()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str()
  • sodium_crypto_pwhash_scryptsalsa208sha256()
  • sodium_crypto_pwhash_str_verify()
  • sodium_crypto_pwhash_str()
  • sodium_crypto_pwhash()
  • sodium_crypto_scalarmult_base()
  • sodium_crypto_scalarmult()
  • sodium_crypto_secretbox_keygen()
  • sodium_crypto_secretbox_open()
  • sodium_crypto_secretbox()
  • sodium_crypto_shorthash_keygen()
  • sodium_crypto_shorthash()
  • sodium_crypto_sign_detached()
  • sodium_crypto_sign_ed25519_pk_to_curve25519()
  • sodium_crypto_sign_ed25519_sk_to_curve25519()
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey()
  • sodium_crypto_sign_keypair()
  • sodium_crypto_sign_open()
  • sodium_crypto_sign_publickey_from_secretkey()
  • sodium_crypto_sign_publickey()
  • sodium_crypto_sign_secretkey()
  • sodium_crypto_sign_seed_keypair()
  • sodium_crypto_sign_verify_detached()
  • sodium_crypto_sign()
  • sodium_crypto_stream_keygen()
  • sodium_crypto_stream_xor()
  • sodium_crypto_stream()
  • sodium_hex2bin()
  • sodium_increment()
  • sodium_memcmp()
  • sodium_memzero()
  • sodium_pad()
  • sodium_unpad()

ZIP

  • ZipArchive::count()
  • ZipArchive::setEncryptionName()
  • ZipArchive::setEncryptionIndex()

User Contributed Notes

There are no user contributed notes for this page.


新全局常量

PHP 内核

  • PHP_FLOAT_DIG
  • PHP_FLOAT_EPSILON
  • PHP_FLOAT_MIN
  • PHP_FLOAT_MAX
  • PHP_OS_FAMILY

文件信息

  • FILEINFO_EXTENSION

JSON

  • JSON_INVALID_UTF8_IGNORE
  • JSON_INVALID_UTF8_SUBSTITUTE

GD

  • IMG_EFFECT_MULTIPLY
  • IMG_BMP

LDAP

  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

密码散列

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

PCRE

  • PREG_UNMATCHED_AS_NULL

PDO

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

Sodium

  • SODIUM_LIBRARY_VERSION
  • SODIUM_LIBRARY_MAJOR_VERSION
  • SODIUM_LIBRARY_MINOR_VERSION
  • SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES
  • SODIUM_CRYPTO_AUTH_BYTES
  • SODIUM_CRYPTO_AUTH_KEYBYTES
  • SODIUM_CRYPTO_BOX_SEALBYTES
  • SODIUM_CRYPTO_BOX_SECRETKEYBYTES
  • SODIUM_CRYPTO_BOX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_BOX_KEYPAIRBYTES
  • SODIUM_CRYPTO_BOX_MACBYTES
  • SODIUM_CRYPTO_BOX_NONCEBYTES
  • SODIUM_CRYPTO_BOX_SEEDBYTES
  • SODIUM_CRYPTO_KDF_BYTES_MIN
  • SODIUM_CRYPTO_KDF_BYTES_MAX
  • SODIUM_CRYPTO_KDF_CONTEXTBYTES
  • SODIUM_CRYPTO_KDF_KEYBYTES
  • SODIUM_CRYPTO_KX_SEEDBYTES
  • SODIUM_CRYPTO_KX_SESSIONKEYBYTES
  • SODIUM_CRYPTO_KX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_KX_SECRETKEYBYTES
  • SODIUM_CRYPTO_KX_KEYPAIRBYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MAX
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX
  • SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13
  • SODIUM_CRYPTO_PWHASH_ALG_DEFAULT
  • SODIUM_CRYPTO_PWHASH_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_SCALARMULT_BYTES
  • SODIUM_CRYPTO_SCALARMULT_SCALARBYTES
  • SODIUM_CRYPTO_SHORTHASH_BYTES
  • SODIUM_CRYPTO_SHORTHASH_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_MACBYTES
  • SODIUM_CRYPTO_SECRETBOX_NONCEBYTES
  • SODIUM_CRYPTO_SIGN_BYTES
  • SODIUM_CRYPTO_SIGN_SEEDBYTES
  • SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES
  • SODIUM_CRYPTO_SIGN_SECRETKEYBYTES
  • SODIUM_CRYPTO_SIGN_KEYPAIRBYTES
  • SODIUM_CRYPTO_STREAM_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_KEYBYTES

Zip

  • ZipArchive::EM_NONE
  • ZipArchive::EM_AES_128
  • ZipArchive::EM_AES_192
  • ZipArchive::EM_AES_256

User Contributed Notes

There are no user contributed notes for this page.


不向下兼容的变更

防止 number_format() 返回负零

之前版本中，number_format() 有可能会返回 -0。虽然这是符合 IEEE 754 规范的，但是这样会导致可读性不好，新版本中会将这样的负数去掉。

<?php

var_dump(number_format(-0.01)); // 新版本输出 string(1) "0" 旧版本输出 string(2) "-0"

转换对象和数组中的数字键

将数组转换为对象，或将对象转换为数组时，数字键现在得到了更好的处理（无论是通过显式转换还是通过 settype() 函数）。

这意味着现在可以访问数组中的整数(或者说是字符串整数)键，这些键会映射到对象中：

<?php

// array to object
$arr = [0 => 1];
$obj = (object)$arr;
var_dump(
$obj,
$obj->{'0'}, // 新写法
$obj->{0} // 新写法
);

以上示例会输出：

object(stdClass)#1 (1) {
  ["0"]=>    // 现在是字符串 key，而不是整数 key
  int(1)
}
int(1)
int(1)

从对象转换成的数组中的整数（或者说是字符串整数）键现在也可以直接访问：

<?php

// object to array
$obj = new class {
public function __construct()
{
$this->{0} = 1;
}
};
$arr = (array)$obj;
var_dump(
$arr,
$arr[0], // 新写法
$arr['0'] // 新写法
);

以上示例会输出：

array(1) {
  [0]=>    // 现在是整数 key，而不是字符串 key
  int(1)
}
int(1)
int(1)

get_class() 函数不再接受 null 参数

之前版本中，传递 null 给 get_class() 函数将返回当前类名。在新版本中，此行为会抛出一个 E_WARNING 错误。如果想实现与之前版本同样的效果，请不要传递任何参数进来。

计算非可数类型（non-countable）时发出警告

对非可数类型调用 count()（或 sizeof()）函数，会抛出一个 E_WARNING 错误。

<?php

var_dump(
count(null), // NULL 不可数
count(1), // 整数不可数
count('abc'), // 字符串不可数
count(new stdClass), // 没有实现 Countable 接口的对象不可数
count([1,2]) // 数组可数
);

以上示例会输出：

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
int(0)
int(1)
int(1)
int(1)
int(2)

ext/hash 从资源变成对象

作为长期迁移资源的一部分，Hash 扩展已更新为使用对象而不是资源。对于 PHP 开发人员来说，该更改应该是无缝整合，除了 is_resource() 检查的地方（需要更新为 is_object()）。

SSL/TLS 的默认选项的改进

下列默认选项被修改：

  • tls:// 默认为 TLSv1.0、TLSv1.1 或 TLSv1.2
  • ssl:// 成为 tls:// 的别名
  • STREAM_CRYPTO_METHOD_TLS_* 常量默认为 TLSv1.0 或 TLSv1.1 + TLSv1.2，替代之前的 TLSv1.0

gettype() 在闭包资源中的返回值

之前版本中，如果在一个闭包资源中使用 gettype() 会返回字符串 "unknown type"，现在将会返回字符 "resource (closed)"。

is_object() 和 __PHP_Incomplete_Class

之前版本中，对 __PHP_Incomplete_Class 调用 is_object() 函数会返回 false，现在会返回 true。

提升未定义常量的错误级别

调用未定义的常量，现在会抛出一个 E_WARNING 错误(之前版本中为 E_NOTICE)。在下一个 PHP 大版本中，将会抛出一个 Error 错误。

Windows 支持

官方支持的最低 Windows 版本为 Windows 7/Server 2008 R2。

检测 trait 的默认属性值

对 trait 默认属性值的兼容性检查将不再执行强制转换。

object 保留字的变化

object 在之前的 PHP 7.0 版本 中被声明为软保留字（soft-reserved）。现在变更为强制保留字，禁止在任何类或接口中使用该名称。

NetWare 支持

不再支持 NetWare。

带 SORT_STRING 的 array_unique()

带 SORT_STRING 的 array_unique()，之前复制数组并删除唯一元素（之后不会打包元素），但现在通过添加唯一元素来构建新数组。这可能会导致不同的数字索引。

bcmod() 的浮点数变更

bcmod() 函数不再将小数截断为整数。因此，其行为现在遵循 fmod()，而不是 % 运算符。例如 bcmod('4', '3.5') 现在返回 0.5 而不是 1。

散列函数和非加密散列

hash_hmac()、hash_hmac_file()、hash_pbkdf2() 和 hash_init()（使用 HASH_HMAC）函数将不再接受非加密散列。

json_decode() 函数变更

如果 json_decode() 的第二个选项（assoc） 为 null，则现在会使用 JSON_OBJECT_AS_ARRAY，之前始终会忽略 JSON_OBJECT_AS_ARRAY。

rand() 和 mt_rand() 输出

在 64 位机器上，自 PHP 7.1 起，由 rand() 和 mt_rand() 为特定的种子生成的一系列随机数可能与之前版本不同（?在实现中修复了一个模偏置错误）。

sql.safe_mode ini 选项移除

sql.safe_mode ini 设置项已被移除。

date_parse() 和 date_parse_from_format() 的变更

date_parse() 和 date_parse_from_format() 返回数组的 zone 元素现在表示秒而不是分钟，并且其符号反转。例如 -120 现在是 7200。

传入 Cookies

自 PHP 7.2.34 起，出于安全原因，传入 cookie 的 names 不再进行 url 解码。

User Contributed Notes

There are no user contributed notes for this page.


PHP 7.2.x 中废弃的功能

不带引号的字符串

不带引号的字符串是不存在的全局常量，转化成他们自身的字符串。 在以前，该行为会产生 E_NOTICE，但现在会产生 E_WARNING。在下一个 PHP 主版本中，将抛出 Error 异常。

<?php

var_dump(NONEXISTENT);

/* Output:
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d
string(11) "NONEXISTENT"
*/

png2wbmp() 和 jpeg2wbmp()

GD 扩展内的 png2wbmp() 和 jpeg2wbmp() 现已被废弃，将在下一个 PHP 主版本中移除。

INTL_IDNA_VARIANT_2003 转化

Intl 扩展废弃了 INTL_IDNA_VARIANT_2003 转化，为idn_to_ascii() 和 idn_to_utf8() 的默认选项。 PHP 7.4 会把默认值设置为 INTL_IDNA_VARIANT_UTS46， 并在下一个 PHP 主版本中完全移除 INTL_IDNA_VARIANT_2003。

__autoload() 方法

__autoload() 方法已被废弃， 因为和 spl_autoload_register() 相比功能较差 (因为无法链式处理多个 autoloader)， 而且也无法在两种 autoloading 样式中配合使用。

track_errors ini 设置和 $php_errormsg 变量

当开启了 track_errors ini 设置，出现非致命错误时， 会在本地作用域创建 $php_errormsg 变量。 由于提供了更好的方式： error_get_last() 来获取此类错误信息，该功能被废弃。

create_function() 函数

考虑到此函数的安全隐患问题（它是 eval() 的瘦包装器），该过时的函数现在已被废弃。 更好的选择是匿名函数。

mbstring.func_overload ini 设置

由于此设置会影响环境中的字符串系列函数，带来相互操作中的问题，它现在已被废弃。

(unset) 类型强制转化

转化任意表达式为此类型，结果总是 null，所以这个多余的类型转化现在也就被废弃了。

parse_str() 不加第二个参数

使用 parse_str() 时，不加第二个参数会导致查询字符串参数导入当前符号表。 考虑到安全隐患问题，不加第二个参数使用 parse_str() 的行为已被废弃。 此函数的第二个选项为必填项，它使查询字符串转为 Array。

gmp_random() 函数

此函数基于未知的、取决于平台的 limb 尺寸产生随机数。因此，该函数已被废弃。 使用更好的方式产生随机数： GMP 扩展中的 gmp_random_bits() 和 gmp_random_range()。

each() 函数

使用此函数遍历时，比普通的 foreach 更慢， 并且给新语法的变化带来实现问题。因此它被废弃了。

assert() 一个字符串参数

assert() 字符串参数将要求它能被 eval() 执行。 考虑到可能被执行远程代码，废弃了字符串的 assert()，最好提供 bool 的表达式。

错误处理器内的 $errcontext 参数

$errcontext 参数包含了错误网站的所有本地变量。 考虑到它很少被用到，而且还会导致内部优化问题，它现在被废弃了。 代替用法：调试器应该自己取回错误站点的本地变量。

read_exif_data() 函数

read_exif_data() 别名已被废弃 使用 exif_read_data() 函数代替。

User Contributed Notes

Anonymous 26-Jul-2018 05:09
An empty <?php?> Codeblock in PHP 7.2.0 will put out an "Unquoted strings" warning. To prevent that, add at least one empty space into the codeblock.

Example:
<?php

<?php/*
echo "This was some useful code.\n";
*/?>

?>
Gives: PHP Warning:  Use of undefined constant php - assumed 'php' (this will throw an Error in a future version of PHP)

Fix via:
<?php

<?php   /*
echo "This was some useful code.\";
*/?>

?>

Don't know if that is an intentional behaviour or a side effect.
webmaster at thedigitalorchard dot ca 01-Feb-2018 05:14
Instead of __autoload(), you can use spl_autoload_register() very easily, as per the documentation:

spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

And this lets you have multiple autoloaders instead of one global one.


其他变更

移动 utf8_encode() 和 utf8_decode()

utf8_encode() 和 utf8_decode() 现在已经作为字符串处理函数移到标准扩展中， 在此之前需要启用 XML 扩展才能使用。

mail() 和 mb_send_mail() 的变更

mail() 和 mb_send_mail() 函数中的 $additional_headers 参数变更为 array，此前为 string。

支持 LMDB

DBA 扩展现在已经支持 LMDB。

PHP 构建系统的变更

  • Unix: 构建 PHP 需要 Autoconf 2.64 或更高的版本。
  • Unix: --with-pdo-oci 配置选项不再需要指定 Oracle Instant Client 的版本号数字。
  • Unix: 移除了 --enable-gd-native-ttf 配置参数。自 PHP 5.5.0 以来就已经不再使用。
  • Windows: 添加了 --with-config-profile 配置参数。 可用于保存细节配置，就像是神奇的 config.nice.bat 文件。

GD的变更

  • 当编译时使用了系统的 libgd，imageantialias() 也能生效。
  • imagegd() 以真彩色储存真彩色图像。在此之前，会转化为调色板图像。

移动 MCrypt 到 PECL

MCrypt 扩展从内核移动到 PECL。 考虑到 mcrypt 库自 2007 年以来未见任何更新，不再建议使用。 代替品即可以用 OpenSSL，也可以用 Sodium。

session_module_name()

传递给 session_module_name() 函数的模块名不允许为 "user"，将会抛出一个 E_RECOVERABLE_ERROR，之前版本会忽略这个问题。

User Contributed Notes

There are no user contributed notes for this page.


从 PHP 7.0.x 移植到 PHP 7.1.x

Table of Contents

  • 新特性
  • 新的函数
  • 新增的全局常量
  • 不向后兼容的变更
  • PHP 7.1.x 中废弃的特性
  • 变动的函数
  • 其它变更
  • Windows 支持

这个新的小版本带来了大量的新特性和少量的兼容性调整在生产环境切换 PHP 版本前应该进行相关测试。

参见 PHP 版本迁移指南 7.0.x。

User Contributed Notes

There are no user contributed notes for this page.


新特性

可为空（Nullable）类型

参数以及返回值的类型现在可以通过在类型前加上一个问号使之允许为空。 当启用这个特性时，传入的参数或者函数返回的结果要么是给定的类型，要么是 null 。

<?php

function testReturn(): ?string
{
return 'elePHPant';
}

var_dump(testReturn());

function testReturn(): ?string
{
return null;
}

var_dump(testReturn());

function test(?string $name)
{
var_dump($name);
}

test('elePHPant');
test(null);
test();

以上示例会输出：

string(10) "elePHPant"
NULL
string(10) "elePHPant"
NULL
Uncaught Error: Too few arguments to function test(), 0 passed in...

Void 函数

一个新的返回值类型 void 被引入。返回值声明为 void 类型的方法要么干脆省去 return 语句，要么使用一个空的 return 语句。 对于 void 函数来说，null 不是一个合法的返回值。

<?php
function swap(&$left, &$right) : void
{
if ($left === $right) {
return;
}

$tmp = $left;
$left = $right;
$right = $tmp;
}

$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);

以上示例会输出：

null
int(2)
int(1)

试图去获取一个 void 方法的返回值会得到 null ，并且不会产生任何警告。这么做的原因是不想影响更高层次的方法。

对称（Symmetric）数组解构

短数组语法（[]）现在作为 list() 语法的一个备选项，可以用于将数组的值赋给一些变量（包括在 foreach 中）。

<?php
$data = [
[1, 'Tom'],
[2, 'Fred'],
];

// list() style
list($id1, $name1) = $data[0];

// [] style
[$id1, $name1] = $data[0];

// list() style
foreach ($data as list($id, $name)) {
// logic here with $id and $name
}

// [] style
foreach ($data as [$id, $name]) {
// logic here with $id and $name
}

类常量可见性

现在起支持设置类常量的可见性。

<?php
class ConstDemo
{
const PUBLIC_CONST_A = 1;
public const PUBLIC_CONST_B = 2;
protected const PROTECTED_CONST = 3;
private const PRIVATE_CONST = 4;
}

iterable 伪类

现在引入了一个新的被称为 iterable 的伪类 (与 callable 类似)。 这可以被用在参数或者返回值类型中，它代表接受数组或者实现了 Traversable 接口的对象。 至于子类，当用作参数时，子类可以收紧父类的 iterable 类型到 array 或一个实现了 Traversable 的对象。对于返回值，子类可以拓宽父类的 array 或对象返回值类型到 iterable。

<?php
function iterator(iterable $iter)
{
foreach ($iter as $val) {
//
}
}

多异常捕获处理

一个catch语句块现在可以通过管道字符（|）来实现多个异常的捕获。 这对于需要同时处理来自不同类的不同异常时很有用。

<?php
try {
// some code
} catch (FirstException | SecondException $e) {
// handle first and second exceptions
}

list() 现在支持键名

现在 list() 和它的新的 [] 语法支持在它内部去指定键名。这意味着它可以将任意类型的数组 都赋值给一些变量（与短数组语法类似）

<?php
$data = [
["id" => 1, "name" => 'Tom'],
["id" => 2, "name" => 'Fred'],
];

// list() style
list("id" => $id1, "name" => $name1) = $data[0];

// [] style
["id" => $id1, "name" => $name1] = $data[0];

// list() style
foreach ($data as list("id" => $id, "name" => $name)) {
// logic here with $id and $name
}

// [] style
foreach ($data as ["id" => $id, "name" => $name]) {
// logic here with $id and $name
}

支持为负的字符串偏移量

现在所有支持偏移量的字符串操作函数都支持接受负数作为偏移量，包括通过 [] 或 {} 操作字符串下标。在这种情况下，一个负数的偏移量会被理解为一个从字符串结尾开始的偏移量。

<?php
var_dump("abcdef"[-2]);
var_dump(strpos("aabbcc", "b", -3));

以上示例会输出：

string (1) "e"
int(3)

在字符串的简单变量解析语法中，现在也支持字符串和数组的负偏移量。

<?php
$string = 'bar';
echo "The last character of '$string' is '$string[-1]'.\n";
?>

以上示例会输出：

The last character of 'bar' is 'r'.

ext/openssl 支持 AEAD

通过给 openssl_encrypt() 和 openssl_decrypt() 添加额外参数，现在支持了 AEAD（模式 GCM 和 CCM）。

通过 Closure::fromCallable() 将 callables 转为闭包

Closure 新增了一个静态方法，用于将 callable 快速地 转为 Closure 对象。

<?php
class Test
{
public function exposeFunction()
{
return Closure::fromCallable([$this, 'privateFunction']);
}

private function privateFunction($param)
{
var_dump($param);
}
}

$privFunc = (new Test)->exposeFunction();
$privFunc('some value');

以上示例会输出：

string(10) "some value"

异步信号处理

一个新的名为 pcntl_async_signals() 的方法现在被引入， 用于启用无需 ticks（这会带来很多额外的开销）的异步信号处理。

<?php
pcntl_async_signals(true); // 打开异步信号

pcntl_signal(SIGHUP, function($sig) {
echo "SIGHUP\n";
});

posix_kill(posix_getpid(), SIGHUP);

以上示例会输出：

SIGHUP

在 ext/curl 中支持 HTTP/2 服务器推送

对服务器推送的支持现在已经被加入到 CURL 扩展中（需要版本 7.46 或更高）。这个可以通过 curl_multi_setopt() 函数与新的常量 CURLMOPT_PUSHFUNCTION 来进行调节。常量 CURL_PUST_OK 和 CURL_PUSH_DENY 也已经被添加进来，以便服务器推送的回调函数来表明自己会同意或拒绝处理。

套接字上下文选项

新增 tcp_nodelay 选项。

User Contributed Notes

DYM 09-Apr-2018 10:36
<?php
function swap( &$a, &$b ): void
  { [ $a, $b ] = [ $b, $a ]; }
?>
unti1x 06-Apr-2018 11:20
Note that declaring nullable return type does not mean that you can skip return statement at all. For example:

php > function a(): ?string { }
php > a();
PHP Warning:  Uncaught TypeError: Return value of a() must be of the type string or null, none returned in php shell code:2

php > function b(): ?string { return; }
PHP Fatal error:  A function with return type must return a value (did you mean "return null;" instead of "return;"?) in php shell code on line 2


新的函数

PHP 核心

  • sapi_windows_cp_get()
  • sapi_windows_cp_set()
  • sapi_windows_cp_conv()
  • sapi_windows_cp_is_utf8()

Closure

  • Closure::fromCallable()

CURL

  • curl_multi_errno()
  • curl_share_errno()
  • curl_share_strerror()

OpenSSL

  • openssl_get_curve_names()

Session

  • session_create_id()
  • session_gc()

SPL

  • is_iterable()

PCNTL

  • pcntl_async_signals()
  • pcntl_signal_get_handler()

User Contributed Notes

There are no user contributed notes for this page.


新增的全局常量

PHP 核心中预定义的常量

  • PHP_FD_SETSIZE

CURL

  • CURLMOPT_PUSHFUNCTION
  • CURL_PUSH_OK
  • CURL_PUSH_DENY

数据过滤

  • FILTER_FLAG_EMAIL_UNICODE

图像处理和 GD

  • IMAGETYPE_WEBP

JSON

  • JSON_UNESCAPED_LINE_TERMINATORS

LDAP

  • LDAP_OPT_X_SASL_NOCANON
  • LDAP_OPT_X_SASL_USERNAME
  • LDAP_OPT_X_TLS_CACERTDIR
  • LDAP_OPT_X_TLS_CACERTFILE
  • LDAP_OPT_X_TLS_CERTFILE
  • LDAP_OPT_X_TLS_CIPHER_SUITE
  • LDAP_OPT_X_TLS_KEYFILE
  • LDAP_OPT_X_TLS_RANDOM_FILE
  • LDAP_OPT_X_TLS_CRLCHECK
  • LDAP_OPT_X_TLS_CRL_NONE
  • LDAP_OPT_X_TLS_CRL_PEER
  • LDAP_OPT_X_TLS_CRL_ALL
  • LDAP_OPT_X_TLS_DHFILE
  • LDAP_OPT_X_TLS_CRLFILE
  • LDAP_OPT_X_TLS_PROTOCOL_MIN
  • LDAP_OPT_X_TLS_PROTOCOL_SSL2
  • LDAP_OPT_X_TLS_PROTOCOL_SSL3
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_0
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_1
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_2
  • LDAP_OPT_X_TLS_PACKAGE
  • LDAP_OPT_X_KEEPALIVE_IDLE
  • LDAP_OPT_X_KEEPALIVE_PROBES
  • LDAP_OPT_X_KEEPALIVE_INTERVAL

PostgreSQL

  • PGSQL_NOTICE_LAST
  • PGSQL_NOTICE_ALL
  • PGSQL_NOTICE_CLEAR

SPL

  • MT_RAND_PHP

User Contributed Notes

There are no user contributed notes for this page.


不向后兼容的变更

当传递参数过少时将抛出错误

在过去如果我们调用一个用户定义的函数时，提供的参数不足，那么将会产生警告（warning）。现在，这个警告被提升为错误异常（Error exception）。这个变更仅对用户定义的函数生效，并不包含内置函数。例如：

<?php
function test($param){}
test();

以上示例的输出类似于：

Fatal error: Uncaught ArgumentCountError: Too few arguments to function test(), 0 passed in %s on line %d and exactly 1 expected in %s:%d

禁止动态调用作用域内的内省（introspection）函数

禁止动态调用（$func() 或 array_map('extract', ...) 的形式等）某些函数。这些函数会检查或修改另一个作用域，并呈现出不明确且不可靠的行为。函数如下：

  • assert()——字符串作为第一个参数
  • compact()
  • extract()
  • func_get_args()
  • func_get_arg()
  • func_num_args()
  • get_defined_vars()
  • mb_parse_str()——使用一个参数
  • parse_str()——使用一个参数
<?php
(function () {
$func = 'func_num_args';
$func();
})();

以上示例会输出：

Warning: Cannot call func_num_args() dynamically in %s on line %d

无效的 class、interface 和 trait 名称

下列名称不能用于 class、interfaces 或 traits 名：

  • void
  • iterable

数字字符串转换现在遵循科学记数法

现在在数字字符串上执行整数运算和转换会考虑科学计数法。这还包括 (int) 类型转换操作以及以下函数：intval()（基数为 10）、settype()、decbin()、decoct() 和 dechex()。

修复 mt_rand() 算法

mt_rand() 现在默认使用修复版本的梅森旋转算法。如果依赖于 mt_rand() 的确定输出，则可以使用 MT_RAND_PHP 作为 mt_srand() 的可选第二个参数，以保留旧的（不正确的）实现。

rand() 是 mt_rand() 的别名以及 srand() 是 mt_srand() 的别名

rand() 和 srand() 现已成为 mt_rand() 和 mt_srand() 的别名。这意味着以下函数已经更改：rand()、shuffle()、str_shuffle() 和 array_rand()。

禁止在标识符中使用 ASCII 删除控制字符

ASCII 删除控制字符（0x7F）不能用于未加引号的标识符中。

error_log 更改为 syslog 值

如果 error_log ini 设置为 syslog，PHP 错误等级会映射到 syslog 错误级别。这在错误日志中带来了更好的区分，与之前相反，之前所有的错误只记录了错误级别。

在不完整的对象上不再调用析构方法

对于在执行构造方法时抛出异常的对象，现在析构方法绝不会被调用。在先前的版本中，这个行为取决于对象是否在构造方法以外的地方呗引用（例如一个错误堆栈回溯）

call_user_func() 不再支持对传址的函数的调用

call_user_func() 现在在调用一个以引用作为参数的函数时将始终产生一个警告。先前这取决于这个调用行为是否完全符合条件。

此外，call_user_func() 和 call_user_func_array() 在这种情况下将不再中断函数调用。现在会出现包含"expected reference"的警告信息，但函数调用将正常进行。

字符串不再支持空索引操作符

对字符串使用一个空索引操作符（例如$str[] = $x）将会抛出一个致命错误，而不是静默地将其转为一个数组。

ini 配置项移除

下列 ini 配置项已经被移除：

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

在引用赋值期间自动创建元素时的数组排序已更改

当通过引用赋值自动创建这些元素时，数组中元素的顺序就会发生变化。例如：

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

以上示例在 PHP 7.0 中的输出：

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

以上示例在 PHP 7.1 中的输出：

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

相等元素的排序顺序

内部排序算法已得到改进，这可能会导致元素比较相等的排序顺序与以前不同。

Note:

不要依赖比较相等的元素的顺序；它可能随时改变。

E_RECOVERABLE 错误的错误消息

E_RECOVERABLE 错误的错误消息已从"可捕获的致命错误"更改为"可恢复的致命错误"。

unserialize() 的 $options 参数

unserialize() 的 $options 参数的 allowed_classes 元素现在是严格类型，也就是说，如果指定了 array 或 bool 以外的任何内容，则 unserialize() 返回 false 并发出 E_WARNING。

DateTime 构造方法包含微秒

DateTime 和 DateTimeImmutable 现在构造当前时间时正确地包含微秒，无论是明确指定的还是使用相对字符串（例如 "first day of next month"）。这意味着两个新创建的实例的原生比较现在更有可能返回 false 而不是 true：

<?php
new DateTime() == new DateTime();
?>

核心错误转换为 Error 异常

在 Date 扩展中，DateTime 或 DatePeriod 类的无效序列化数据或者序列化数据的时区初始化失败，现在将从 __wakeup() 或 __set_state() 方法抛出 Error 异常，而不是导致致命错误。

在 DBA 扩展中，如果键没有完全包含两个元素，数据修改函数（例如 dba_insert()）现在将抛出 Error 异常，而不是触发可捕获的致命错误。

在 DOM 扩展中，无效的模式或 RelaxNG 验证上下文现在将引发 Error 异常，而不是导致致命错误。同样，尝试注册不继承适宜基类的节点类、尝试读取无效属性或写入只读属性，现在也将引发 Error 异常。

在 IMAP 扩展中，长度超过 16385 字节的电子邮件地址将引发 Error 异常，而不是导致致命错误。

在 Intl 扩展中，在调用父级方法之前，在继承 Collator 的类中调用父级构造方法失败，现在将抛出 Error 而不是可恢复的致命错误。此外克隆 Transliterator 对象时，如果无法克隆内部 transliterator，将抛出 Error 异常，而不会导致致命错误。

在 LDAP 扩展中，向 ldap_batch_modify() 提供未知的修改类型现在将引发 Error 异常，而不是导致致命错误。

在 mbstring 扩展中，如果提供了无效的 PHP 表达式并且使用了"e"选项，mb_ereg() 和 mb_eregi() 函数现在将引发 ParseError 异常。

在 Mcrypt 扩展中，如果 mcrypt 无法初始化，mcrypt_encrypt() 和 mcrypt_decrypt() 现在将抛出 Error 异常，而不是导致致命错误。

在 mysqli 扩展中，尝试读取无效属性或写入只读属性现在将引发 Error 异常，而不是导致致命错误。

在反射扩展中，检索 reflection 对象或检索对象属性失败现在将引发 Error 异常，而不是导致致命错误。

在 Session 扩展中，当调用必须生成会话 ID 的函数时，自定义会话处理程序不返回字符串格式的会话 ID 现在将引发 Error 异常，而不是导致致命错误。

在 SimpleXML 扩展中，创建未命名或重复的属性现在将引发 Error 异常，而不是导致致命错误。

在 SPL 扩展中，尝试克隆 SplDirectory 对象现在将引发 Error 异常，而不是导致致命错误。同理，在迭代对象时调用 ArrayIterator::append() 现在也会引发 Error 异常。

在标准扩展中，将字符串作为其第一个参数时，assert() 函数现在将抛出 ParseError 异常，而不是在 PHP 代码无效时导致可捕获的致命错误。同理，在类作用域之外调用 forward_static_call() 现在将引发 Error 异常。

在 Tidy 扩展中，手动创建 tidyNode 现在将抛出 Error 异常，而不是导致致命错误。

在 WDDX 扩展中，序列化时的循环引用现在将引发 Error 异常，而不是导致致命错误。

在 XML-RPC 扩展中，序列化时的循环引用现在将抛出 Error 异常实例，而不是导致致命错误。

在 Zip 扩展中，如果 glob 支持无效，ZipArchive::addGlob() 方法现在将引发 Error 异常，而不是导致致命错误。

词法绑定变量不能重用名字

通过 use 构造绑定到 closure 的变量不能使用与任何 superglobals、$this 或任何参数相同的名称。例如，所有这些函数定义都会导致致命错误：

<?php
$f = function () use ($_SERVER) {};
$f = function () use ($this) {};
$f = function ($param) use ($param) {};

long2ip() 参数类型更改

long2ip() 现在接受 int 而不是 string。

JSON 编/解码

serialize_precision ini 设置现在控制编码 float 时的序列化精度。

解码空键（empty key）现在会产生空属性，而不是 _empty_ 作为属性名称。

<?php
var_dump(json_decode(json_encode(['' => 1])));

以上示例的输出类似于：

object(stdClass)#1 (1) {
  [""]=>
  int(1)
}

当向 json_encode() 提供 JSON_UNESCAPED_UNICODE flag 时，现在转义序列 U+2028 和 U+2029。

更改 mb_ereg() 和 mb_eregi() 参数语义

如果没有匹配到内容，mb_ereg() 和 mb_eregi() 函数（regs）的第三个参数现在将设置为空数组。以前，不会修改该参数。

放弃对 sslv2 stream 的支持

sslv2 stream 现已在 OpenSSL 中删除。

在编译时禁止 "return;" 用于类型化返回

在声明返回类型的函数中，没有参数的 return 语句现在触发 E_COMPILE_ERROR（除非返回类型声明为 void），即使永远不会到达 return 语句。

User Contributed Notes

david at artefactual dot com 04-Apr-2019 05:29
Regarding the ArgumentCountError, PHP 7.1+ does still support user functions with a variable number of arguments, using the "func(...$args) {}" syntax, see: https://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list
mikem at gmail dot com 21-Nov-2017 12:09
ArgumentCountError - this modification is the main reason to avoid this version on older projects.
kees at twekaers dot net 21-Mar-2017 11:49
The backwards incompatible change 'The empty index operator is not supported for strings anymore' has a lot more implications than just a fatal error on the following code

<?php
$a = "";
$a[] = "hello world";
var_dump($a);
?>

This will give a fatal error in 7.1 but will work as expected in 7.0 or below and give you: (no notice, no warning)

array(1) {
  [0]=>
  string(11) "hello world"
}

However, the following is also changed:

<?php
$a = "";
$a[0] = "hello world";
var_dump($a);
// 7.1: string(1) "h"
// pre-7.1: array(1) {  [0]=>  string(11) "hello world" }

$a = "";
$a[5] = "hello world";
var_dump($a);
// 7.1: string(6) "     h"
// pre-7.1: array(1) {  [0]=>  string(11) "hello world" }

?>
m dot r dot sopacua at gmail dot com 30-Dec-2016 03:49
"OMFG! Why was session.hash_function removed?!? Dude!"

https://wiki.php.net/rfc/session-id-without-hashing

There. Saved ya a search.
love at sickpeople dot se 24-Nov-2016 07:59
For anyone migrating from 5.x to 7.1:

About "Array ordering when elements are automatically created during by reference assignments has changed" on this page

(http://php.net/manual/en/migration71.incompatible.php#migration71.incompatible.array-order)

The behaviour of 7.1 is THE SAME as of PHP 5. It is only 7.0 that differs.

See https://3v4l.org/frbUc

<?php

$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);


PHP 7.1.x 中废弃的特性

ext/mcrypt

mcrypt 扩展已经过时了大约 10 年，并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。从 PHP 7.2 起它将被从核心代码中移除并且移到 PECL 中。

mb_ereg_replace() 和 mb_eregi_replace() 的 Eval 选项

对于 mb_ereg_replace() 和 mb_eregi_replace() 的 e 模式修饰符现在已被废弃。

User Contributed Notes

There are no user contributed notes for this page.


变动的函数

PHP 核心

  • getopt() 函数增加了第三个参数，这是一个可选参数。通过以引用的方式传入参数，它可以用来存储参数列表中下一个参数的下标位置。
  • getenv() 可以不传入任何参数。如果不传入参数，此函数会以关联数组的形式返回所有的环境变量。
  • get_headers() 增加了一个参数，可以用来解析自定义的流上下文。
  • output_reset_rewrite_vars() 函数不再重置会话 URL 重写变量了。
  • parse_url() 更加严格的限制，并且提供对 RFC3986 的支持。
  • unpack() 函数增加第三个参数，这是一个可选参数，用来指定开始解包的位置。

文件系统

  • file_get_contents() 接受负数作为搜索偏移量，前提是流上下文必须是可搜索的。
  • tempnam() 会在退回使用系统临时目录的时候，产生警告。

JSON

  • json_encode() 增加新的选项 JSON_UNESCAPED_LINE_TERMINATORS。这个选项可以在指定 JSON_UNESCAPED_UNICODE 选项的时候，对于 U+2028 和 U+2029 这两个字符不再进行转义。

多子节字符

  • mb_ereg() 不接受无效的字节序列。
  • mb_ereg_replace() 不接受无效的字节序列。

PDO

  • PDO::lastInsertId() 在用于 PostgreSQL 数据库的时候，如果当前会话（到 PostgreSQL 的数据库连接）上尚未调用过 nextval，那么此方法会触发一个错误。

PostgreSQL

  • pg_last_notice() 增加一个用来指定操作的可选参数。可使用以下常量作为此参数的值 PGSQL_NOTICE_LAST、PGSQL_NOTICE_ALL 或 PGSQL_NOTICE_CLEAR。
  • pg_fetch_all() 增加第二个参数，这是一个可选参数，它用来指定返回结果的类型（类似于 pg_fetch_array() 的第三个参数）。
  • pg_select() 增加第四个参数，这是一个可选参数，它用来指定返回结果的类型（类似于 pg_fetch_array() 的第三个参数）。

Session

  • session_start() 当无法成功初始化会话的时候，返回 false，并且不会初始化超级变量 $_SESSION。

User Contributed Notes

There are no user contributed notes for this page.


其它变更

无效字符串计算的通知和警告

当对无效字符串使用期望数字的操作符（+ - * / ** % << >> | & ^）或者其赋值等效项（assignment equivalents）进行强制转换时，已引入新的 E_WARNING 和 E_NOTICE 错误。当字符串以数字开头但后跟非数字字符时，会发出 E_NOTICE；当字符串不包含数字值时，会发出 E_WARNING。

<?php
'1b' + 'something';

以上示例会输出：

Notice: A non well formed numeric value encountered in %s on line %d
Warning: A non-numeric value encountered in %s on line %d

八进制转义序列溢出时发出警告

以前，3 字节的八进制字符串转义序列会默默溢出。现在，仍然会溢出，但会发出 E_WARNING 警告。

<?php
var_dump("\500");

以上示例会输出：

Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
string(1) "@"

$this 不一致的修正

虽然在 PHP 中将 $this 视为特殊变量，但它缺乏适当的检查来确保不会用作变量名或重新分配。现在已对此进行纠正，以确保 $this 不能是用户定义的变量、重新分配给不同的值或全局化。

无需散列即可生成 Session ID

Session ID 将不再在生成时进行哈希。这一变化，会导致以下四个 ini 设置不再使用：

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

并增加以下两个 ini 设置：

  • session.sid_length - 定义会话 ID 的长度（为了向后兼容，默认为 32 个字符）
  • session.sid_bits_per_character - 定义了每个字符的存储位数（即增加了会话 ID 中可使用的字符范围），为了向后兼容，默认为 4

INI 文件处理的变化

precision

如果该值设置为 -1，则使用 dtoa mode 0。默认值仍然是 14。

serialize_precision

如果该值设置为 -1，则使用 dtoa mode 0。现在默认值使用 -1。

gd.jpeg_ignore_warning

此 php.ini 设置的默认值已更改为 1，因此默认情况下将忽略 libjpeg 警告。

opcache.enable_cli

此 php.ini 设置的默认值已在 PHP 7.1.2 中更改为 1（启用），并在 PHP 7.1.7 中更改回 0（禁用）。

仅使用 CSPRNG 生成会话 ID

现在只能使用 CSPRNG 生成会话 ID。

当允许 null 时提供更多信息的 TypeError 消息

arg_info 类型检查的 TypeError 异常现在将提供更多有用的错误消息。如果参数类型或返回类型接受 null（通过具有默认值 null 或可为 null 的类型），则错误消息现在将通过消息"must be ... or null"或"must ... or be null."提及这一点。

User Contributed Notes

Ta7To7 27-Feb-2018 05:47
Note that using Incrementing/Decrementing operators on string is legal
<?php
$str = "";
echo ++$str; // output: 1
?>


Windows 支持

支持长路径和 UTF-8 路径

如果 Web 应用程序符合 UTF-8 编码，则不需要采取进一步的操作。对于依赖非 UTF-8 编码路径进行 I/O 的应用程序，必须设置明确的 INI 指令。编码 INI 设置的检查依赖于核心的顺序：

  • internal_encoding
  • default_charset
  • zend.multibyte

引入了几个用于处理代码页的函数：

  • sapi_windows_cp_set() 用于设置默认的代码页
  • sapi_windows_cp_get() 用于检索当前代码页
  • sapi_windows_cp_is_utf8()
  • sapi_windows_cp_conv() 使用 iconv() 兼容签名在代码页之间进行转换

这些函数是线程安全的。

控制台输出代码页根据 PHP 中使用的编码进行调整。具体取决于系统的 OEM 代码页，可见输出可能正确，也可能不正确。例如，在默认 cmd.exe 和 OEM 代码页为 437 的系统上，使用 UTF-8 时可以正确显示代码页 1251、1252、1253 和其它一些代码页中的输出。在同一系统上，代码页中的字符（例如 20932）可能无法正确显示。这是指代码页、字体兼容性和所使用的特定控制台程序的特定系统规则。PHP 根据 php.ini 中的编码规则自动设置控制台代码页。在某些情况下，使用替代控制台而不是直接使用 cmd.exe 可能会带来更好的体验。

不过请注意，请求开始后切换运行时代码页可能会给 CLI 带来意想不到的副作用。更好的方法是 php.ini，当在不支持 Unicode 的控制台模拟器中使用 PHP CLI 时，可能需要这样做，以避免更改控制台代码页。实现此目的的最佳方式是将默认编码或内部编码设置为相应的 ANSI 代码页。另一种方法是将 INI 指令 output_encoding 和 input_encoding 设置为所需的代码页，但在这种情况下，内部代码页和 I/O 代码页之间的差异可能会导致乱码。在极少数情况下，如果 PHP 碰巧优雅崩溃，原始的控制台代码页可能无法恢复。在这种情况下，可以使用 chcp 命令，手动恢复。

对于 DBCS 系统需要特别注意——在运行时使用 ini_set() 切换代码页可能会导致显示问题。与非 DBCS 系统的区别在于，扩展字符需要两个控制台单元格才能显示。在某些情况下，只有将字符映射到字体的字形集才能发生，而不会实际更改字体。这是 DBCS 系统的本质，预防显示问题的最简单方法是避免使用 ini_set() 进行代码页更改。

由于 stream 支持 UTF-8，PHP 脚本不再局限于 ASCII 或 ANSI 文件名。CLI 上开箱即用的支持此功能。对于其它 SAPI，相应服务器的文档很有用。

长路径支持是公开的。超过 260 字节的路径会自动添加前缀 \\?\。最大路径长度限制为 2048 字节。路径片断限制（文件名长度）仍然存在。

为了获得最佳的可移植性，强烈推荐使用 UTF-8 处理文件名、I/O 和其它相关主题。此外，对于控制台应用程序，最好使用 TrueType 字体，并且不鼓励使用 ini_set() 来更改代码页。

readline

readline 扩展 现在通过 » WinEditLine 库 来实现了支持。因此，一个交互式的 CLI 命令行也得到了支持。(php.exe -a)。

PHP_FCGI_CHILDREN

PHP_FCGI_CHILDREN 现在收到重视。如果定义了此环境变量，第一个 php-cgi.exe 进程将执行指定数量的子进程。它们将共享相同的 TCP socket。

ftok()

新增 ftok() 支持

User Contributed Notes

There are no user contributed notes for this page.


从 PHP 5.6.x 移植到 PHP 7.0.x

Table of Contents

  • 不向后兼容的变更
  • 新特性
  • PHP 7.0.x 弃用的功能
  • 变更的函数
  • 新函数
  • 新的类和接口
  • 新的全局常量
  • SAPI 模块的变化
  • 移除的扩展和 SAPI
  • 其它变更

尽管 PHP 7.0 是一个新的大版本，我们仍将致力于使迁移变得平缓。这个版本主要消除在之前版本中不推荐使用的内容，使得语言变得更加通用一致。

这有一些值得关注的少量的兼容性调整以及 新的特性，同时在生产环境切换 PHP 版本之前，应该对代码进行测试。

User Contributed Notes

There are no user contributed notes for this page.


不向后兼容的变更

错误和异常处理相关的变更

在 PHP 7 中，很多致命错误以及可恢复的致命错误，都被转换为异常来处理了。这些异常继承自 Error 类，此类实现了 Throwable 接口（所有异常都实现了这个基础接口）。

这也意味着，当发生错误的时候，以前代码中的一些错误处理的代码将无法被触发。因为在 PHP 7 版本中，已经使用抛出异常的错误处理机制了。（如果代码中没有捕获 Error 异常，那么会引发致命错误）。

PHP 7 中的错误处理的更完整的描述，请参见 PHP 7 错误处理。本迁移指导主要是列出对兼容性有影响的变更。

set_exception_handler() 不再保证收到的一定是 Exception 对象

抛出 Error 对象时，如果 set_exception_handler() 里的异常处理代码声明了类型 Exception ，将会导致 fatal error。

想要异常处理器同时支持 PHP 5 和 7，应该删掉异常处理器里的类型声明。如果代码仅仅是升级到 PHP 7，则可以把类型 Exception 替换成 Throwable。

<?php
// PHP 5 时代的代码将会出现问题
function handler(Exception $e) { ... }
set_exception_handler('handler');

// 兼容 PHP 5 和 7
function handler($e) { ... }

// 仅支持 PHP 7
function handler(Throwable $e) { ... }
?>

当内部构造方法失败的时候，始终抛出异常

在之前版本中，如果内部类的构造方法出错，会返回 null 或者一个不可用的对象。从 PHP 7 开始，如果内部类构造方法发生错误，那么会抛出异常。

解析错误会抛出 ParseError 异常

解析错误会抛出 ParseError 异常。对于 eval() 函数，需要将其包含到一个 catch 代码块中来处理解析错误。

E_STRICT 警告级别变更

原有的 E_STRICT 警告都被迁移到其他级别。E_STRICT 常量会被保留，所以调用 error_reporting(E_ALL|E_STRICT) 不会引发错误。

E_STRICT 警告级别变更
场景 | 新的级别/行为
将资源类型的变量用作键来进行索引 | E_NOTICE
抽象静态方法 | 不再警告，会引发错误
重复定义构造器函数 | 不再警告，会引发错误
在继承的时候，方法签名不匹配 | E_WARNING
在两个 trait 中包含相同的（兼容的）属性 | 不再警告，会引发错误
以非静态调用的方式访问静态属性 | E_NOTICE
变量应该以引用的方式赋值 | E_NOTICE
变量应该以引用的方式传递（到函数参数中） | E_NOTICE
以静态方式调用实例方法 | E_DEPRECATED

关于变量处理的变化

PHP 7 现在使用了抽象语法树来解析源代码。这使得许多由于之前的 PHP 的解释器的限制所不可能实现的改进得以实现。但出于一致性的原因导致了一些特殊例子的变动，而这些变动打破了向后兼容。在这一章中将详细介绍这些例子。

关于间接使用变量、属性和方法的变化

对变量、属性和方法的间接调用现在将严格遵循从左到右的顺序来解析，而不是之前的混杂着几个特殊案例的情况。下面这张表说明了这个解析顺序的变化。

间接调用的表达式的新旧解析顺序
表达式 | PHP 5 的解析方式 | PHP 7 的解析方式
$$foo['bar']['baz'] | ${$foo['bar']['baz']} | ($$foo)['bar']['baz']
$foo->$bar['baz'] | $foo->{$bar['baz']} | ($foo->$bar)['baz']
$foo->$bar['baz']() | $foo->{$bar['baz']}() | ($foo->$bar)['baz']()
Foo::$bar['baz']() | Foo::{$bar['baz']}() | (Foo::$bar)['baz']()

使用了旧的从右到左的解析顺序的代码必须被重写，明确的使用大括号来表明顺序（参见上表中间一列）。这样使得代码既保持了与 PHP 7.x 的前向兼容性，又保持了与 PHP 5.x 的后向兼容性。

这同样影响了 global 关键字。如果需要的话可以使用大括号来模拟之前的行为。

<?php
function f() {
// Valid in PHP 5 only.
global $$foo->bar;

// Valid in PHP 5 and 7.
global ${$foo->bar};
}
?>

关于 list() 处理方式的变更

list() 不再以反向的顺序来进行赋值

list() 现在会按照变量定义的顺序来给他们进行赋值，而非反过来的顺序。 通常来说，这只会影响 list() 与数组的 [] 操作符一起使用的案例，如下所示：

<?php
list($a[], $a[], $a[]) = [1, 2, 3];
var_dump($a);
?>

以上示例在 PHP 5 中的输出：

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}

以上示例在 PHP 7 中的输出：

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

总之，我们推荐不要依赖 list() 的赋值顺序，因为这是在未来也许会变更的实现细节。

空的 list() 赋值支持已经被移除

list() 结构现在不再能是空的。如下的例子不再被允许：

<?php
list() = $a;
list(,,) = $a;
list($x, list(), $y) = $a;
?>
list() 不再能解开 string

list() 不再能解开字符串（string）变量。可以使用 str_split() 来代替。

当元素在引用赋值期间自动创建元素时，数组的顺序会发生改变。

当通过引用赋值自动创建这些元素时，数组中元素的顺序就会发生变化。例如：

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

以上示例在 PHP 5 中的输出：

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

以上示例在 PHP 7 中的输出：

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

函数参数附近的括号不再影响行为

在 PHP 5中，在以引用方式传递函数参数时，使用冗余的括号对可以隐匿严格标准的警告。现在，这个警告总会触发。

<?php
function getArray() {
return [1, 2, 3];
}

function squareArray(array &$a) {
foreach ($a as &$v) {
$v **= 2;
}
}

// Generates a warning in PHP 7.
squareArray((getArray()));
?>

以上示例会输出：

Notice: Only variables should be passed by reference in /tmp/test.php on line 13

foreach 的变化

foreach 发生了细微的变化，控制结构，主要围绕阵列的内部数组指针和迭代处理的修改。

foreach 不再改变内部数组指针

在 PHP 7 之前，当数组通过 foreach 迭代时，数组指针会移动。现在开始，不再如此，见下面代码

<?php
$array = [0, 1, 2];
foreach ($array as &$val) {
var_dump(current($array));
}
?>

以上示例在 PHP 5 中的输出：

int(1)
int(2)
bool(false)

以上示例在 PHP 7 中的输出：

int(0)
int(0)
int(0)

foreach 通过值遍历时，操作的值为数组的副本

当默认使用通过值遍历数组时，foreach 实际操作的是数组的迭代副本，而非数组本身。这就意味着迭代期间对数组所做的修改不会影响迭代的值。

foreach 通过引用遍历时，有更好的迭代特性

当使用引用遍历数组时，现在 foreach 在迭代中能更好的跟踪变化。例如，在迭代中添加一个迭代值到数组中，参考下面的代码：

<?php
$array = [0];
foreach ($array as &$val) {
var_dump($val);
$array[1] = 1;
}
?>

以上示例在 PHP 5 中的输出：

int(0)

以上示例在 PHP 7 中的输出：

int(0)
int(1)

非 Traversable 对象的遍历

迭代一个非 Traversable 对象将会与迭代一个引用数组的行为相同。这将导致在对象添加或删除属性时， foreach 通过引用遍历时，有更好的迭代特性也能被应用

int 处理更改

无效的八进制字符（Invalid octal literals）

在之前，一个八进制字符如果含有无效数字，该无效数字将被静默删节（0128 将被解析为 012）。现在这样的八进制字符将产生解析错误。

负位移运算（Negative bitshifts）

以负数形式进行的位移运算将会抛出一个 ArithmeticError：

<?php
var_dump(1 >> -1);
?>

以上示例在 PHP 5 中的输出：

int(0)

以上示例在 PHP 7 中的输出：

Fatal error: Uncaught ArithmeticError: Bit shift by negative number in /tmp/test.php:2
Stack trace:
#0 {main}
  thrown in /tmp/test.php on line 2

超范围后产生位移

超出 int 位宽的位移操作（无论哪个方向）将始终得到 0 作为结果。在从前，这一操作是结构依赖的。

除以零的变化

之前的版本中，当 0 被做为除数时，无论是除数（/）或取模（%）操作，都会抛出一个 E_WARNING 错误并返回 false。现在，除法运算符（/）会返回一个由 IEEE 754 指定的浮点数：+INF, -INF 或 NAN。取模操作符（%）则会抛出 DivisionByZeroError 异常，并且不再产生 E_WARNING 错误。

<?php
var_dump(3/0);
var_dump(0/0);
var_dump(0%0);
?>

以上示例在 PHP 5 中的输出：

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

以上示例在 PHP 7 中的输出：

Warning: Division by zero in %s on line %d
float(INF)

Warning: Division by zero in %s on line %d
float(NAN)

PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in %s line %d

string 处理上的调整

十六进制字符串不再被认为是数字

含十六进制字符串不再被认为是数字。例如：

<?php
var_dump("0x123" == "291");
var_dump(is_numeric("0x123"));
var_dump("0xe" + "0x1");
var_dump(substr("foo", "0x1"));
?>

以上示例在 PHP 5 中的输出：

bool(true)
bool(true)
int(15)
string(2) "oo"

以上示例在 PHP 7 中的输出：

bool(false)
bool(false)
int(0)

Notice: A non well formed numeric value encountered in /tmp/test.php on line 5
string(3) "foo"

filter_var() 函数可以用于检查 string 是否含有十六进制数字,并将其转换为 int：

<?php
$str = "0xffff";
$int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
if (false === $int) {
throw new Exception("Invalid integer!");
}
var_dump($int); // int(65535)
?>

\u{ 可能引起错误

由于新的 Unicode codepoint 转义语法，紧连着无效序列并包含 \u{ 的字串可能引起致命错误。为了避免这一报错，应该避免反斜线开头。

移除的函数

call_user_method() 和 call_user_method_array()

这两个函数从 PHP 4.1.0 开始被废弃，应该使用 call_user_func() 和 call_user_func_array()。也可以考虑使用变量函数或者 ... 操作符。

所有的 ereg* 函数

所有 ereg 系列函数被删掉了。PCRE 作为推荐的替代品。

mcrypt 别名

已废弃的 mcrypt_generic_end() 函数已被移除，请使用 mcrypt_generic_deinit() 代替。

此外，已废弃的 mcrypt_ecb()，mcrypt_cbc()、mcrypt_cfb() 和 mcrypt_ofb() 函数已被移除，请配合恰当的 MCRYPT_MODE_* 常量来使用 mcrypt_decrypt() 进行代替。

所有 ext/mysql 函数

所有 ext/mysql 函数已被删掉了。如何选择不同的 MySQL API，详情请见选择 MySQL API。

所有 ext/mssql 函数

所有 ext/mssql 函数已被移除。

  • PDO_SQLSRV
  • PDO_ODBC
  • SQLSRV
  • Unified ODBC API

intl 别名

已废弃的 datefmt_set_timezone_id() 和
IntlDateFormatter::setTimeZoneID() 函数已被移除，请使用 datefmt_set_timezone() 与
IntlDateFormatter::setTimeZone() 代替。

set_magic_quotes_runtime()

移除了 set_magic_quotes_runtime() 和它的别名 magic_quotes_runtime()。它们在 PHP 5.3.0 中已经被废弃，并由于 PHP 5.4.0 移除魔术引号（Magic Quotes）而没有用处。

set_socket_blocking()

已废弃的 set_socket_blocking() 函数已被移除，请使用 stream_set_blocking() 代替。

PHP-FPM 中的 dl()

dl() 在 PHP-FPM 不再可用，在 CLI 和 embed SAPI 中仍可用。

GD Type1 函数

GD 扩展中移除了对 PostScript Type1 字体的支持，从而移除了以下函数：

  • imagepsbbox()
  • imagepsencodefont()
  • imagepsextendfont()
  • imagepsfreefont()
  • imagepsloadfont()
  • imagepsslantfont()
  • imagepstext()

推荐使用 TrueType 字体和相关的函数作为替代。

移除掉的 INI 配置指令

被移除的功能

以下 INI 配置指令已经被移除，同时移除的还有其对应的功能

  • always_populate_raw_post_data
  • asp_tags

xsl.security_prefs

已移除 xsl.security_prefs 指令。取而代之的是，应该调用 XsltProcessor：：setSecurityPrefs() 方法来控制预处理器的基础安全首选项。

其他向后兼容相关的变更

new 操作符创建的对象不能以引用方式赋值给变量

new 语句创建的对象不能以引用的方式赋值给变量。

<?php
class C {}
$c =& new C;
?>

以上示例在 PHP 5 中的输出：

Deprecated: Assigning the return value of new by reference is deprecated in /tmp/test.php on line 3

以上示例在 PHP 7 中的输出：

Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3

无效的类、接口以及 trait 命名

不能以下列名字来命名类、接口以及 trait：

  • bool
  • int
  • float
  • string
  • null
  • true
  • false

此外，也不要使用下列的名字来命名类、接口以及 trait。虽然在 PHP 7.0 中，这并不会引发错误，但是这些名字是保留给将来使用的。

  • resource
  • object
  • mixed
  • numeric

移除了 ASP 和 script PHP 标签

使用类似 ASP 的标签，以及 script 标签来区分 PHP 代码的方式被移除。 受到影响的标签有：

被移除的 ASP 和 script 标签
开标签 | 闭标签
<% | %>
<%= | %>
<script language="php"> | </script>

从不匹配的上下文发起调用

在不匹配的上下文中以静态方式调用非静态方法，在 PHP 5.6 中已经废弃，但是在 PHP 7.0 中，会导致被调用方法中未定义 $this 变量，以及此行为已经废弃的警告。

<?php
class A {
public function test() { var_dump($this); }
}

// 注意：并没有从类 A 继承
class B {
public function callNonStaticMethodOfA() { A::test(); }
}

(new B)->callNonStaticMethodOfA();
?>

以上示例在 PHP 5.6 中的输出：

Deprecated: Non-static method A::test() should not be called statically, assuming $this from incompatible context in /tmp/test.php on line 8
object(B)#1 (0) {
}

以上示例在 PHP 7 中的输出：

Deprecated: Non-static method A::test() should not be called statically in /tmp/test.php on line 8

Notice: Undefined variable: this in /tmp/test.php on line 3
NULL

yield 变更为右联接运算符

在使用 yield 关键字的时候，不再需要括号，并且它变更为右联接操作符，其运算符优先级介于 print 和 => 之间。这可能导致现有代码的行为发生改变：

<?php
echo yield -1;
// 在之前版本中会被解释为：
echo (yield) - 1;
// 现在，它将被解释为：
echo yield (-1);

yield $foo or die;
// 在之前版本中会被解释为：
yield ($foo or die);
// 现在，它将被解释为：
(yield $foo) or die;
?>

可以通过使用括号来消除歧义。

函数定义不可以包含多个同名参数

在函数定义中，不可以包含两个或多个同名的参数。例如，下面代码中的函数定义会触发 E_COMPILE_ERROR 错误：

<?php
function foo($a, $b, $unused, $unused) {
//
}
?>

Switch 语句不可以包含多个 default 块

在 switch 语句中，两个或者多个 default 块的代码已经不再被支持。例如，下面代码中的 switch 语句会触发 E_COMPILE_ERROR 错误：

<?php
switch (1) {
default:
break;
default:
break;
}
?>

在函数中检视参数值会返回当前的值

当在函数代码中使用 func_get_arg() 或 func_get_args() 函数来检视参数值，或者使用 debug_backtrace() 函数查看回溯跟踪，以及在异常回溯中所报告的参数值是指参数当前的值（有可能是已经被函数内的代码改变过的值），而不再是参数被传入函数时候的原始值了。

<?php
function foo($x) {
$x++;
var_dump(func_get_arg(0));
}
foo(1);?>

以上示例在 PHP 5 中的输出：

1

以上示例在 PHP 7 中的输出：

2

$HTTP_RAW_POST_DATA 被移除

不再提供 $HTTP_RAW_POST_DATA 变量。请使用 php://input 作为替代。

INI 文件中 # 注释格式被移除

在 INI 文件中，不再支持以 # 开始的注释行，请使用 ;（分号）来表示注释。此变更适用于 php.ini 以及用 parse_ini_file() 和 parse_ini_string() 函数来处理的文件。

JSON 扩展已经被 JSOND 取代

JSON 扩展已经被 JSOND 扩展取代。对于数值的处理，有以下两点需要注意的：第一，数值不能以点号（.）结束（例如，数值 34. 必须写作 34.0 或 34）。第二，如果使用科学计数法表示数值，e 前面必须不是点号（.）（例如，3.e3 必须写作 3.0e3 或 3e3）。另外，空字符串不再被视作有效的 JSON 字符串。

在数值溢出的时候，内部函数将会失败

将浮点数转换为整数的时候，如果浮点数值太大，导致无法以整数表达的情况下，在之前的版本中，内部函数会直接将整数截断，并不会引发错误。在 PHP 7.0 中，如果发生这种情况，会引发 E_WARNING 错误，并且返回 null。

自定义会话处理器的返回值修复

在自定义会话处理器中，如果函数的返回值不是 false，也不是 -1，会引发致命错误。现在，如果这些函数的返回值不是布尔值，也不是 -1 或者 0，函数调用结果将被视为失败，并且引发 E_WARNING 错误。

相等的元素在排序时的顺序问题

由于内部排序算法进行了提升，可能会导致对比时被视为相等的多个元素之间的顺序不稳定。

Note:

在对比时被视为相等的多个元素之间的排序顺序是不可信赖的，即使是相等的两个元素，他们的位置也可能被排序算法所改变。

错误的使用 break 和 continue 语句

在循环或者 switch 语句之外使用 break 和 continue 被视为编译型错误（之前视为运行时错误），会引发 E_COMPILE_ERROR 错误。

Mhash 不再是一个单独的扩展了

Mhash 扩展已经被完全整合进 Hash 扩展了。因此，不要再使用 extension_loaded() 函数来检测是否支持 MHash 扩展了，建议使用 function_exists() 函数来进行检测。另外，函数 get_loaded_extensions() 以及相关的特性中，也不再报告和 MHash 扩展相关的信息了。

declare(ticks)

declare(ticks) 指示符不再泄漏到不同的编译单元中。

User Contributed Notes

There are no user contributed notes for this page.


新特性

标量类型声明

标量类型声明有两种模式: 强制（默认）和严格模式。现在可以使用下列类型参数（无论用强制模式还是严格模式） 字符串（string）、整数（int）、浮点数（float）以及布尔值（bool）。它们扩充了 PHP 5 中引入的其他类型：类名、接口、array 和 callable。

<?php
// 强制模式
function sumOfInts(int ...$ints)
{
return array_sum($ints);
}

var_dump(sumOfInts(2, '3', 4.1));

以上示例会输出：

int(9)

要使用严格模式，declare 声明指令必须放在文件的顶部。这意味着严格声明标量是基于文件可配的。这个指令不仅影响参数的类型声明，也影响到函数的返回值声明（参见返回值类型声明，内置的 PHP 函数以及扩展中加载的 PHP 函数）。

完整的标量类型声明文档和示例参见类型声明章节。

返回值类型声明

PHP 7 增加了对返回类型声明的支持。类似于参数类型声明，返回类型声明指明了函数返回值的类型。可用的类型与参数声明中可用的类型相同。

<?php

function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}

print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

以上示例会输出：

Array
(
    [0] => 6
    [1] => 15
    [2] => 24
)

完整的标量类型声明文档和示例可参见返回值类型声明。

null 合并运算符

由于日常使用中存在大量同时使用三元表达式和 isset() 的情况，我们添加了 null 合并运算符（??）这个语法糖。如果变量存在且值不为 null，就会返回自身的值，否则返回第二个操作数。

<?php
// 获取 $_GET['user'] 的值，如果不存在，返回"nobody"
$username = $_GET['user'] ?? 'nobody';
// 等同于
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// 合并可以链式使用：这将会返回 $_GET['user']、$_POST['user'] 和"nobody"的第一个值
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>

太空船操作符（组合比较符）

太空船操作符用于比较两个表达式。当 $a 小于、等于或大于 $b 时它分别返回 -1、0 或 1。比较的原则是沿用 PHP 的常规比较规则进行的。

<?php
// 整数
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// 浮点数
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

通过 define() 定义常量数组

Array 类型的常量现在可以通过 define() 来定义。在 PHP 5.6 中仅能通过 const 定义。

<?php
define('ANIMALS', [
'dog',
'cat',
'bird'
]);

echo ANIMALS[1]; // 输出 "cat"
?>

匿名类

现在支持通过 new class 来实例化匿名类，这可以用来替代一些"用后即焚"的完整类定义。

<?php
interface Logger {
public function log(string $msg);
}

class Application {
private $logger;

public function getLogger(): Logger {
return $this->logger;
}

public function setLogger(Logger $logger) {
$this->logger = $logger;
}
}

$app = new Application;
$app->setLogger(new class implements Logger {
public function log(string $msg) {
echo $msg;
}
});

var_dump($app->getLogger());
?>

以上示例会输出：

object(class@anonymous)#2 (0) {
}

详细文档可以参考匿名类。

Unicode codepoint 转译语法

这接受一个以 16 进制形式的 Unicode codepoint，并打印出一个双引号或 heredoc 包围的 UTF-8 编码格式的字符串。可以接受任何有效的 codepoint，并且开头的 0 是可以省略的。

echo "\u{aa}";
echo "\u{0000aa}";
echo "\u{9999}";

以上示例会输出：

a
a (same as before but with optional leading 0's)
香

Closure::call()

Closure::call() 现在有着更好的性能，简短干练的暂时绑定一个方法到对象上闭包并调用它。

<?php
class A {private $x = 1;}

// PHP 7 之前版本的代码
$getXCB = function() {return $this->x;};
$getX = $getXCB->bindTo(new A, 'A'); // 中间层闭包
echo $getX();

// PHP 7+ 及更高版本的代码
$getX = function() {return $this->x;};
echo $getX->call(new A);

以上示例会输出：

1
1

为 unserialize() 提供过滤

这个特性旨在提供更安全的方式解包不可靠的数据。它通过白名单的方式来防止潜在的代码注入。

<?php

// 将所有的对象都转换为 __PHP_Incomplete_Class 对象
$data = unserialize($foo, ["allowed_classes" => false]);

// 将除 MyClass 和 MyClass2 之外的所有对象都转换为 __PHP_Incomplete_Class 对象
$data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);

// 默认情况下所有的类都是可接受的，等同于省略第二个参数
$data = unserialize($foo, ["allowed_classes" => true]);

IntlChar

新增加的 IntlChar 类旨在暴露出更多的 ICU 功能。这个类自身定义了许多静态方法用于操作多字符集的 unicode 字符。

<?php

printf('%x', IntlChar::CODEPOINT_MAX);
echo IntlChar::charName('@');
var_dump(IntlChar::ispunct('!'));

以上示例会输出：

10ffff
COMMERCIAL AT
bool(true)

若要使用此类，请先安装 Intl 扩展。

预期

预期是向后兼用并增强之前的 assert() 的方法。它使得在生产环境中启用断言为零成本，并且提供当断言失败时抛出特定异常的能力。

老版本的 API 出于兼容目的将继续被维护，assert() 现在是语言结构，它允许第一个参数是表达式，而不仅仅是待计算的 string 或待测试的 boolean。

<?php
ini_set('assert.exception', 1);

class CustomError extends AssertionError {}

assert(false, new CustomError('Some error message'));
?>

以上示例会输出：

Fatal error: Uncaught CustomError: Some error message

关于这个特性的完整说明，包括如何在开发和生产环境中配置它，可以在手册上找到 assert() 语言结构。

use 组声明

从同一 namespace 导入的类、函数和常量现在可以通过单个 use 语句一次性导入了。

<?php

// PHP 7 之前的代码
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

// PHP 7+ 及更高版本的代码
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};
?>

生成器可以返回表达式

此特性基于 PHP 5.5 版本中引入的生成器特性构建的。它允许在生成器函数中通过使用 return 语法来返回一个表达式（但是不允许返回引用值），可以通过调用 Generator::getReturn() 方法来获取生成器的返回值，但是这个方法只能在生成器完成产生工作以后调用一次。

<?php

$gen = (function() {
yield 1;
yield 2;

return 3;
})();

foreach ($gen as $val) {
echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

以上示例会输出：

1
2
3

在生成器中能够返回最终的值是一个非常便利的特性，因为它使得调用生成器的客户端代码可以直接得到生成器（或者其他协同计算）的返回值，相对于之前版本中客户端代码必须先检查生成器是否产生了最终的值然后再进行响应处理来得方便多了。

生成器委托

现在，只需在最外层生成其中使用 yield from，就可以把一个生成器自动委派给其他的生成器，Traversable 对象或者 array。

<?php

function gen()
{
yield 1;
yield 2;

yield from gen2();
}

function gen2()
{
yield 3;
yield 4;
}

foreach (gen() as $val)
{
echo $val, PHP_EOL;
}

?>

以上示例会输出：

1
2
3
4

整数除法函数 intdiv()

新加的函数 intdiv() 用来进行整数的除法运算。

<?php

var_dump(intdiv(10, 3));
?>

以上示例会输出：

int(3)

会话选项

session_start() 可以接受 array 作为参数，用来覆盖 php.ini 文件中设置的会话配置选项。

在调用 session_start() 的时候，传入的选项参数中也支持 session.lazy_write 行为，默认情况下这个配置项是打开的。它的作用是控制 PHP 只有在会话中的数据发生变化的时候才写入会话存储文件，如果会话中的数据没有发生改变，那么 PHP 会在读取完会话数据之后，立即关闭会话存储文件，不做任何修改，可以通过设置 read_and_close 来实现。

例如，下列代码设置 session.cache_limiter 为 private，并且在读取完毕会话数据之后马上关闭会话存储文件。

<?php
session_start([
'cache_limiter' => 'private',
'read_and_close' => true,
]);
?>

preg_replace_callback_array()

在 PHP 7 之前，当使用 preg_replace_callback() 函数的时候，由于针对每个正则表达式都要执行回调函数，可能导致过多的分支代码。而使用新加的 preg_replace_callback_array() 函数，可以使得代码更加简洁。

现在，可以使用一个关联数组来对每个正则表达式注册回调函数，正则表达式本身作为关联数组的键，而对应的回调函数就是关联数组的值。

CSPRNG 函数

新加入两个跨平台的函数：random_bytes() 和 random_int() 用来产生高安全级别的随机字符串和随机整数。

可以使用 list() 函数来展开实现了 ArrayAccess 接口的对象

在之前版本中，list() 函数不能保证正确的展开实现了 ArrayAccess 接口的对象，现在这个问题已经被修复。

其他特性

  • 允许在克隆表达式上访问对象成员，例如：(clone $foo)->bar()。

User Contributed Notes

Julian Sawicki 12-Sep-2020 01:52
In php 7.0 it's possible to curry functions in a way that's similar to JavaScript.

<?php

// A curried function
function add($a) {
  return function($b) use ($a) {
    return $a + $b;
  };
}

// Invoking curried function in PHP 7
$result = add(10)(15);

var_dump($result); // int 25

?>

Currying in this way is not possible in php 5.6.
Adrian Wiik 16-Jan-2020 01:52
A good rule of thumb for remembering what the spaceship operator expression returns is to replace the spaceship operator with a minus sign (-). If the result is negative, 0 or positive, the expression will return -1, 0 or 1 respectively.

Example:
<?php
echo 5 <=> 8; // 5 - 8 = -3, prints -1
echo 2 <=> 2; // 2 - 2 = 0, prints 0
echo 4 <=> 2; // 4 - 2 = 2, prints 1


PHP 7.0.x 弃用的功能

PHP 4 风格的构造函数

PHP 4 风格的构造函数（方法名和类名一样）将会弃用，并在将来移除。如果在类中仅使用了 PHP 4 风格的构造函数，PHP 7 会产生 E_DEPRECATED 警告。如果还定义了 __construct() 方法则不受影响。

<?php
class foo {
function foo() {
echo 'I am the constructor';
}
}
?>

以上示例会输出：

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3

静态调用非静态的方法

废弃了静态（Static）调用未声明 static 的方法，未来可能会彻底移除该功能。

<?php
class foo {
function bar() {
echo 'I am not static!';
}
}

foo::bar();
?>

以上示例会输出：

Deprecated: Non-static method foo::bar() should not be called statically in - on line 8
I am not static!

password_hash() 盐值选项

废弃了 password_hash() 函数中的盐值选项，阻止开发者生成自己的盐值（通常更不安全）。开发者不传该值时，该函数自己会生成密码学安全的盐值。因此再无必要传入自己自定义的盐值。

capture_session_meta SSL 上下文选项

废弃了 capture_session_meta 内的 SSL 上下文选项。现在可以通过 stream_get_meta_data() 获取 SSL 元数据（metadata）。

LDAP 中的废弃

以下函数已被废弃：

  • ldap_sort()

User Contributed Notes

There are no user contributed notes for this page.


变更的函数

PHP 核心

  • debug_zval_dump() 现在打印"int"替代"long"，打印"float"替代"double"
  • dirname() 增加了可选的第二个参数，depth，获取当前目录向上 depth 级父目录的名称。
  • getrusage() 现在支持 Windows。
  • mktime() 和 gmmktime() 函数不再接受 is_dst 参数。
  • preg_replace() 函数不再支持"\e"（PREG_REPLACE_EVAL）。应当使用 preg_replace_callback() 替代。
  • setlocale() 函数不再接受 category 传入字符串。应当使用 LC_* 常量。
  • exec()、system() 和 passthru() 函数对 NULL 增加了保护。
  • shmop_open() 现在返回 resource 而非 int，返回的 resource 可以传给 shmop_size()、shmop_write()、shmop_read()、shmop_close() 和 shmop_delete()。
  • substr() 现在当 start 的值与 string 的长度相同时将返回空字符串。
  • xml_parser_free() 不再足以释放解析器资源，如果它引用了对象，而这个对象又引用了那个解析器资源。在这种情况下，需要额外地取消设置 $parser。

User Contributed Notes

There are no user contributed notes for this page.


新函数

Closure

  • Closure::call()

CSPRNG

  • random_bytes()
  • random_int()

错误处理和日志

  • error_clear_last()

Generator

  • Generator::getReturn()

GNU 多重精度

  • gmp_random_seed()

Math

  • intdiv()

PCRE

  • preg_replace_callback_array()

PHP 选项和信息

  • gc_mem_caches()
  • get_resources()

POSIX

  • posix_setrlimit()

Reflection

  • ReflectionParameter::getType()
  • ReflectionParameter::hasType()
  • ReflectionFunctionAbstract::getReturnType()
  • ReflectionFunctionAbstract::hasReturnType()

Zip

  • ZipArchive::setCompressionIndex()
  • ZipArchive::setCompressionName()

Zlib 压缩

  • inflate_add()
  • deflate_add()
  • inflate_init()
  • deflate_init()

User Contributed Notes

There are no user contributed notes for this page.


新的类和接口

Intl

  • IntlChar

Reflection

  • ReflectionGenerator
  • ReflectionType

会话（Session）管理器

  • SessionUpdateTimestampHandlerInterface

Exception 等级

  • Throwable
  • Error
  • TypeError
  • ParseError
  • AssertionError
  • ArithmeticError
  • DivisionByZeroError

User Contributed Notes

There are no user contributed notes for this page.


新的全局常量

内核预定义常量

  • PHP_INT_MIN

GD

  • IMG_WEBP（自 PHP 7.0.10 起）

JSON

  • JSON_ERROR_INVALID_PROPERTY_NAME
  • JSON_ERROR_UTF16

LibXML

  • LIBXML_BIGLINES

PCRE

  • PREG_JIT_STACKLIMIT_ERROR

POSIX

  • POSIX_RLIMIT_AS
  • POSIX_RLIMIT_CORE
  • POSIX_RLIMIT_CPU
  • POSIX_RLIMIT_DATA
  • POSIX_RLIMIT_FSIZE
  • POSIX_RLIMIT_LOCKS
  • POSIX_RLIMIT_MEMLOCK
  • POSIX_RLIMIT_MSGQUEUE
  • POSIX_RLIMIT_NICE
  • POSIX_RLIMIT_NOFILE
  • POSIX_RLIMIT_NPROC
  • POSIX_RLIMIT_RSS
  • POSIX_RLIMIT_RTPRIO
  • POSIX_RLIMIT_RTTIME
  • POSIX_RLIMIT_SIGPENDING
  • POSIX_RLIMIT_STACK
  • POSIX_RLIMIT_INFINITY

Zlib

  • ZLIB_ENCODING_RAW
  • ZLIB_ENCODING_DEFLATE
  • ZLIB_ENCODING_GZIP
  • ZLIB_FILTERED
  • ZLIB_HUFFMAN_ONLY
  • ZLIB_FIXED
  • ZLIB_RLE
  • ZLIB_DEFAULT_STRATEGY
  • ZLIB_BLOCK
  • ZLIB_FINISH
  • ZLIB_FULL_FLUSH
  • ZLIB_NO_FLUSH
  • ZLIB_PARTIAL_FLUSH
  • ZLIB_SYNC_FLUSH

User Contributed Notes

There are no user contributed notes for this page.


SAPI 模块的变化

FPM

listen 端口现在同时监听 IPv4 和 IPv6 地址。

在 PHP 5 中，listen 指令如果仅带一个端口数字，则会监听所有网络接口，但只是 IPv4。现在 PHP 7 会同时接受来自 IPv4 和 IPv6 上的请求。

指定了 ip 地址后不受此影响；它们会继续仅仅监听在指定的地址和协议上。

User Contributed Notes

There are no user contributed notes for this page.


移除的扩展和 SAPI

移除的扩展

  • ereg
  • mssql
  • mysql
  • sybase_ct

移除的 SAPI

  • aolserver
  • apache
  • apache_hooks
  • apache2filter
  • caudium
  • continuity
  • isapi
  • milter
  • nsapi
  • phttpd
  • pi3web
  • roxen
  • thttpd
  • tux
  • webjames

User Contributed Notes

There are no user contributed notes for this page.


其它变更

放宽了保留词限制

现在允许全局保留词用于 class、interface、Trait 中的属性、常量和方法名。在引入新关键词时，此变更减少了对向后兼容的破坏，避免了 API 命名的限制。

使用流畅的接口实现内部 DSL 时，这非常有用：

<?php
// 以前不能用 'new'、'private' 和 'for'
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>

唯一的限制是 class 关键词不能用于常量名，否则会和类名解析语法冲突（ClassName::class）。

移除 date.timezone 警告

调用任意 date- 开头或者其他基于时间的函数时，未设置 date.timezone INI 设置的情况下，之前会产生警告。现在移除了警告（date.timezone 默认仍然是 UTC）。

User Contributed Notes

There are no user contributed notes for this page.


从 PHP 5.5.x 移植到 PHP 5.6.x

Table of Contents

  • 向后不兼容
  • 新特性
  • PHP 5.6.x 中已废止的特性
  • 函数的变化
  • 新加函数
  • OpenSSL changes in PHP 5.6.x
  • 扩展中的变动
  • 新加的全局常量

PHP 5.6 中大多数的改善对旧项目没有影响。有一些不兼容处和新功能需要注意下，并且在正式布署升级后的项目前应该测试代码。

User Contributed Notes

There are no user contributed notes for this page.


向后不兼容

虽然大部分 PHP 5 的代码无需修改即可正常运行，但是有部分代码是无法向后兼容的：

使用数组标识符为类定义数组类型的属性时，数组的键不会被覆盖

在 PHP 5.6 之前的版本中，为类定义数组类型的属性时，如果数组中同时使用了显式数组键和隐式数组键，并且显式的键和隐式的序列键相同，那么数组的键将被覆盖。例如：

<?php
class C {
const ONE = 1;
public $array = [
self::ONE => 'foo',
'bar',
'quux',
];
}

var_dump((new C)->array);
?>

以上示例在 PHP 5.5 中的输出：

array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}

以上示例在 PHP 5.6 中的输出：

array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}

严格的 json_decode()

对于 JSON 字面量 true，false 和 null，如果不采用小写格式，将会被 json_decode() 函数拒绝，同时相应的设置 json_last_error()。在之前的版本中，json_decode() 函数可以接受这些字面量的全部大写或者大小写混写的格式。

此变更仅会影响传入到 json_decode() 中的 JSON 格式无效的情况，有效的 JSON 输入不会受到影响并且能够正确解析。

当使用 SSL/TLS 的时候，流封装器默认验证端点证书和主机名

All encrypted client streams now enable peer verification by default. By default, this will use OpenSSL's default CA bundle to verify the peer certificate. In most cases, no changes will need to be made to communicate with servers with valid SSL certificates, as distributors generally configure OpenSSL to use known good CA bundles.

The default CA bundle may be overridden on a global basis by setting either the openssl.cafile or openssl.capath configuration setting, or on a per request basis by using the cafile or capath context options.

While not recommended in general, it is possible to disable peer certificate verification for a request by setting the verify_peer context option to false, and to disable peer name validation by setting the verify_peer_name context option to false.

GMP 资源现为对象

GMP 资源现为对象。GMP 扩展中的基于函数的 API 实现不受影响，只有在代码中使用 is_resource() 或类似函数来显示检测是否资源类型的代码才会受到影响。

Mcrypt 函数需要有效长度的密钥和初始向量

mcrypt_encrypt()、mcrypt_decrypt()、mcrypt_cbc()、mcrypt_cfb()、mcrypt_ecb()、mcrypt_generic() 以及 mcrypt_ofb() 函数不再接受无效长度的密钥和初始向量，对于需要初始向量的分组加密模式，如果不提供初始向量，函数调用将会失败。

cURL 文件上传

必须先设置 CURLOPT_SAFE_UPLOAD 为 false 才能够使用 @file 语法来上传文件。建议使用 CURLFile 类来上传文件。

User Contributed Notes

There are no user contributed notes for this page.


新特性

使用表达式定义常量

在之前的 PHP 版本中， 必须使用静态值来定义常量，声明属性以及指定函数参数默认值。 现在你可以使用包括数值、字符串字面量以及其他常量在内的数值表达式来 定义常量、声明属性以及设置函数参数默认值。

<?php
const ONE = 1;
const TWO = ONE * 2;

class C {
const THREE = TWO + 1;
const ONE_THIRD = ONE / self::THREE;
const SENTENCE = 'The value of THREE is '.self::THREE;

public function f($a = ONE + self::THREE) {
return $a;
}
}

echo (new C)->f()."\n";
echo C::SENTENCE;
?>

以上示例会输出：

4
The value of THREE is 3

现在可以通过 const 关键字来定义类型为 array 的常量。

<?php
const ARR = ['a', 'b'];

echo ARR[0];
?>

以上示例会输出：

a

使用 ... 运算符定义变长参数函数

现在可以不依赖 func_get_args()， 使用 ... 运算符 来实现 变长参数函数。

<?php
function f($req, $opt = null, ...$params) {
// $params 是一个包含了剩余参数的数组
printf('$req: %d; $opt: %d; number of params: %d'."\n",
$req, $opt, count($params));
}

f(1);
f(1, 2);
f(1, 2, 3);
f(1, 2, 3, 4);
f(1, 2, 3, 4, 5);
?>

以上示例会输出：

$req: 1; $opt: 0; number of params: 0
$req: 1; $opt: 2; number of params: 0
$req: 1; $opt: 2; number of params: 1
$req: 1; $opt: 2; number of params: 2
$req: 1; $opt: 2; number of params: 3

使用 ... 运算符进行参数展开

在调用函数的时候，使用 ... 运算符， 将 数组 和 可遍历 对象展开为函数参数。 在其他编程语言，比如 Ruby中，这被称为连接运算符，。

<?php
function add($a, $b, $c) {
return $a + $b + $c;
}

$operators = [2, 3];
echo add(1, ...$operators);
?>

以上示例会输出：

6

使用 ** 进行幂运算

加入右连接运算符 ** 来进行幂运算。 同时还支持简写的 **= 运算符，表示进行幂运算并赋值。

<?php
printf("2 ** 3 == %d\n", 2 ** 3);
printf("2 ** 3 ** 2 == %d\n", 2 ** 3 ** 2);

$a = 2;
$a **= 3;
printf("a == %d\n", $a);
?>

以上示例会输出：

2 ** 3 ==      8
2 ** 3 ** 2 == 512
a ==           8

use function 以及 use const

use 运算符 被进行了扩展以支持在类中导入外部的函数和常量。 对应的结构为 use function 和 use const。

<?php
namespace Name\Space {
const FOO = 42;
function f() { echo __FUNCTION__."\n"; }
}

namespace {
use const Name\Space\FOO;
use function Name\Space\f;

echo FOO."\n";
f();
}
?>

以上示例会输出：

42
Name\Space\f

phpdbg

PHP 的 SAPI 模块中实现了一个 交互式调试器，叫做 phpdbg。更多信息，请访问 phpdbg documentation。

默认字符编码

对于一些字符编码相关的函数，例如 htmlentities()， html_entity_decode() 以及 htmlspecialchars() 使用 default_charset 作为默认字符集。请注意，对于 iconv（现已废弃） 和 mbstring 相关的函数， 如果分别设置了他们的编码， 那么这些对应设置的优先级高于 default_charset。

default_charset 的默认值是 UTF-8。

php://input 是可重用的了

只要你需要，你可以多次打开并读取 php://input。 同时，这个特性使得在处理 POST 的数据的时候， 可以明显降低对于内存的需求量。

大文件上传

现在可以支持大于 2GB 的文件上传。

GMP 支持运算符重载

GMP 支持运算符重载， 并且造型成数值类型。 这使得使用 GMP 的代码更加直观。

<?php
$a = gmp_init(42);
$b = gmp_init(17);

if (version_compare(PHP_VERSION, '5.6', '<')) {
echo gmp_intval(gmp_add($a, $b)), PHP_EOL;
echo gmp_intval(gmp_add($a, 17)), PHP_EOL;
echo gmp_intval(gmp_add(42, $b)), PHP_EOL;
} else {
echo $a + $b, PHP_EOL;
echo $a + 17, PHP_EOL;
echo 42 + $b, PHP_EOL;
}
?>

以上示例会输出：

59
59
59

使用 hash_equals() 比较字符串避免时序攻击

加入 hash_equals() 函数， 以恒定的时间消耗来进行字符串比较， 以避免时序攻击。 比如当比较 crypt() 密码散列值的时候，就可以使用此函数。 （假定你不能使用 password_hash() 和 password_verify()， 这两个函数也可以抵抗时序攻击）

<?php
$expected = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('1234', '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>

以上示例会输出：

bool(true)
bool(false)

__debugInfo()

加入 __debugInfo()， 当使用 var_dump() 输出对象的时候， 可以用来控制要输出的属性和值。

<?php
class C {
private $prop;

public function __construct($val) {
$this->prop = $val;
}

public function __debugInfo() {
return [
'propSquared' => $this->prop ** 2,
];
}
}

var_dump(new C(42));
?>

以上示例会输出：

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}

gost-crypto 散列算法

加入 gost-crypto 散列算法。 它使用 » RFC 4357, 11.2 小节 定义的 CryptoPro S-box 表实现了 GOST 散列函数。

SSL/TLS 提升

在 PHP 5.6 中对 SSL/TLS 的支持进行了大幅度的提升。 这其中包括 默认启用端点验证 选项来支持证书指纹比对， 以避免 TLS 重新协商攻击。 还增加了很多 SSL 上下文选项， 以便在使用加密流的时候， 能够更好的控制协议和验证的相关设置。

这些变动在 PHP 5.6.x 中的 OpenSSL 变更 中有详细描述。

pgsql 异步支持

pgsql 扩展现在支持 异步方式连接数据库及执行查询， 也即可以使用非阻塞的方式和 PostgreSQL 数据库进行交互。 使用 PGSQL_CONNECT_ASYNC 常量可以 建立异步连接，pg_connect_poll()， pg_socket()， pg_consume_input() 和 pg_flush() 函数 可以用来处理异步连接和查询。

User Contributed Notes

There are no user contributed notes for this page.


PHP 5.6.x 中已废止的特性

从不兼容的上下文调用方法

现在已废止从不兼容的上下文调用方法， 并且产生 E_DEPRECATED 错误 （以前是 E_STRICT）。 在 PHP 的后续版本中可能彻底移除对此特性的支持。

以下是不兼容上下文调用方法的示例：

<?php
class A {
function f() { echo get_class($this); }
}

class B {
function f() { A::f(); }
}

(new B)->f();
?>

以上示例会输出：

Deprecated: Non-static method A::f() should not be called statically, assuming $this from incompatible context in - on line 7
B

$HTTP_RAW_POST_DATA 和 always_populate_raw_post_data

使用 always_populate_raw_post_data 会导致在填充 $HTTP_RAW_POST_DATA 时产生 E_DEPRECATED 错误。 请使用 php://input 替代 $HTTP_RAW_POST_DATA， 因为它可能在后续的 PHP 版本中被移除。 设置 always_populate_raw_post_data 为 -1 （这样会强制 $HTTP_RAW_POST_DATA 未定义，所以也不回导致 E_DEPRECATED 的错误） 来体验新的行为。

iconv 和 mbstring 编码设置

iconv 和 mbstring 配置选项中 和编码相关的选项都已废弃， 请使用 default_charset。 废弃的选项有：

  • iconv.input_encoding
  • iconv.output_encoding
  • iconv.internal_encoding
  • mbstring.http_input
  • mbstring.http_output
  • mbstring.internal_encoding

User Contributed Notes

There are no user contributed notes for this page.


函数的变化

PHP 内核

  • 如果省略 salt 参数，crypt() 会产生 E_NOTICE错误。
  • substr_compare() 的 length 参数现在接受 0 的值。
  • unserialize() will now fail if passed serialised data that has been manipulated to attempt to instantiate an object without calling its constructor.

cURL

  • 只有设置 CURLOPT_SAFE_UPLOAD 为 false 的情况下， 才接受 @file 语法上传文件。 最好使用 CURLFile 代替。

Mcrypt

  • mcrypt_create_iv() 的 source 现在默认值是 MCRYPT_DEV_URANDOM，而非 MCRYPT_DEV_RANDOM。

OpenSSL

  • 如果 SSL 上下文选项已经提供 crypto_type 选项， stream_socket_enable_crypto() 可以忽略 crypto_type 参数。

PostgreSQL

  • pg_insert()、pg_select()、 pg_update()、pg_delete() 不再是实验性质的。
  • 如果数据库连接 socket 流设置为非阻塞（non-blocking）模式，
pg_send_execute()、
pg_send_prepare()、pg_send_query()
、pg_send_query_params() 不再会阻塞查询直到写入完成。

Reflection

  • ReflectionClass::newInstanceWithoutConstructor() 现在允许非 Final 的内部类实例化。

XMLReader

  • 和 XMLReader::getAttribute() 一样，未找到属性的情况下，
XMLReader::getAttributeNs() 和
XMLReader::getAttributeNo() 会返回 null 。

User Contributed Notes

There are no user contributed notes for this page.


新加函数

日期和时间

  • DateTimeImmutable::createFromMutable()

GMP

  • gmp_root()
  • gmp_rootrem()

Hash

  • hash_equals()

LDAP

  • ldap_escape()
  • ldap_modify_batch()

MySQLi

  • mysqli_get_links_stats()

OCI8

  • oci_get_implicit_resultset()

OpenSSL

  • openssl_get_cert_locations()
  • openssl_x509_fingerprint()
  • openssl_spki_new()
  • openssl_spki_verify()
  • openssl_spki_export_challenge()
  • openssl_spki_export()

PostgreSQL

  • pg_connect_poll()
  • pg_consume_input()
  • pg_flush()
  • pg_socket()

PDO_PGSQL

  • PDO::pgsqlGetNotify()
  • PDO::pgsqlGetPid()

Session

  • session_abort()
  • session_reset()

Zip

  • ZipArchive::setPassword()

User Contributed Notes

There are no user contributed notes for this page.


OpenSSL changes in PHP 5.6.x

Stream wrappers now verify peer certificates and host names by default when using SSL/TLS

All encrypted client streams now enable peer verification by default. By default, this will use OpenSSL's default CA bundle to verify the peer certificate. In most cases, no changes will need to be made to communicate with servers with valid SSL certificates, as distributors generally configure OpenSSL to use known good CA bundles.

The default CA bundle may be overridden on a global basis by setting either the openssl.cafile or openssl.capath configuration setting, or on a per request basis by using the cafile or capath context options.

While not recommended in general, it is possible to disable peer certificate verification for a request by setting the verify_peer context option to false, and to disable peer name validation by setting the verify_peer_name context option to false.

Certificate fingerprints

Support has been added for extracting and verifying certificate fingerprints. openssl_x509_fingerprint() has been added to extract a fingerprint from an X.509 certificate, and two SSL stream context options have been added: capture_peer_cert to capture the peer's X.509 certificate, and peer_fingerprint to assert that the peer's certificate should match the given fingerprint.

Default ciphers updated

The default ciphers used by PHP have been updated to a more secure list based on the » Mozilla cipher recommendations, with two additional exclusions: anonymous Diffie-Hellman ciphers, and RC4.

This list can be accessed via the new OPENSSL_DEFAULT_STREAM_CIPHERS constant, and can be overridden (as in previous PHP versions) by setting the ciphers context option.

Compression disabled by default

SSL/TLS compression has been disabled by default to mitigate the CRIME attack. PHP 5.4.13 added a disable_compression context option to allow compression to be disabled: this is now set to true (that is, compression is disabled) by default.

Allow servers to prefer their cipher order

The honor_cipher_order SSL context option has been added to allow encrypted stream servers to mitigate BEAST vulnerabilities by preferring the server's ciphers to the client's.

Access the negotiated protocol and cipher

The protocol and cipher that were negotiated for an encrypted stream can now be accessed via stream_get_meta_data() or stream_context_get_options() when the capture_session_meta SSL context option is set to true.

<?php
$ctx = stream_context_create(['ssl' => [
'capture_session_meta' => TRUE
]]);

$html = file_get_contents('https://google.com/', FALSE, $ctx);
$meta = stream_context_get_options($ctx)['ssl']['session_meta'];
var_dump($meta);
?>

以上示例会输出：

array(4) {
  ["protocol"]=>
  string(5) "TLSv1"
  ["cipher_name"]=>
  string(20) "ECDHE-RSA-AES128-SHA"
  ["cipher_bits"]=>
  int(128)
  ["cipher_version"]=>
  string(11) "TLSv1/SSLv3"
}

New options for perfect forward secrecy in encrypted stream servers

Encrypted client streams already support perfect forward secrecy, as it is generally controlled by the server. PHP encrypted server streams using certificates capable of perfect forward secrecy do not need to take any additional action to enable PFS; however a number of new SSL context options have been added to allow more control over PFS and deal with any compatibility issues that may arise.

ecdh_curve

This option allows the selection of a specific curve for use with ECDH ciphers. If not specified, prime256v1 will be used.

dh_param

A path to a file containing parametrs for Diffie-Hellman key exchange, such as that created by the following command:

openssl dhparam -out /path/to/my/certs/dh-2048.pem 2048
single_dh_use

If set to true, a new key pair will be created when using Diffie-Hellman parameters, thereby improving forward secrecy.

single_ecdh_use

If set to true, a new key pair will always be generated when ECDH cipher suites are negotiated. This improves forward secrecy.

SSL/TLS version selection

It is now possible to select specific versions of SSL and TLS via the crypto_method SSL context option or by specifying a specific transport when creating a stream wrapper (for example, by calling stream_socket_client() or stream_socket_server()).

The crypto_method SSL context option accepts a bitmask enumerating the protocols that are permitted, as does the crypto_type of stream_socket_enable_crypto().

Selected protocol versions and corresponding options
Protocol(s) | Client flag | Server flag | Transport
Any TLS or SSL version | STREAM_CRYPTO_METHOD_ANY_CLIENT | STREAM_CRYPTO_METHOD_ANY_SERVER | ssl://
Any TLS version | STREAM_CRYPTO_METHOD_TLS_CLIENT | STREAM_CRYPTO_METHOD_TLS_SERVER | tls://
TLS 1.0 | STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_0_SERVER | tlsv1.0://
TLS 1.1 | STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_1_SERVER | tlsv1.1://
TLS 1.2 | STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_2_SERVER | tlsv1.2://
SSL 3 | STREAM_CRYPTO_METHOD_SSLv3_CLIENT | STREAM_CRYPTO_METHOD_SSLv3_SERVER | sslv3://
<?php

// Requiring TLS 1.0 or better when using file_get_contents():
$ctx = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Requiring TLS 1.1 or 1.2:
$ctx = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT |
STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Connecting using the tlsv1.2:// stream socket transport.
$sock = stream_socket_client('tlsv1.2://google.com:443/');

?>

openssl_get_cert_locations() added

The openssl_get_cert_locations() function has been added: it returns the default locations PHP will search when looking for CA bundles.

<?php
var_dump(openssl_get_cert_locations());
?>

以上示例会输出：

array(8) {
  ["default_cert_file"]=>
  string(21) "/etc/pki/tls/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/etc/pki/tls/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/etc/pki/tls/private"
  ["default_default_cert_area"]=>
  string(12) "/etc/pki/tls"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""
}

SPKI support

Support has been added for generating, extracting and verifying signed public key and challenges (SPKAC). openssl_spki_new(), openssl_spki_verify(), openssl_spki_export_challenge(), and openssl_spki_export() have been added to create, verify export PEM public key and associated challenge from SPKAC's generated from a KeyGen HTML5 element.

openssl_spki_new

Generates a new SPKAC using private key, challenge string and hashing algorithm.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
?>

以上示例会输出：

SPKAC=MIIBXjCByDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3L0IfUijj7+A8CPC8EmhcdNoe5fUAog7OrBdhn7EkxFButUp40P7+LiYiygYG1TmoI/a5EgsLU3s9twEz3hmgY9mYIqb/rb+SF8qlD/K6KVyUORC7Wlz1Df4L8O3DuRGzx6/+3jIW6cPBpfgH1sVuYS1vDBsP/gMMIxwTsKJ4P0CAwEAARYkYjViMzYxMTktNjY5YS00ZDljLWEyYzctMGZjNGFhMjVlMmE2MA0GCSqGSIb3DQEBAwUAA4GBAF7hu0ifzmjonhAak2FhhBRsKFDzXdKIkrWxVNe8e0bZzMrWOxFM/rqBgeH3/gtOUDRS5Fnzyq425UsTYbjfiKzxGeCYCQJb1KJ2V5Ij/mIJHZr53WYEXHQTNMGR8RPm7IxwVXVSHIgAfXsXZ9IXNbFbcaLRiSTr9/N4U+MXUWL7
openssl_spki_verify

Verifies provided SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
var_dump(openssl_spki_verify($spkac));
?>
openssl_spki_export_challenge

Exports associated challenge from provided SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
$challenge = openssl_spki_export_challenge($spkac);
echo $challenge;
?>

以上示例会输出：

challenge string
openssl_spki_export

Exports the PEM formatted RSA public key from SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
echo openssl_spki_export($spkac);
?>

以上示例会输出：

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcvQh9SKOPv4DwI8LwSaFx02h7
l9QCiDs6sF2GfsSTEUG61SnjQ/v4uJiLKBgbVOagj9rkSCwtTez23ATPeGaBj2Zg
ipv+tv5IXyqUP8ropXJQ5ELtbXPUN/gvw7cO5EbPHr/7eMhbpw8Gl+AfWxW5hLW8
MGw/+AwwjHBOwong/QIDAQAB
-----END PUBLIC KEY-----

User Contributed Notes

There are no user contributed notes for this page.


扩展中的变动

cURL

在 cURL 库中的一些被标记为废弃的常量， 现在已经被移除：

  • CURLOPT_CLOSEPOLICY
  • CURLCLOSEPOLICY_CALLBACK
  • CURLCLOSEPOLICY_LEAST_RECENTLY_USED
  • CURLCLOSEPOLICY_LEAST_TRAFFIC
  • CURLCLOSEPOLICY_OLDEST
  • CURLCLOSEPOLICY_SLOWEST

OCI8

  • 加入 oci_get_implicit_resultset() 函数 来支持 Oracle Database 12c 的隐式结果集。
  • 如果使用 oci_execute($s, OCI_NO_AUTO_COMMIT) 执行 SELECT 语句， 在连接关闭时发起内部的事物回滚不再是冗余的。
  • 通过 --enable-dtrace 配置选项 控制 DTrace 探针。
  • oci_internal_debug() 现在是无操作函数。
  • 在 phpinfo() 输出中 OCI8 的格式发生变动。

Zip

加入 --with-libzip 配置选项， 使得你可以使用系统安装的 libzip。 最低支持 libzip 0.11 版本，建议使用 0.11.2 或更高的版本。

MySQLi

新加 mysqli.rollback_on_cached_plink 选项，对于事务回滚的连接，将其返回到持久连接池中。

User Contributed Notes

There are no user contributed notes for this page.


新加的全局常量

GD

  • IMG_WEBP （自 PHP 5.6.25 起）

LDAP

  • LDAP_ESCAPE_DN
  • LDAP_ESCAPE_FILTER

OpenSSL

  • OPENSSL_DEFAULT_STREAM_CIPHERS
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

PostgreSQL

  • PGSQL_CONNECT_ASYNC
  • PGSQL_CONNECTION_AUTH_OK
  • PGSQL_CONNECTION_AWAITING_RESPONSE
  • PGSQL_CONNECTION_MADE
  • PGSQL_CONNECTION_SETENV
  • PGSQL_CONNECTION_SSL_STARTUP
  • PGSQL_CONNECTION_STARTED
  • PGSQL_DML_ESCAPE
  • PGSQL_POLLING_ACTIVE
  • PGSQL_POLLING_FAILED
  • PGSQL_POLLING_OK
  • PGSQL_POLLING_READING
  • PGSQL_POLLING_WRITING

User Contributed Notes

There are no user contributed notes for this page.


PHP 的调试

Table of Contents

  • 关于 PHP 调试器

User Contributed Notes

Fonstw 26-Feb-2020 08:54
For me, just outputting variables only works when I know a method should be broken.

I use Xdebug in PHP Storm (available on other IDE's and editors as well)
It allows me to use line breaks and fully inspect anything that's set and how their values are changed and allows me to call single method even at (paused) runtime to see what behaviour the method really gives at any given point, which gives me a much better insight on how my code works and how to get it to work like it should.

I wholeheartedly recomend anyone to try a fuller-fledged debugger like that!


关于 PHP 调试器

PHP 附带了基础的命令行交互调试器 phpdbg。

大多数 IDE 都支持 » Xdebug，一个免费的调试工具，允许对 PHP 应用程序进行单步调试。

User Contributed Notes

There are no user contributed notes for this page.


配置选项

Table of Contents

  • 核心配置选项列表

User Contributed Notes

There are no user contributed notes for this page.


核心配置选项列表

下面是 PHP 的 configure 脚本使用的部分选项的列表，用于类 Unix 环境的编译。大部分配置选项在扩展模块参考页面适当的位置列出，而不是在这里。要查看所有可用配置选项的列表，在运行 autoconf 命令后在 PHP 的源代码目录运行 ./configure --help（参见安装与配置一章）。也可以阅读 » GNU configure 文档以获得有关 configure 命令的更详细信息，例如 --prefix=PREFIX。

Note:

这些选项只用在编译的时候。如果想要修改 PHP 的运行时配置，请阅读运行时配置。

  • 杂项
  • PHP 行为
  • 服务器

PHP 配置选项

杂项选项

--enable-debug

编译时加入调试符号。

--with-layout=TYPE

设置已安装文件的布局方式。TYPE 是 PHP（默认）或 GNU。请注意，如果在 PREFIX（默认）下安装 manpages，请选择 GNU 样式，以便在 manpath 实用程序的搜索路径中能够找到它们。

--with-pear=DIR

在 DIR（默认为 PREFIX/lib/php）中安装 PEAR。

--without-pear

不安装 PEAR。

--enable-sigchild

使用 PHP 自带的 SIGCHLD 处理器。

--disable-rpath

禁用在搜索路径中传递其他运行库。

--enable-libgcc

启用 libgcc 的精确链接。

--enable-php-streams

包含试验性的 PHP 流。不要使用此选项，除非是要测试代码！

--with-zlib-dir[=DIR]

定义 zlib 的安装目录。

--with-tsrm-pthreads

使用 POSIX 线程（默认）。

--enable-shared[=PKGS]

编译共享库 [default=yes]。

--enable-static[=PKGS]

编译静态库 [default=yes]。

--enable-fast-install[=PKGS]

为快速安装优化 [default=yes]。

--with-gnu-ld

假设 C 编译器使用 GNU ld [default=no]。

--disable-libtool-lock

避免锁死（可能破坏并联的编译）。

--with-pic

尝试仅使用 PIC/非 PIC 对象 [default=use both]。

--enable-versioning

仅导出必须的符号。查看 INSTALL 文件以获得更多信息。

PHP 选项

--enable-maintainer-mode

对偶然安装一下的情形启用此选项，使得不检查编译规则和依赖关系。

--with-config-file-path=PATH

设置 php.ini 的搜索路径。默认为 PREFIX/lib。

--disable-short-tags

默认禁用短形式的开始标签 <? 。

--with-libdir

在 Unix 系统上指定库的目录，用于构建 PHP。对于 64 位系统，需要将此参数指定为 lib64，例如：--with-libdir=lib64。

--enable-zts

启用线程安全。PHP 8.0.0 之前的非 Windows 系统上，该选项为 --enable-maintainer-zts。

SAPI 选项

下面的列表包含 PHP 可用的 SAPI（服务器应用编程接口）。

--with-apxs[=FILE]

编译共享的 Apache 模块。FILE 是可选的 Apache apxs 工具的路径，默认指向 apxs。请确认指定的 apxs 已经安装在服务器中，并且它不是 Apache 源码包中的那个 apxs。

--with-apache[=DIR]

编译静态 Apache 模块。DIR 是 Apache 编译目录的顶层，默认为 /usr/local/apache。

--with-mod_charset

启用 mod_charset 的转换表（俄文的 Apache 使用）。

--with-apxs2[=FILE]

编译共享的 Apache 2.0 模块。FILE 是可选的 Apache apxs 工具的路径，默认指向 apxs。

--disable-cli

禁止编译 PHP 的 CLI 版本（使用它将同时强制使用 --without-pear 选项）。更多信息请参阅 PHP 的命令行模式。

--enable-phpdbg

启用 phpdbg 调试 SAPI 模块支持。

--enable-embed[=TYPE]

启用编译嵌入的 SAPI 库。TYPE 或者为 shared 或者为 static，默认为 shared。

--with-servlet[=DIR]

包含 servlet 支持。DIR 是 JSDK 的安装目录。此 SAPI 要求 java 扩展必须作为共享模块编译到 PHP 中。

--disable-cgi

禁止编译 CGI 版本的 PHP。

这个选项也会启用 FastCGI。

User Contributed Notes

atesin () gmail ! com 04-Feb-2021 08:55
i'll answer myself (FINALLY!)

current "configure options" can be viewed with "php-config" shell script, aside with other compile time options too =D!!! ...

in some distributions it comes with the "php-devel" package... but until in this online manual "php-config" is mentioned in pecl extensions documentation (i couldn't find on pecl site), idk if that "php-devel" has something to do with this

... however i noticed they are literal strings inside the script, i hope the script itself were built together with php compilation o_O

in the previous page "configure options" (link shown above ^), there is an editor note with additional info about it
atesin () gmail ! com 04-Feb-2021 02:38
please somebody tell me how to display configure options used in php actual binary

it was shown in phpinfo() some years before, it was very useful, specially with 'phpize' recompilation and to enable some pecl/pear module :/

please tell me also which ctriteria had php guys used to suddenly decided to hide (or obfuscate) this info :/

thanks in advance


php.ini 配置

Table of Contents

  • php.ini 配置选项列表
  • php.ini 配置段列表
  • php.ini 核心指令说明

User Contributed Notes

There are no user contributed notes for this page.


php.ini 配置选项列表

此列表包含的 php.ini 指令用于配置 PHP。

"可修改范围"列决定了该配置选项在什么情况下可以被设置。查看 配置可被设定范围 列表查看具体定义。

配置选项
名字 | 默认 | 可修改范围 | 更新日志
allow_url_fopen | "1" | INI_SYSTEM |
allow_url_include | "0" | INI_SYSTEM | 从 PHP 7.4.0 开始被废弃。
arg_separator.input | "&" | INI_PERDIR |
arg_separator.output | "&" | INI_ALL |
assert.active | "1" | INI_ALL |
assert.bail | "0" | INI_ALL |
assert.callback | null | INI_ALL |
assert.exception | "0" | INI_ALL |
assert.quiet_eval | "0" | INI_ALL | 从 PHP 8.0.0 起已删除
assert.warning | "1" | INI_ALL |
auto_append_file | null | INI_PERDIR |
auto_detect_line_endings | "0" | INI_ALL |
auto_globals_jit | "1" | INI_PERDIR |
auto_prepend_file | null | INI_PERDIR |
bcmath.scale | "0" | INI_ALL |
browscap | null | INI_SYSTEM |
cgi.check_shebang_line | "1" | INI_SYSTEM |
cgi.discard_path | "0" | INI_SYSTEM |
cgi.fix_pathinfo | "1" | INI_SYSTEM |
cgi.force_redirect | "1" | INI_SYSTEM |
cgi.nph | "0" | INI_ALL |
cgi.redirect_status_env | null | INI_SYSTEM |
cgi.rfc2616_headers | "0" | INI_ALL |
child_terminate | "0" | INI_ALL |
cli.pager | "" | INI_ALL |
cli.prompt | "\\b \\> " | INI_ALL |
cli_server.color | "0" | INI_ALL
com.allow_dcom | "0" | INI_SYSTEM |
com.autoregister_typelib | "0" | INI_ALL |
com.autoregister_verbose | "0" | INI_ALL |
com.autoregister_casesensitive | "1" | INI_ALL |
com.code_page | "" | INI_ALL |
com.dotnet_version | "" | INI_SYSTEM | As of PHP 8.0.0
com.typelib_file | "" | INI_SYSTEM |
curl.cainfo | NULL | INI_SYSTEM |
date.default_latitude | "31.7667" | INI_ALL |
date.default_longitude | "35.2333" | INI_ALL |
date.sunrise_zenith | "90.833333" | INI_ALL | 在 PHP 8.0.0 之前，默认值是"90.583333"
date.sunset_zenith | "90.833333" | INI_ALL | 在 PHP 8.0.0 之前，默认值是"90.583333"
date.timezone | "UTC" | INI_ALL | 自 PHP 8.2.0 起，将其设置为无效值或者空字符串时将发出警告。
dba.default_handler | DBA_DEFAULT | INI_ALL |
default_charset | "UTF-8" | INI_ALL |
input_encoding | "" | INI_ALL |
output_encoding | "" | INI_ALL |
internal_encoding | "" | INI_ALL |
default_mimetype | "text/html" | INI_ALL |
default_socket_timeout | "60" | INI_ALL |
disable_classes | "" | php.ini only |
disable_functions | "" | php.ini only |
display_errors | "1" | INI_ALL |
display_startup_errors | "1" | INI_ALL | 在 PHP 8.0.0 之前，默认值是 "0"。
docref_ext | "" | INI_ALL |
docref_root | "" | INI_ALL |
doc_root | null | INI_SYSTEM |
enable_dl | "1" | INI_SYSTEM | 本过时特性将肯定会在未来被移除。
enable_post_data_reading | "On" | INI_PERDIR |
engine | "1" | INI_ALL |
error_append_string | null | INI_ALL |
error_log | null | INI_ALL |
error_log_mode | 0o644 | INI_ALL | 自 PHP 8.2.0 起有效
error_prepend_string | null | INI_ALL |
error_reporting | null | INI_ALL |
exif.encode_unicode | "ISO-8859-15" | INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | INI_ALL |
exif.encode_jis | "" | INI_ALL |
exif.decode_jis_motorola | "JIS" | INI_ALL |
exif.decode_jis_intel | "JIS" | INI_ALL |
exit_on_timeout | "" | INI_ALL |
expect.timeout | "10" | INI_ALL |
expect.loguser | "1" | INI_ALL |
expect.logfile | "" | INI_ALL |
expect.match_max | "" | INI_ALL |
expose_php | "1" | php.ini only |
extension | null | php.ini only |
extension_dir | "/path/to/php" | INI_SYSTEM |
fastcgi.impersonate | "0" | INI_SYSTEM |
fastcgi.logging | "1" | INI_SYSTEM |
file_uploads | "1" | INI_SYSTEM |
filter.default | "unsafe_raw" | INI_PERDIR | 自 PHP 8.1.0 起弃用。
filter.default_flags | NULL | INI_PERDIR |
from | "" | INI_ALL |
gd.jpeg_ignore_warning | "1" | INI_ALL |
geoip.custom_directory | "" | INI_ALL |
hard_timeout | "2" | INI_SYSTEM | 自 PHP 7.1.0 起可用
highlight.comment | "#FF8000" | INI_ALL |
highlight.default | "#0000BB" | INI_ALL |
highlight.html | "#000000" | INI_ALL |
highlight.keyword | "#007700" | INI_ALL |
highlight.string | "#DD0000" | INI_ALL |
html_errors | "1" | INI_ALL |
ibase.allow_persistent | "1" | INI_SYSTEM |
ibase.max_persistent | "-1" | INI_SYSTEM |
ibase.max_links | "-1" | INI_SYSTEM |
ibase.default_db | NULL | INI_SYSTEM |
ibase.default_user | NULL | INI_ALL |
ibase.default_password | NULL | INI_ALL |
ibase.default_charset | NULL | INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | INI_ALL |
ibase.dateformat | "%Y-%m-%d" | INI_ALL |
ibase.timeformat | "%H:%M:%S" | INI_ALL |
ibm_db2.binmode | "1" | INI_ALL |
ibm_db2.i5_all_pconnect | "0" | INI_SYSTEM | Available as of ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | INI_SYSTEM | Available as of ibm_db2 1.4.9.
ibm_db2.i5_blank_userid | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_char_trim | "0" | INI_SYSTEM | Available as of ibm_db2 2.1.0.
ibm_db2.i5_dbcs_alloc | "0" | INI_SYSTEM | Available as of ibm_db2 1.5.0.
ibm_db2.i5_guard_profile | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_ignore_userid | "0" | INI_SYSTEM | Available as of ibm_db2 1.8.0.
ibm_db2.i5_job_sort | "0" | INI_SYSTEM | Available as of ibm_db2 1.8.4.
ibm_db2.i5_log_verbose | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_max_pconnect | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_override_ccsid | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_servermode_subsystem | NULL | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_sys_naming | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.instance_name | NULL | INI_SYSTEM | Available as of ibm_db2 1.0.2.
iconv.input_encoding | "" | INI_ALL | 在 PHP 5.6.0 中废弃。
iconv.output_encoding | "" | INI_ALL | 在 PHP 5.6.0 中废弃。
iconv.internal_encoding | "" | INI_ALL | 在 PHP 5.6.0 中废弃。
ignore_repeated_errors | "0" | INI_ALL |
ignore_repeated_source | "0" | INI_ALL |
ignore_user_abort | "0" | INI_ALL |
implicit_flush | "0" | INI_ALL |
include_path | ".:/path/to/php/pear" | INI_ALL |
intl.default_locale |  | INI_ALL |
intl.error_level | 0 | INI_ALL |
intl.use_exceptions | 0 | INI_ALL | Available since PECL 3.0.0a1
last_modified | "0" | INI_ALL |
ldap.max_links | "-1" | INI_SYSTEM |
log_errors | "0" | INI_ALL |
log_errors_max_len | "1024" | INI_ALL |
mail.add_x_header | "0" | INI_PERDIR |
mail.force_extra_parameters | null | php.ini only |
mail.log | "" | INI_PERDIR |
max_execution_time | "30" | INI_ALL |
max_input_nesting_level | "64" | INI_PERDIR |
max_input_vars | 1000 | INI_PERDIR |
max_input_time | "-1" | INI_PERDIR |
mbstring.language | "neutral" | INI_ALL |
mbstring.detect_order | NULL | INI_ALL |
mbstring.http_input | "pass" | INI_ALL | 已弃用
mbstring.http_output | "pass" | INI_ALL | 已弃用
mbstring.internal_encoding | NULL | INI_ALL | 已弃用
mbstring.substitute_character | NULL | INI_ALL |
mbstring.func_overload | "0" | INI_SYSTEM | 自 PHP 7.2.0 起弃用，PHP 8.0.0 起删除。
mbstring.encoding_translation | "0" | INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | INI_ALL |
mbstring.strict_detection | "0" | INI_ALL |
mbstring.regex_retry_limit | "1000000" | INI_ALL | 自 PHP 7.4.0 起可用。
mbstring.regex_stack_limit | "100000" | INI_ALL | 自 PHP 7.3.5 起可用。
mcrypt.algorithms_dir | null | INI_ALL |
mcrypt.modes_dir | null | INI_ALL |
memcache.allow_failover | "1" | INI_ALL | Available since memcache 2.0.2.
memcache.max_failover_attempts | "20" | INI_ALL | Available since memcache 2.1.0.
memcache.chunk_size | "8192" | INI_ALL | Available since memcache 2.0.2.
memcache.default_port | "11211" | INI_ALL | Available since memcache 2.0.2.
memcache.hash_strategy | "standard" | INI_ALL | Available since memcache 2.2.0.
memcache.hash_function | "crc32" | INI_ALL | Available since memcache 2.2.0.
memcache.protocol | ascii | INI_ALL | Supported since memcache 3.0.0
memcache.redundancy | 1 | INI_ALL | Supported since memcache 3.0.0
memcache.session_redundancy | 2 | INI_ALL | Supported since memcache 3.0.0
memcache.compress_threshold | 20000 | INI_ALL | Supported since memcache 3.0.3
memcache.lock_timeout | 15 | INI_ALL | Supported since memcache 3.0.4
memory_limit | "128M" | INI_ALL |
mysql.allow_local_infile | "1" | INI_SYSTEM |
mysql.allow_persistent | "1" | INI_SYSTEM |
mysql.max_persistent | "-1" | INI_SYSTEM |
mysql.max_links | "-1" | INI_SYSTEM |
mysql.trace_mode | "0" | INI_ALL |
mysql.default_port | NULL | INI_ALL |
mysql.default_socket | NULL | INI_ALL |
mysql.default_host | NULL | INI_ALL |
mysql.default_user | NULL | INI_ALL |
mysql.default_password | NULL | INI_ALL |
mysql.connect_timeout | "60" | INI_ALL |
mysqli.allow_local_infile | "0" | INI_SYSTEM | 在 PHP 7.2.16 和 7.3.3 之前，默认值为 "1"
mysqli.local_infile_directory |  | INI_SYSTEM | 自 PHP 8.1.0 起可用。
mysqli.allow_persistent | "1" | INI_SYSTEM |
mysqli.max_persistent | "-1" | INI_SYSTEM |
mysqli.max_links | "-1" | INI_SYSTEM |
mysqli.default_port | "3306" | INI_ALL |
mysqli.default_socket | NULL | INI_ALL |
mysqli.default_host | NULL | INI_ALL |
mysqli.default_user | NULL | INI_ALL | 自PHP 5.0.0起可用。
mysqli.default_pw | NULL | INI_ALL |
mysqli.reconnect | "0" | INI_SYSTEM | 自 PHP 8.2.0 起移除
mysqli.rollback_on_cached_plink | "0" | INI_SYSTEM |
mysqlnd.collect_statistics | "1" | INI_SYSTEM |
mysqlnd.collect_memory_statistics | "0" | INI_SYSTEM |
mysqlnd.debug | "" | INI_SYSTEM |
mysqlnd.log_mask | 0 | INI_ALL |
mysqlnd.mempool_default_size | 16000 | INI_ALL |
mysqlnd.net_read_timeout | "86400" | INI_ALL | Before PHP 7.2.0 the default value was "31536000" and the changeability was INI_SYSTEM
mysqlnd.net_cmd_buffer_size | "4096" | INI_SYSTEM |
mysqlnd.net_read_buffer_size | "32768" | INI_SYSTEM |
mysqlnd.sha256_server_public_key | "" | INI_PERDIR |
mysqlnd.trace_alloc | "" | INI_SYSTEM |
mysqlnd.fetch_data_copy | 0 | INI_ALL | Removed as of PHP 8.1.0
oci8.connection_class | "" | INI_ALL |
oci8.default_prefetch | "100" | INI_SYSTEM |
oci8.events | Off | INI_SYSTEM |
oci8.max_persistent | "-1" | INI_SYSTEM |
oci8.old_oci_close_semantics | Off | INI_SYSTEM | Deprecated as of PHP 8.1.0.
oci8.persistent_timeout | "-1" | INI_SYSTEM |
oci8.ping_interval | "60" | INI_SYSTEM |
oci8.prefetch_lob_size | "0" | INI_SYSTEM | Available since PECL OCI8 3.2.
oci8.privileged_connect | Off | INI_SYSTEM |
oci8.statement_cache_size | "20" | INI_SYSTEM |
odbc.allow_persistent | "1" | INI_SYSTEM |
odbc.check_persistent | "1" | INI_SYSTEM |
odbc.max_persistent | "-1" | INI_SYSTEM |
odbc.max_links | "-1" | INI_SYSTEM |
odbc.defaultlrl | "4096" | INI_ALL |
odbc.defaultbinmode | "1" | INI_ALL |
odbc.default_cursortype | "3" | INI_ALL |
opcache.enable | 1 | INI_ALL |
opcache.enable_cli | 0 | INI_SYSTEM | 在 PHP 7.1.2 至 7.1.6（含）的版本，默认值是 1
opcache.memory_consumption | 128 | INI_SYSTEM |
opcache.interned_strings_buffer | 8 | INI_SYSTEM |
opcache.max_accelerated_files | 10000 | INI_SYSTEM |
opcache.max_wasted_percentage | 5 | INI_SYSTEM |
opcache.use_cwd | 1 | INI_SYSTEM |
opcache.validate_timestamps | 1 | INI_ALL |
opcache.revalidate_freq | 2 | INI_ALL |
opcache.revalidate_path | 0 | INI_ALL |
opcache.save_comments | 1 | INI_SYSTEM |
opcache.fast_shutdown | 0 | INI_SYSTEM | 从 PHP 7.2.0 开始被移除
opcache.enable_file_override | 0 | INI_SYSTEM |
opcache.optimization_level | 0x7FFEBFFF | INI_SYSTEM | 从 PHP 7.3.0 起修改为 0x7FFFBFFF
opcache.inherited_hack | 1 | INI_SYSTEM | 自 PHP 7.3.0 被移除
opcache.dups_fix | 0 | INI_ALL |
opcache.blacklist_filename | "" | INI_SYSTEM |
opcache.max_file_size | 0 | INI_SYSTEM |
opcache.consistency_checks | 0 | INI_ALL | 自 8.1.18 和 8.2.5 起禁用。从 PHP 8.3.0 起已删除。
opcache.force_restart_timeout | 180 | INI_SYSTEM |
opcache.error_log | "" | INI_SYSTEM |
opcache.log_verbosity_level | 1 | INI_SYSTEM |
opcache.record_warnings | 0 | INI_SYSTEM | 自 PHP 8.0.0 起有效
opcache.preferred_memory_model | "" | INI_SYSTEM |
opcache.protect_memory | 0 | INI_SYSTEM |
opcache.mmap_base | null | INI_SYSTEM | 仅限 Windows。
opcache.restrict_api | "" | INI_SYSTEM |
opcache.file_update_protection | 2 | INI_ALL |
opcache.huge_code_pages | 0 | INI_SYSTEM |
opcache.lockfile_path | "/tmp" | INI_SYSTEM |
opcache.opt_debug_level | 0 | INI_SYSTEM | 自 PHP 7.1.0 起有效
opcache.file_cache | null | INI_SYSTEM |
opcache.file_cache_only | 0 | INI_SYSTEM |
opcache.file_cache_consistency_checks | 1 | INI_SYSTEM |
opcache.file_cache_fallback | 1 | INI_SYSTEM | 仅适用于 Windows 平台
opcache.validate_permission | 0 | INI_SYSTEM | 从 PHP 7.0.14 开始支持
opcache.validate_root | 0 | INI_SYSTEM | 从 PHP 7.0.14 开始支持
opcache.preload | "" | INI_SYSTEM | 从 PHP 7.4.0 开始支持
opcache.preload_user | "" | INI_SYSTEM | 从 PHP 7.4.0 开始支持
opcache.cache_id | "" | INI_SYSTEM | 仅支持 Windows。自 PHP 7.4.0 起有效
opcache.jit | "tracing" | INI_ALL | 自 PHP 8.0.0 起有效
opcache.jit_buffer_size | 0 | INI_SYSTEM | 自 PHP 8.0.0 起有效
opcache.jit_debug | 0 | INI_ALL | 自 PHP 8.0.0 起有效
opcache.jit_bisect_limit | 0 | INI_ALL | 自 PHP 8.0.0 起有效
opcache.jit_prof_threshold | 0.005 | INI_ALL | 自 PHP 8.0.0 起有效
opcache.jit_max_root_traces | 1024 | INI_SYSTEM | 自 PHP 8.0.0 起有效
opcache.jit_max_side_traces | 128 | INI_SYSTEM | 自 PHP 8.0.0 起有效
opcache.jit_max_exit_counters | 8192 | INI_SYSTEM | 自 PHP 8.0.0 起有效
opcache.jit_hot_loop | 64 | INI_SYSTEM | 自 PHP 8.0.0 起有效
opcache.jit_hot_func | 127 | INI_SYSTEM | 自 PHP 8.0.0 起有效
opcache.jit_hot_return | 8 | INI_SYSTEM | 自 PHP 8.0.0 起有效
opcache.jit_hot_side_exit | 8 | INI_SYSTEM | 自 PHP 8.0.0 起有效
opcache.jit_blacklist_root_trace | 16 | INI_ALL | 自 PHP 8.0.0 起有效
opcache.jit_blacklist_side_trace | 8 | INI_ALL | 自 PHP 8.0.0 起有效
opcache.jit_max_loop_unrolls | 8 | INI_ALL | 自 PHP 8.0.0 起有效
opcache.jit_max_recursive_calls | 2 | INI_ALL | 自 PHP 8.0.0 起有效
opcache.jit_max_recursive_returns | 2 | INI_ALL | 自 PHP 8.0.0 起有效
opcache.jit_max_polymorphic_calls | 2 | INI_ALL | 自 PHP 8.0.0 起有效
open_basedir | null | INI_ALL | 在 PHP < 5.2.3 时是 INI_SYSTEM。
output_buffering | "0" | INI_PERDIR |
output_handler | null | INI_PERDIR |
pcre.backtrack_limit | "100000" | INI_ALL |
pcre.recursion_limit | "100000" | INI_ALL |
pcre.jit | "1" | INI_ALL |
pdo.dsn.* |  | 仅 php.ini |
pdo_odbc.connection_pooling | "strict" | INI_ALL |
pdo_odbc.db2_instance_name | NULL | INI_SYSTEM | 本过时特性将肯定会在未来被移除。
pgsql.allow_persistent | "1" | INI_SYSTEM |
pgsql.max_persistent | "-1" | INI_SYSTEM |
pgsql.max_links | "-1" | INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | INI_SYSTEM |
pgsql.ignore_notice | "0" | INI_ALL |
pgsql.log_notice | "0" | INI_ALL |
phar.readonly | "1" | INI_ALL |
phar.require_hash | "1" | INI_ALL |
phar.cache_list | "" | INI_SYSTEM |
post_max_size | "8M" | INI_PERDIR |
precision | "14" | INI_ALL |
realpath_cache_size | "16K" | INI_SYSTEM |
realpath_cache_ttl | "120" | INI_SYSTEM |
register_argc_argv | "1" | INI_PERDIR |
report_memleaks | "1" | INI_ALL |
report_zend_debug | "1" | INI_ALL |
request_order | "" | INI_PERDIR |
runkit.superglobal | "" | INI_PERDIR |
runkit.internal_override | "0" | INI_SYSTEM |
sendmail_from | null | INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | INI_SYSTEM |
serialize_precision | "-1" | INI_ALL | PHP 7.1.0 之前，默认值为 17。
session.save_path | "" | INI_ALL |
session.name | "PHPSESSID" | INI_ALL |
session.save_handler | "files" | INI_ALL |
session.auto_start | "0" | INI_PERDIR |
session.gc_probability | "1" | INI_ALL |
session.gc_divisor | "100" | INI_ALL |
session.gc_maxlifetime | "1440" | INI_ALL |
session.serialize_handler | "php" | INI_ALL |
session.cookie_lifetime | "0" | INI_ALL |
session.cookie_path | "/" | INI_ALL |
session.cookie_domain | "" | INI_ALL |
session.cookie_secure | "0" | INI_ALL | 在 PHP 7.2.0 之前，默认值是 ""。
session.cookie_httponly | "0" | INI_ALL | 在 PHP 7.2.0 之前，默认值是 ""。
session.cookie_samesite | "" | INI_ALL | 自 PHP 7.3.0 起有效
session.use_strict_mode | "0" | INI_ALL | 自 PHP 5.5.2 起有效
session.use_cookies | "1" | INI_ALL |
session.use_only_cookies | "1" | INI_ALL |
session.referer_check | "" | INI_ALL |
session.cache_limiter | "nocache" | INI_ALL |
session.cache_expire | "180" | INI_ALL |
session.use_trans_sid | "0" | INI_ALL |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | INI_ALL | 自 PHP 7.1.0 起有效。
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | INI_ALL | 自 PHP 7.1.0 起有效。
session.sid_length | "32" | INI_ALL | 自 PHP 7.1.0 起有效。
session.sid_bits_per_character | "4" | INI_ALL | 自 PHP 7.1.0 起有效。
session.upload_progress.enabled | "1" | INI_PERDIR |
session.upload_progress.cleanup | "1" | INI_PERDIR |
session.upload_progress.prefix | "upload_progress_" | INI_PERDIR |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | INI_PERDIR |
session.upload_progress.freq | "1%" | INI_PERDIR |
session.upload_progress.min_freq | "1" | INI_PERDIR |
session.lazy_write | "1" | INI_ALL |
session.hash_function | "0" | INI_ALL | 自 PHP 7.1.0 起移除。
session.hash_bits_per_character | "4" | INI_ALL | 自 PHP 7.1.0 起移除。
session.entropy_file | "" | INI_ALL | 自 PHP 7.1.0 起移除。
session.entropy_length | "0" | INI_ALL | 自 PHP 7.1.0 起移除。
short_open_tag | "1" | INI_PERDIR |
SMTP | "localhost" | INI_ALL |
smtp_port | "25" | INI_ALL |
soap.wsdl_cache_enabled | 1 | INI_ALL |
soap.wsdl_cache_dir | /tmp | INI_ALL |
soap.wsdl_cache_ttl | 86400 | INI_ALL |
soap.wsdl_cache | 1 | INI_ALL |
soap.wsdl_cache_limit | 5 | INI_ALL |
sql.safe_mode | "0" | INI_SYSTEM | 自 PHP 7.2.0 起已移除
sqlite3.extension_dir | "" | INI_SYSTEM |
sqlite3.defensive | 1 | INI_USER | 自 PHP 7.2.17 和 7.3.4 起适用于 libsqlite ≥ 3.26.0。在 PHP 8.2.0 之前，此设置只能更改为 INI_SYSTEM。
syslog.facility | "LOG_USER" | INI_SYSTEM | 从 PHP 7.3.0 起可用。
syslog.filter | "no-ctrl" | INI_ALL | 从 PHP 7.3.0 起可用。
syslog.ident | "php" | INI_SYSTEM | 从 PHP 7.3.0 起可用。
sys_temp_dir | "" | INI_SYSTEM |
sysvshm.init_mem | 10000 | INI_SYSTEM |
tidy.default_config | "" | INI_SYSTEM |
tidy.clean_output | "0" | INI_USER |
track_errors | "0" | INI_ALL | 自 PHP 7.2.0 起废弃, 在 PHP 8.0.0 中移除。
unserialize_callback_func | null | INI_ALL |
unserialize_max_depth | "4096" | INI_ALL | 自 PHP 7.4.0 起可用。
uploadprogress.file.filename_template | "/tmp/upt_%s.txt" | INI_ALL |
upload_max_filesize | "2M" | INI_PERDIR |
max_file_uploads | 20 | INI_SYSTEM |
upload_tmp_dir | null | INI_SYSTEM |
url_rewriter.hosts | "" | INI_ALL | 自 PHP 7.1.0 起可用。
url_rewriter.tags | "form=" | INI_ALL | 在 PHP 7.1.0 之前，默认值是 "a=href,area=href,frame=src,form=,fieldset="。
user_agent | null | INI_ALL |
user_dir | null | INI_SYSTEM |
user_ini.cache_ttl | "300" | INI_SYSTEM |
user_ini.filename | ".user.ini" | INI_SYSTEM |
uopz.disable | "0" | INI_SYSTEM | Available as of uopz 5.0.2
uopz.exit | "0" | INI_SYSTEM | Available as of uopz 6.0.1
uopz.overloads | "1" | INI_SYSTEM | Available as of uopz 2.0.2. Removed as of uopz 5.0.0.
variables_order | "EGPCS" | INI_PERDIR |
windows.show_crt_warning | "0" | INI_ALL |
xbithack | "0" | INI_ALL |
xmlrpc_errors | "0" | INI_SYSTEM |
xmlrpc_error_number | "0" | INI_ALL |
yaz.keepalive | "120" | INI_ALL |
yaz.log_mask | null | INI_ALL | 自 yaz 1.0.3 起可用。
zend.assertions | "1" | INI_ALL |
zend.detect_unicode | "1" | INI_ALL |
zend.enable_gc | "1" | INI_ALL |
zend.multibyte | "0" | INI_PERDIR |
zend.script_encoding | null | INI_ALL |
zend.signal_check | "0" | INI_SYSTEM |
zend_extension | null | php.ini only |
zlib.output_compression | "0" | INI_ALL |
zlib.output_compression_level | "-1" | INI_ALL |
zlib.output_handler | "" | INI_ALL |

User Contributed Notes

There are no user contributed notes for this page.


php.ini 配置段列表

这个列表包含 php.ini section，可以根据每个主机或路径进行设置以配置 PHP 环境。这些 section 是可选的。

这些 section 并不直接影响 PHP。它们用于将其他 php.ini 指令分组，并使其在特定主机或路径上生效。

这些 section 仅在 CGI/FastCGI 模式下使用，不能设置 extension 和 zend_extension 指令。

配置段
名字 | 可修改范围 | 更新日志
[HOST=] | INI_SYSTEM |
[PATH=] | INI_SYSTEM |

这是配置指令的简短说明。

[HOST=<host>]

该 section 允许定义一组在指定主机上生效的 php.ini 指令。

Example #1 dev. 域名激活完整的屏幕错误报告

[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On

[PATH=<path>]

该 section 允许定义一组脚本从指定路径运行时生效的 php.ini 指令。

Example #2 受保护的区域添加安全脚本

[PATH=/home/site/public/secure]
auto_prepend_file=security.php

User Contributed Notes

dasloch at absatzen dot de 12-Feb-2020 12:47
Note that you cannot usefully set syslog.* in [PATH=] (and probably [HOST=]) sections, since the syslogger is initialized only once per php-fpm worker process, and not per request.
robinhook at mail dot com 22-Apr-2018 07:14
Sorry for the note. I've read some bad tutorials.
The correct syntax is : directive = 'value'
not a thing like : php_value[directive] = "somevalue"
robinhook at mail dot com 22-Apr-2018 06:59
this HOST and PATH sections doesn't seems to work in php.ini under apache 2.4 with php-fpm 7.1.16 for directive php_value or php_admin_value open_basedir or include_path.
phpinfo() says "none" in master and local values.
z dot himdi at bita dot nl 04-Aug-2011 07:53
On Windows IIS 7 server I noticed that [PATH=] was not listened to. [HOST=] however worked.
leo 06-May-2011 03:21
Just developed the probably first php.ini hack to add commands which will only be parsed before PHP 5.3 when using mod_php.

<?php

# Disable eAccelerator by default
eaccelerator.enable = 0

# Now, to prevent incompatibilities with Zend Optimizer+, we
# want to enable eAccelerator only in PHP 5.2 or lower.
[HOST=*]
eaccelerator.enable = 1

?>

What is happening here? In PHP 5.3, php.ini sections to set up PHP on a per host basis have been introduced:

http://www.php.net/manual/en/ini.sections.php

These sections only work in CGI/FastCGI mode, however there still seems to be a difference in how the php.ini file is parsed in PHP 5.2 and PHP 5.3 when using mod_php: PHP 5.3 ignores everything below the line [HOST=*], whereas PHP 5.2 does not.

In the above example, PHP 5.3 only reads "eaccelerator.enable = 0" and then stops at the invalid command [HOST=*]. However, PHP 5.2 seems to ignore the invalid command and parses the whole configuration file, ending up with "eaccelerator.enable = 1".
crash at lubyte dot de 06-Sep-2010 05:45
If you have a system which uses separated PHP inis for loading extensions (Debian, Fedora and most other distributions do so), [PATH=] or [HOST=] will prevent loading extensions defined in those ini files (extension= and zend_extension=).

I had some headache, when I added a hosts.ini to /etc/php5/cgi/conf.d (Debians default), where I wanted to define some defaults for a host name. The manual says extension= and zend_extension= aren't allowed in [HOST=] and [PATH=] (see above). I figured out that you can easily fix that with adding [PHP] after your definitions.

For example hosts.ini:
[HOST=dev.example.com]
display_errors = on

[PHP]

this will change the section back to [PHP] where extension= and zend_extension= is allowed.
robert dot johnson at icap dot com 12-Apr-2010 10:26
Adding PATH= applies only to the named path and does not include sub-directories, you have to add a PATH= value for each sub-directory.

Also some settings have no effect even though phpinfo recognises and displays the per-folder value as the 'local' value, and the default as the 'master' value.

'fastcgi.impersonate' always uses the master setting.
public at grik dot net 24-Sep-2009 03:00
In [HOST=...] one should use only the 1st server name from the list of server names.

I.E. if you have
server_name example.com, example2.com;
and will use www.example.com in a browser,
use [HOST=example.com] in php.ini for both addresses.

PHP looks not at the HOST request header (as I expected), but at the SERVER_NAME parameter (which by default is the 1st from the list of names, no matter what the HOST is).


php.ini 核心指令说明

该列表只包含可以配置 PHP 的核心 php.ini 指令。扩展的指令处理在各个扩展的文档页面分别列出和详细说明；比如，有关 session 指令可以在 sessions 页面找到。

Note:

当未加载 php.ini 时，使用以下列出的默认值；开发和生产环境的 php.ini 值可能会有所不同。

语言选项

语言和杂类配置选项
名字 | 默认 | 可修改范围 | 更新日志
short_open_tag | "1" | INI_PERDIR |
precision | "14" | INI_ALL |
serialize_precision | "-1" | INI_ALL | 在 PHP 7.1.0 以前，默认值为 17。
disable_functions | "" | 仅为 INI_SYSTEM |
disable_classes | "" | 仅为 php.ini |
exit_on_timeout | "" | INI_ALL |
expose_php | "1" | 仅为 php.ini |
hard_timeout | "2" | INI_SYSTEM | 从 PHP 7.1.0 起可用
zend.exception_ignore_args | "0" | INI_ALL | 从 PHP 7.4.0 起可用
zend.multibyte | "0" | INI_ALL |
zend.script_encoding | NULL | INI_ALL |
zend.detect_unicode | NULL | INI_ALL |
zend.signal_check | "0" | INI_SYSTEM |
zend.assertions | "1" | 有限制的 INI_ALL |
zend.exception_string_param_max_len | "15" | INI_ALL | 自 PHP 8.0.0 起可用。

这是配置指令的简短说明。

short_open_tag bool

告诉 PHP 是否允许 PHP 开放标签的缩写形式（<? ?>）。如果要 PHP 和 XML 结合使用，可以禁用此选项以便嵌入使用 <?xml ?>。否则还可以通过 PHP 来打印，例如：<?php echo '<?xml version="1.0"?>'; ?>。此外，如果禁用，必须使用 PHP 开放标签的完整形式（<?php ?>）。

Note:

本指令不会影响简写 <?=，因为它始终可用。

precision int
浮点数中显示有效数字的位数。-1 表示将使用增强算法来四舍五入此类数字。
serialize_precision int
序列化浮点数时存储的有效数字的位数。-1 表示将使用增强算法来四舍五入此类数字。
expose_php bool

确定是否向外界公开服务器上安装了 PHP，在 HTTP 标头中包含 PHP 版本号（例如：X-Powered-By: PHP/5.3.7）。

disable_functions string
此指令允许禁用某些函数。接受逗号分隔的函数名称列表作为参数。从 PHP 8.0.0 开始，禁用的函数会删除其定义，从而允许用户重新对其重新定义。在 PHP 8.0.0 之前，禁用函数只会阻止调用该函数。 此指令仅能禁用 内置函数。不能影响用户自定义函数。 本指令必须在 php.ini 中设置。不能在 httpd.conf 中设置。
disable_classes string

本指令允许禁用某些类。接受逗号分隔的类名列表作为参数。禁用类只会阻止该类实例化。

使用此指令只能禁用内部类。用户定义的类不受影响。

本指令必须在 php.ini 中设置。不能在 httpd.conf 中设置。
zend.assertions int
当设置为 1 时，生成断言代码并执行（开发模式）。当设置为 0 时，将生成断言代码，但运行时会跳过（不执行）。当设置为 -1 时，不生成断言代码，使断言成本为零（生产模式）。

Note:

如果在生产模式下启动进程，则 zend.assertions 不能在运行时修改，因为未生成断言代码。

如果在开发模式下启动进程，则 zend.assertions 不能在运行时设置为 -1。

zend.exception_string_param_max_len int
字符串化栈追踪中字符串函数参数的最大长度。必须介于 "0" 和 "1000000" 之间。
hard_timeout int

当命中 max_execution_time 中设置的超时的时候，PHP 运行时将会优雅的销毁资源。如果在这时卡住，硬超时将计时设置的秒数。当命中硬超时的时候，PHP 将异常退出。当设置为 0 时，硬超时始终不会激活。

当 PHP 因硬超时而停止时，它看起来像这样：

Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0

zend.exception_ignore_args bool

从异常产生的栈中排除参数。

zend.multibyte bool

启用多字节编码的源文件解析。启用 zend.multibyte 是使用 SJIS、BIG5 等在多字节字符串数据中包含特殊字符的字符编码所必需的。ISO-8859-1 兼容的编码，如 UTF-8、EUC 等，则不需要这个选项。

启用 zend.multibyte 需要 mbstring 扩展可用。

zend.script_encoding string

除非在脚本顶部出现 declare(encoding=...) 指令，否则将会使用此值。当使用不兼容 ISO-8859-1 的编码时，必须同时使用 zend.multibyte 和 zend.script_encoding。

文本字符串将从 zend.script_encoding 直译为 mbstring.internal_encoding，就像调用了 mb_convert_encoding() 一样。

zend.detect_unicode bool

检查 BOM（Byte Order Mark，即字节顺序标记）并查看文件是否包含有效的多字节字符。此检测可以在处理 __halt_compiler() 执行。仅在 Zend 多字节模式下使用。

zend.signal_check bool

在关闭时检查替换的信号处理程序。

exit_on_timeout bool

这是 Apache1 mod_php-only 指令，如果 PHP 执行超时，会强制 Apache 子程序退出。这样的超时会导致 Apache1 内部的 longjmp() 调用，从而使一些扩展处于不一致的状态。通过终止进程，将会清除任何未完成的锁或内存。

资源限制

资源限制
名字 | 默认 | 可修改范围 | 更新日志
memory_limit | "128M" | INI_ALL |

这是配置指令的简短说明。

memory_limit int

设置了允许脚本分配的最大内存量，以字节为单位。这有助于防止写得不好的脚本吃掉服务器上所有可用的内存。请注意，如果不需要内存限制，请将此指令设置为 -1。

当使用 int 时, 其值以字节来衡量。还可以使用在 FAQ 中描述的速记符。

请参阅：max_execution_time。

性能调整

性能调整
名字 | 默认 | 可修改范围 | 更新日志
realpath_cache_size | "4M" | INI_SYSTEM | PPHP 7.0.16 和 7.1.2 之前，默认值为 "16K"
realpath_cache_ttl | "120" | INI_SYSTEM |

Note:

启用 open_basedir 将会 禁用 realpath 缓存。

这是配置指令的简短说明。

realpath_cache_size int

设定 PHP 使用的 realpath 缓存的大小。在 PHP 打开很多文件的系统中，这个值应该增加，以优化执行文件操作的数量。

这里的大小表示存储的路径字符串的总字节数，加上与缓存条目相关的数据大小。这意味着，为了在缓存中存储更长的路径，缓存大小必须更大。这个值不直接控制可以缓存的不同路径的数量。

缓存输入数据所需的大小取决于操作系统。

realpath_cache_ttl int

缓存指定文件或目录的真实路径信息的持续时间（以秒为单位）。对于很少改变文件的系统，可以考虑增加该值。

数据处理

数据处理配置选项
名字 | 默认 | 可修改范围 | 更新日志
arg_separator.output | "&" | INI_ALL |
arg_separator.input | "&" | INI_PERDIR |
variables_order | "EGPCS" | INI_PERDIR |
request_order | "" | INI_PERDIR |
auto_globals_jit | "1" | INI_PERDIR |
register_argc_argv | "1" | INI_PERDIR |
enable_post_data_reading | "1" | INI_PERDIR |
post_max_size | "8M" | INI_PERDIR |
auto_prepend_file | NULL | INI_PERDIR |
auto_append_file | NULL | INI_PERDIR |
default_mimetype | "text/html" | INI_ALL |
default_charset | "UTF-8" | INI_ALL |
input_encoding | "" | INI_ALL |
output_encoding | "" | INI_ALL |
internal_encoding | "" | INI_ALL |

这是配置指令的简短说明。

arg_separator.output string

在 PHP 生成的 URL 中用来分隔参数的分隔符。

arg_separator.input string

PHP 用于将输入的 URL 解析为变量的分隔符列表。

Note:

本指令中的每一个字符都被视为分隔符！

variables_order string

设置 EGPCS（Environment、Get、Post、Cookie 和 Server）变量解析的顺序。例如，如果 variables_order 设置为 "SP"，然后 PHP 将创建 superglobals $_SERVER 和 $_POST，但不会创建 $_ENV、$_GET 和 $_COOKIE。设置为 "" 意味着不会设置 superglobals。

Warning

在 CGI 和 FastCGI SAPI 中，$_SERVER 也包含环境的值；S 始终等同于 ES，而不关心 E 在该指令中的位置。

Note:

$_REQUEST 的内容和顺序也受到此指令的影响。

request_order string

该指令描述了 PHP 将 GET、POST 和 Cookie 变量注册到 _REQUEST 数组中的顺序。注册是从左到右完成的，新值覆盖旧值。

如果未设置此指令，则 variables_order 用于 $_REQUEST 内容。

请注意，出于安全考虑，默认分发的 php.ini 文件不包含 cookie 的 'C'。

auto_globals_jit bool

启用后，SERVER、REQUEST 和 ENV 变量在首次使用时（即时）创建，而不是在脚本启动时创建。如果这些变量未在脚本中使用，启用此指令将提高性能。

Warning

在编译期间检查 SERVER、REQUEST 和 ENV 变量的使用，因此通过可变变量使用它们将不会使其初始化。

register_argc_argv bool
告诉 PHP 是否声明 argv & argc 变量（将包含 GET 信息）。 另请参阅命令行。
enable_post_data_reading bool
禁用这个选项会导致不会填充 $_POST 和 $_FILES。读取 postdata 的唯一方法是通过 php://input 流封装协议。这对于代理请求或以高效内存的方式处理 POST 数据很有用。
post_max_size int
设置允许 post 数据的最大大小。此设置也会影响文件上传。要上传大文件，此值必须大于 upload_max_filesize。 一般来说，memory_limit 应该大于 post_max_size。 当使用 int 时, 其值以字节来衡量。还可以使用在 FAQ 中描述的速记符。 如果 post 数据的大小大于 post_max_size，则 $_POST 和 $_FILES 超全局变量为空。这可以通过多种方式进行跟踪，例如通过将 $_GET 变量传递给处理数据的脚本，即 <form action="edit.php?processed=1">，然后检查是否设置了 $_GET['processed']。

Note:

PHP 允许使用字节值的快捷方式，包括 K（千）、M（兆）和 G（千兆）。如果使用其中任何一个，PHP 将自动进行转换。注意不要超过 32 位有符号整数限制（如果使用的是 32 位版本），因为这会导致脚本失败。

post_max_size 变更日志
版本 | 说明
5.3.4 | post_max_size = 0 will not disable the limit when the content type is application/x-www-form-urlencoded or is not registered with PHP.
5.3.2 , 5.2.12 | Allow unlimited post size by setting post_max_size to 0.

auto_prepend_file string

指定在主文件之前自动解析的文件名。included 该文件像是用 require 函数调用的一样，因此使用了 include_path。

特殊值 none 禁用 auto-prepending。

auto_append_file string

指定在主文件之后自动解析的文件名。included 该文件像是用 require 函数调用的一样，因此使用了 include_path。

特殊值 none 禁用 auto-prepending。

Note: 如果脚本以 exit() 终止，则不会发生 auto-append。

default_mimetype string

默认情况下，PHP 将使用 Content-Type 标头输出媒体类型。只需将其设置为空即可禁用。

PHP 内置默认媒体类型设置为 text/html。

default_charset string

"UTF-8"是默认值，如果省略 encoding 参数，它的值将用作 htmlentities()、html_entity_decode() 和 htmlspecialchars() 的默认字符编码。 如果未设置 iconv.input_encoding、iconv.output_encoding 和 iconv.internal_encoding 配置选项，则 default_charset 的值也将用于设置 iconv 函数的默认字符集，如果 mbstring.http_input mbstring.http_output mbstring.internal_encoding 配置选项未设置，则也可用于 mbstring 函数。

如果标头未通过调用 header() 覆盖，则所有版本的 PHP 都将使用此值作为 PHP 发送的默认 Content-Type 报头中的字符集。

不推荐设置 default_charset 为空字符串。

input_encoding string

此设置用于多字节模块，例如 mbstring 和 iconv。 默认为空。

output_encoding string

此设置用于多字节模块，例如 mbstring 和 iconv。 默认为空。

internal_encoding string

此设置用于多字节模块，例如 mbstring 和 iconv。 默认为空。 如果为空，则使用 default_charset。

路径和目录

路径和目录配置项
名字 | 默认 | 可修改范围 | 更新日志
include_path | ".;/path/to/php/pear" | INI_ALL |
open_basedir | NULL | INI_ALL |
doc_root | NULL | INI_SYSTEM |
user_dir | NULL | INI_SYSTEM |
user_ini.cache_ttl | "300" | INI_SYSTEM |
user_ini.filename | ".user.ini" | INI_SYSTEM |
extension_dir | "/path/to/php" | INI_SYSTEM |
extension | NULL | php.ini only |
zend_extension | NULL | php.ini only |
cgi.check_shebang_line | "1" | INI_SYSTEM |
cgi.discard_path | "0" | INI_SYSTEM |
cgi.fix_pathinfo | "1" | INI_SYSTEM |
cgi.force_redirect | "1" | INI_SYSTEM |
cgi.nph | "0" | INI_SYSTEM |
cgi.redirect_status_env | NULL | INI_SYSTEM |
cgi.rfc2616_headers | "0" | INI_ALL |
fastcgi.impersonate | "0" | INI_SYSTEM |
fastcgi.logging | "1" | INI_SYSTEM |

这是配置指令的简短说明。

include_path string

指定 require、include、fopen()、file()、readfile() 和 file_get_contents() 函数在其中查找文件的目录列表，格式类似于系统的 PATH 环境变量：目录列表，在 Unix 中使用冒号分隔，在 Windows 中使用分号分隔。

在查找要包含的文件时，PHP 会分别考虑 include 路径中的每个条目。它将检查第一个路径，如果没有找到它，则检查下一个路径，直到找到包含的文件或返回 E_WARNING 或 E_ERROR。可以在运行时使用 set_include_path() 修改或设置 include 路径。

Example #1 Unix include_path

include_path=".:/php/includes"

Example #2 Windows include_path

include_path=".;c:\php\includes"

在 include 路径中使用 . 允许相对 includes，因为其表示当前目录。但是，显式使用 include './file' 比让 PHP 始终检查当前目录中的每个 include 更有效。

Note:

ENV 变量也可以在 .ini 文件中访问。因此，可以使用 ${LOGIN} 和 ${USER} 引用 home 目录。

服务器 API 之间的环境变量可能会有所不同，因为这些环境可能不同。

Example #3 Unix include_path 使用 ${USER} env 变量

include_path = ".:${USER}/pear/php"

open_basedir string

将 PHP 可以访问的文件限制在指定的目录树中，包括文件本身。

当脚本尝试访问文件系统时，例如使用 include 或 fopen() 时，将检查文件的位置。当文件位于指定的目录树之外时，PHP 将拒绝访问它。所有符号链接都已解析，因此无法通过符号链接避免此限制。如果文件不存在，则符号链接无法解析，文件名将与（已解析的）open_basedir 进行比较。

open_basedir 不仅可以影响文件系统函数；例如，如果 MySQL 配置为使用 mysqlnd 驱动程序，则 LOAD DATA INFILE 将受到 open_basedir 的影响。PHP 的许多扩展功能都以这种方式使用 open_basedir。

特殊值 . 表示脚本的工作目录将用作基础目录。然而，这有点危险，因为脚本的工作目录可以很容易地用 chdir() 更改。

在 httpd.conf 中，open_basedir 可以被关闭（例如对于某些虚拟主机）。就像以相同方式使用"php_admin_value open_basedir none"的其它任何配置指令。

在 Windows 中，用分号分隔目录。在所有其它系统上，用冒号分隔目录。现在 Apache 模块将自动继承来自父目录的 open_basedir 路径。

open_basedir 指定的限制是目录名称，而不是前缀。

默认设置是允许打开所有文件。

Note:

open_basedir 可以在运行时限制更多。这意味着如果在 php.ini 中将 open_basedir 设置为 /www/，则脚本可以在运行时使用 ini_set() 将配置限制到 /www/tmp/。当列出多个目录时，无论操作系统如何，都可以使用 PATH_SEPARATOR 常量作为分隔符。

Note:

使用 open_basedir 会将 realpath_cache_size 设置为 0，从而禁用 realpath 缓存。

Caution

open_basedir 只是额外的安全保障，并不全面，因此在需要安全性时并不能依赖它。

doc_root string

PHP 在服务器上的"根目录"。仅在非空时使用。如果 PHP 未使用 FORCE_REDIRECT 编译，并且在任何 Web 服务器（IIS 除外）下将 PHP 作为 CGI 运行，则应设置 doc_root。另一种方法是使用下面的 cgi.force_redirect 配置。

user_ini.cache_ttl int

user_ini.filename string

user_dir string

用户 home 目录中用于 PHP 文件的基本目录名，例如 public_html。

extension_dir string

PHP 寻找可动态加载扩展的目录。建议指定绝对路径。参阅 enable_dl 和 dl()。

extension string

PHP 启动时要加载的动态可加载扩展。

zend_extension string

PHP 启动时要加载的动态可加载 Zend 扩展名（例如 XDebug）。

cgi.check_shebang_line bool

控制 CGI PHP 是否检查以 #!（shebang）在运行脚本的顶部。如果脚本支持作为独立脚本和通过 PHP CGI 运行，则可能需要此行。如果此指令打开，CGI 模式下的 PHP 将跳过此行并忽略其内容。

cgi.discard_path bool

如果启用，PHP CGI 二进制文件可以安全地放置在 web 树之外，用户将无法绕过 .htaccess 安全性。

cgi.fix_pathinfo bool

为 CGI 提供真正的 PATH_INFO/PATH_TRANSLATED 支持。PHP 以前的行为是将 PATH_TRANSLATED 设置为 SCRIPT_FILENAME，而不去理解 PATH_INFO 是什么。有关 PATH_INFO 的更多信息，请参阅 CGI 规范。将此设置为 1 将导致 PHP CGI 修复其路径以符合规范。设置为 0 会导致 PHP 像以前一样运行。默认打开。应该修复脚本以使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED。

cgi.force_redirect bool

cgi.force_redirect 是在大多数 Web 服务器下提供将 PHP 作为 CGI 运行的安全性所必需的。如果未定义，PHP 默认开启。也可以关闭它自行承担风险。

Note:

Windows 用户：使用 IIS 时必须关闭此选项。对于 OmniHTTPD 或 Xitami，同样适用。

cgi.nph bool

如果启用了 cgi.nph，对每个请求始终强制 cgi 发送 Status: 200。

cgi.redirect_status_env string

如果打开了 cgi.force_redirect，并且没有在 Apache 或 Netscape (iPlanet) Web 服务器下运行，可能需要设置一个环境变量名称，PHP 将查找该名称以了解是否可以继续执行。

Note:

设置此变量可能会导致安全问题，首先要知道自己在做什么。

cgi.rfc2616_headers int

告诉 PHP 在发送 HTTP 响应代码时使用什么样的标头类型。如果设置为 0，PHP 将发送 Apache 和其他 Web 服务器支持的 » RFC 3875 "Status:" 标头。当此选项设置为 1 时，PHP 将发送 » RFC 2616 兼容标头。

如果启用此选项，并且在 CGI 环境（例如 PHP-FPM）中运行 PHP，则不应使用标准的 RFC 2616 样式的 HTTP 状态响应标头，而应使用其等效的 RFC 3875，例如不该使用 header("HTTP/1.0 404 Not found"); 应该使用 header("Status: 404 Not Found");

除非知道自己在做什么，否则请将其设置为 0。

fastcgi.impersonate string

IIS 下的 FastCGI（在基于 WINNT 的操作系统上）支持模拟调用客户端的安全令牌的能力。这允许 IIS 定义请求在其下运行的安全上下文。Apache 下的 mod_fastcgi 目前不支持此功能（2002-03-17）。如果在 IIS 下运行，则设置为 1。默认为 0。

fastcgi.logging bool

使用 FastCGI 时打开 SAPI 日志记录。默认是启用日志记录。

文件上传

文件上传配置项
名字 | 默认 | 可修改范围 | 更新日志
file_uploads | "1" | INI_SYSTEM |
upload_tmp_dir | NULL | INI_SYSTEM |
max_input_nesting_level | 64 | INI_PERDIR |
max_input_vars | 1000 | INI_PERDIR |
upload_max_filesize | "2M" | INI_PERDIR |
max_file_uploads | 20 | INI_PERDIR |

这是配置指令的简短说明。

file_uploads bool

是否允许 HTTP 文件上传。参阅 upload_max_filesize、upload_tmp_dir 和 post_max_size 指令。

upload_tmp_dir string

上传文件时用来存放文件的临时目录。必须允许运行 PHP 的任何用户写入。如果未指定，PHP 将使用系统默认值。

如果此处指定的目录不可写，PHP 回退到系统默认临时目录。如果打开 open_basedir，然后允许系统临时目录才可以成功上传。

upload_max_filesize int

上传文件的最大大小。

post_max_size 必须大于此值。

当使用 int 时, 其值以字节来衡量。还可以使用在 FAQ 中描述的速记符。
max_file_uploads int

允许同时上传的最大文件数。提交时留空的上传字段不计入此限制。

常规 SQL

常规 SQL 配置项
名字 | 默认 | 可修改范围 | 更新日志
sql.safe_mode | "0" | INI_SYSTEM | 自 PHP 7.2.0 起移除

这是配置指令的简短说明。

sql.safe_mode bool

If turned on, database connection functions that specify default values will use those values in place of any user-supplied arguments. For details on the default values, see the documentation for the relevant connection functions.

Warning

此功能自 PHP 7.2.0 起移除。

Windows 专用

Windows 专用配置选项
名字 | 默认 | 可修改范围 | 更新日志
windows.show_crt_warning | "0" | INI_ALL |

这是配置指令的简短说明。

windows.show_crt_warning bool

该指令在启用时显示 Windows CRT 警告。

User Contributed Notes

gcb@ 09-Jun-2024 06:19
you get a misleading error if a directory doesn't exist or the user lacks permission to access it.

open_basedir restriction in effect. File(/tmp/php_session) is not within the allowed path(s): /tmp/php_session
andre dot wetter at myelco dot ch 23-Mar-2021 09:55
If you use Microsoft IIS Windows and want to use open_basedir restrictions with multiple dirs you have to set them into single quotes in the main config xml file of IIS (C:\Windows\System32\inetsrv\config\applicationHost.config). Works fine in IIS 10.

Multiple files with single quotes and ; for windows:
"C:\php\php-cgi.exe|-d open_basedir='C:\Windows\Temp\;D:\mywebsite1\'"

Only one dir works fine without single quotes:
"C:\php\php-cgi.exe|-d open_basedir=D:\mywebsite1\"

In my main config xml file of IIS there are 2 nodes to set per website and the definitions have to be equal:
configuration\Location\system.webServer\handlers\add
configuration\system.webServer\fastCgi
Simone Pellegatta 19-Jan-2021 12:08
Be careful while using auto_prepend_file.

When the custom exception handler, set by set_exception_handler(), handles an uncaught exception, it interrupts the execution of every script.

If the script with the unhandled exception has been automatically prepended or included by an automatically prepended script, however, the main script will continue running anyway.

This could cause several issues: when we think that throwing an exception would automatically interrupt the current application, a whole chunk of code is going to run anyway.
Anton Bannikov 22-Apr-2020 02:40
I had a problem with 'open_basedir =' string in php.ini. This string was writtren in VirtualHost Directory directive of Apache2 and successfully rewrote the same php.ini setting! It happened with VestaCP, but I think, it's a common way. Goog luck!
luisdev 03-Mar-2020 02:59
https://haydenjames.io/understanding-php-memory_limit/ explains the memory_limit setting nicely.
diamondeagle at webmail dot co dot za 15-Aug-2019 11:14
Note regarding the upload_tmp_dir setting and UNC Paths:

When using PHP on Windows OS and IIS FastCGI, if you need to use a UNC path to a folder on a network drive for the upload_tmp_dir setting then you must use three \ characters at the front of the UNC path.

Windows and PHP use the first slash as an escape character, so if you only use two slashes then it passes a UNC path with just one backslash. That is not valid for UNC paths and you many experience problems when uploading files, such as errors saying that "PHP is missing a temporary folder".

Correct:
upload_tmp_dir = "\\\path\to\your\folder"

Incorrect:
upload_tmp_dir = "\\path\to\your\folder"
fernandobasso dot br at gmail dot com 17-Oct-2016 08:06
This might help in case someone happens to maintain old applications with a charset other than utf-8.

According to the docs, you can override the default charset if you use `header()`.

Suppose php.ini sets the default_charset to "UTF-8", but you need a legacy charset, like ISO-8859-1.

Still,

<?php header('Content-Type: text/html; Charset=ISO-8859-1'); ?>

would not override the charset, just add it as well and the result
was a response header like (note the two charsets):

    Content-Type:"text/html; Charset=ISO-8859-1;CHARSET=gb2312"

I found it strange the default one as `charset` with a lowercase `c`
as opposed to my custom charset with an uppercase `C`.

What solved was to _override_ the charset using all lowercase letters
as well for the word "charset":

<?php header('content-type: text/html; charset=ISO-8859-1'); ?>

Then, the double charset from the response headers disappeared, and only the single, custom charset remained.
dougal at gunters dot org 03-Mar-2016 05:11
It appears that if you use both the 'include_path' directives and 'open_basedir', that file searches will hit the include path *first*, before local files. But if 'open_basedir' is not in use, then local files are found first. For example, suppose you have code in '/var/www/myfile.php' which does:

<?php
  require_once('config.php');
?>

Further, assume that there is a local file '/var/www/config.php', and there is also a file '/var/local/php/config.php'.

Next, if your php.ini has:

  include_path = /var/local/php/

Normally, this would look for '/var/www/config.php' first, and if not found, then it would try '/var/local/php/config.php'.

But if you also have this in php.ini:

  open_basedir = /var/www/:/var/local/php/

Then the require would reverse the order of the search, and load '/var/local/php/config.php', even when the local 'config.php' file exists.

Furthermore, if include_path contains directories not in open_basedir, you can end up with a fatal error. For example, change the directive to:

  open_basedir = /var/www/:/var/local/includes/php/

Now the require will first find '/var/local/php/config.php' from the include_path, try to include it, but be unable to because of the open_basedir restrictions.
leo at korfu dot cz 29-May-2006 03:45
"If the size of post data is greater than post_max_size..."

It seems that a more elegant way is comparison between post_max_size and $_SERVER['CONTENT_LENGTH']. Please note that the latter includes not only size of uploaded file plus post data but also multipart sequences. Leo


扩展库列表/归类

Table of Contents

  • 按字母顺序
  • 按归属分
  • 按状态分

本附录将 PHP 手册中的 150 多个扩展库以不同标准分类。

User Contributed Notes

There are no user contributed notes for this page.


按字母顺序

  • Apache
  • APCu
  • 数组
  • BC Math
  • Bzip2
  • Calendar
  • 类/对象
  • CommonMark
  • COM
  • Componere
  • Ctype
  • CUBRID
  • cURL
  • 日期/时间
  • DBA
  • dBase
  • 直接 IO
  • 目录
  • DOM
  • Data Structures
  • Eio
  • Enchant
  • 错误处理
  • Ev
  • Event
  • 程序执行
  • Exif
  • Expect
  • FANN
  • FDF
  • FFI
  • Fileinfo
  • 文件系统
  • 过滤器
  • FastCGI 进程管理器
  • FTP
  • 函数处理
  • Gearman
  • Gender
  • GeoIP
  • Gettext
  • Gmagick
  • GMP
  • GnuPG
  • Hash
  • HRTime
  • Firebird/InterBase
  • IBM DB2
  • iconv
  • Igbinary
  • GD
  • ImageMagick
  • IMAP
  • PHP 选项/信息
  • Inotify
  • intl
  • JSON
  • LDAP
  • libxml
  • Lua
  • LuaSandbox
  • LZF
  • Mail
  • Mailparse
  • Math
  • 多字节字符串
  • Mcrypt
  • Memcache
  • Memcached
  • Mhash
  • 杂项
  • mqseries
  • Mysql（原始）
  • Mysql_xdevapi
  • MySQLi
  • Mysqlnd
  • 网络
  • OAuth
  • OCI8
  • OPcache
  • OpenAL
  • OpenSSL
  • 输出控制
  • parallel
  • Parle
  • 密码散列算法
  • PCNTL
  • PCRE
  • PDO
  • CUBRID (PDO)
  • MS SQL Server (PDO)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • Oracle (PDO)
  • ODBC and DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • MS SQL Server (PDO)
  • PostgreSQL
  • Phar
  • phpdbg
  • POSIX
  • PS
  • Pspell
  • pthreads
  • Quickhash
  • Radius
  • Random
  • Rar
  • Readline
  • Recode
  • 反射
  • Rnp
  • RpmInfo
  • RRD
  • runkit7
  • ScoutAPM
  • SeasLog
  • Semaphore
  • Sessions
  • Shared Memory
  • Simdjson
  • SimpleXML
  • SNMP
  • SOAP
  • Socket
  • Sodium
  • Solr
  • SPL
  • SQLite3
  • SQLSRV
  • ssdeep
  • SSH2
  • Statistics
  • Stomp
  • Stream
  • 字符串
  • SVM
  • SVN
  • Swoole
  • Sync
  • Taint
  • TCP
  • Tidy
  • Tokenizer
  • Trader
  • UI
  • ODBC
  • uopz
  • URL
  • V8js
  • 变量处理
  • var_representation
  • Varnish
  • WDDX
  • win32service
  • WinCache
  • wkhtmltox
  • xattr
  • xdiff
  • Xhprof
  • XLSWriter
  • XML 解析器
  • XMLDiff
  • XMLReader
  • XML-RPC
  • XMLWriter
  • XSL
  • Yac
  • Yaconf
  • Yaf
  • Yaml
  • Yar
  • YAZ
  • Zip
  • Zlib
  • 0MQ 消息
  • ZooKeeper

User Contributed Notes

There are no user contributed notes for this page.


按归属分

核心扩展库

以下并非真正的扩展库，它们属于 PHP 内核的一部分，不能通过编译选项将其排除。

  • 数组

  • 类/对象

  • 日期/时间

  • 目录

  • 错误处理

  • 程序执行

  • 文件系统

  • FastCGI 进程管理器

  • 函数处理

  • Hash

  • PHP 选项/信息

  • JSON

  • Mail

  • Math

  • 杂项

  • 网络

  • OPcache

  • 输出控制

  • 密码散列算法

  • PCRE

  • Random

  • 反射

  • SPL

  • Stream

  • 字符串

  • URL

  • 变量处理

绑定的扩展库

以下扩展库绑定在 PHP 发行包中。

  • Apache

  • BC Math

  • Calendar

  • COM

  • Ctype

  • DBA

  • Exif

  • FFI

  • Fileinfo

  • 过滤器

  • FTP

  • iconv

  • GD

  • intl

  • 多字节字符串

  • Mhash

  • PCNTL

  • PDO

  • Phar

  • phpdbg

  • POSIX

  • Semaphore

  • Sessions

  • Shared Memory

  • Socket

  • SQLite3

  • Tokenizer

  • Zlib

外部扩展库

这些扩展库已经包含在 PHP 中但是需要编译它们才能使用，并且可能需要额外的扩展库。

  • Bzip2

  • cURL

  • DOM

  • Enchant

  • Gettext

  • GMP

  • IMAP

  • LDAP

  • libxml

  • MySQLi

  • Mysqlnd

  • OCI8

  • OpenSSL

  • MS SQL Server (PDO)

  • Firebird (PDO)

  • MySQL (PDO)

  • Oracle (PDO)

  • ODBC and DB2 (PDO)

  • PostgreSQL (PDO)

  • SQLite (PDO)

  • PostgreSQL

  • Pspell

  • Readline

  • SimpleXML

  • SNMP

  • SOAP

  • Sodium

  • Tidy

  • ODBC

  • XML 解析器

  • XMLReader

  • XMLWriter

  • XSL

  • Zip

PECL 扩展库

以下扩展来自 » PECL，它们可能需要额外的库。还有更多的 PECL 扩展存在，但是在 PHP 手册中尚未有文档。

  • APCu

  • CommonMark

  • Componere

  • CUBRID

  • dBase

  • 直接 IO

  • Data Structures

  • Eio

  • Ev

  • Event

  • Expect

  • FANN

  • FDF

  • Gearman

  • Gender

  • GeoIP

  • Gmagick

  • GnuPG

  • HRTime

  • Firebird/InterBase

  • IBM DB2

  • Igbinary

  • ImageMagick

  • Inotify

  • Lua

  • LuaSandbox

  • LZF

  • Mailparse

  • Mcrypt

  • Memcache

  • Memcached

  • mqseries

  • Mysql（原始）

  • Mysql_xdevapi

  • OAuth

  • OpenAL

  • parallel

  • Parle

  • CUBRID (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MS SQL Server (PDO)

  • PS

  • pthreads

  • Quickhash

  • Radius

  • Rar

  • Recode

  • Rnp

  • RpmInfo

  • RRD

  • runkit7

  • ScoutAPM

  • SeasLog

  • Simdjson

  • Solr

  • SQLSRV

  • ssdeep

  • SSH2

  • Statistics

  • Stomp

  • SVM

  • SVN

  • Swoole

  • Sync

  • Taint

  • TCP

  • Trader

  • UI

  • uopz

  • V8js

  • var_representation

  • Varnish

  • WDDX

  • win32service

  • WinCache

  • wkhtmltox

  • xattr

  • xdiff

  • Xhprof

  • XLSWriter

  • XMLDiff

  • XML-RPC

  • Yac

  • Yaconf

  • Yaf

  • Yaml

  • Yar

  • YAZ

  • 0MQ 消息

  • ZooKeeper

User Contributed Notes

There are no user contributed notes for this page.


按状态分

此部分所列出的扩展项不适用于生产环境――它们要么太老（已废弃），要么太新（试验中）。

已废弃的扩展库

以下扩展库已被废弃，通常有其他的扩展库替代。

  • Mysql（原始）

  • WDDX

  • XML-RPC

试验中的扩展库

以下扩展库的行为――包括其函数的名称和所记载的有关此扩展库的其它任何东西――可能没有任何通知就在 PHP 的未来版本中进行变更。使用这些扩展时风险自担。

  • ImageMagick

User Contributed Notes

There are no user contributed notes for this page.


函数别名列表

这里是函数别名列表，所有的别名列表如下。通常使用别名并不是一个好主意，这是因为它可能会废弃不用或者重新定义。这会导致不可移植脚本的出现。本列表是为了帮助想要升级他们旧有脚本到新版本语法的开发人员。很多 PHP 函数都有一个别名，可以用别名调用它。在某些情况下，两个名称都非常合适，无从取舍，is_int() 和 is_integer() 就是一个很好的例子。而有些情况则是，由于内部 API 的清理或其它一些原因，函数名被修改，但是老的名称保留了下来，以确保向后兼容性。使用这种别名通常不是个好主意，因为这种别名可能会被完全废弃或更名，导致脚本难以移植到新版本的 PHP 上。我们提供了本列表，来帮助那些要升级旧程序到更新语法的人。

别名列表
别名 | 主函数 | 使用的扩展模块
_ | gettext() | Gettext
chop | rtrim() | 基本语法
close | closedir() | 基本语法
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
die | exit() | 杂类函数
diskfreespace | disk_free_space() | 文件系统函数
doubleval | floatval() | 基本语法
fputs | fwrite() | 基本语法
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | 多字节字符串函数
i18n_discover_encoding | mb_detect_encoding() | 多字节字符串函数
i18n_http_input | mb_http_input() | 多字节字符串函数
i18n_http_output | mb_http_output() | 多字节字符串函数
i18n_internal_encoding | mb_internal_encoding() | 多字节字符串函数
i18n_ja_jp_hantozen | mb_convert_kana() | 多字节字符串函数
i18n_mime_header_decode | mb_decode_mimeheader() | 多字节字符串函数
i18n_mime_header_encode | mb_encode_mimeheader() | 多字节字符串函数
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | 基本语法
is_double | is_float() | 基本语法
is_integer | is_int() | 基本语法
is_long | is_int() | 基本语法
is_real | is_float() | 基本语法
is_writeable | is_writable() | 基本语法
join | implode() | 基本语法
key_exists | array_key_exists() | 基本语法
ldap_close | ldap_unbind() | LDAP
mbstrcut | mb_strcut() | 多字节字符串函数
mbstrlen | mb_strlen() | 多字节字符串函数
mbstrpos | mb_strpos() | 多字节字符串函数
mbstrrpos | mb_strrpos() | 多字节字符串函数
mbsubstr | mb_substr() | 多字节字符串函数
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
ociassignelem | OCICollection::assignElem | OCI8
ocibindbyname | oci_bind_by_name() | OCI8
ocicancel | oci_cancel() | OCI8
ocicloselob | OCILob::close | OCI8
ocicollappend | OCICollection::append | OCI8
ocicollassign | OCICollection::assign | OCI8
ocicollmax | OCICollection::max | OCI8
ocicollsize | OCICollection::size | OCI8
ocicolltrim | OCICollection::trim | OCI8
ocicolumnisnull | oci_field_is_null() | OCI8
ocicolumnname | oci_field_name() | OCI8
ocicolumnprecision | oci_field_precision() | OCI8
ocicolumnscale | oci_field_scale() | OCI8
ocicolumnsize | oci_field_size() | OCI8
ocicolumntype | oci_field_type() | OCI8
ocicolumntyperaw | oci_field_type_raw() | OCI8
ocicommit | oci_commit() | OCI8
ocidefinebyname | oci_define_by_name() | OCI8
ocierror | oci_error() | OCI8
ociexecute | oci_execute() | OCI8
ocifetch | oci_fetch() | OCI8
ocifetchinto | oci_fetch_array(), oci_fetch_row(), oci_fetch_assoc(), oci_fetch_object() | OCI8
ocifetchstatement | oci_fetch_all() | OCI8
ocifreecollection | OCICollection::free | OCI8
ocifreecursor | oci_free_statement() | OCI8
ocifreedesc | oci_free_descriptor() | OCI8
ocifreestatement | oci_free_statement() | OCI8
ocigetelem | OCICollection::getElem | OCI8
ociinternaldebug | oci_internal_debug() | OCI8
ociloadlob | OCILob::load | OCI8
ocilogon | oci_connect() | OCI8
ocinewcollection | oci_new_collection() | OCI8
ocinewcursor | oci_new_cursor() | OCI8
ocinewdescriptor | oci_new_descriptor() | OCI8
ocinlogon | oci_new_connect() | OCI8
ocinumcols | oci_num_fields() | OCI8
ociparse | oci_parse() | OCI8
ocipasswordchange | oci_password_change() | OCI8
ociplogon | oci_pconnect() | OCI8
ociresult | oci_result() | OCI8
ocirollback | oci_rollback() | OCI8
ocisavelob | OCILob::save | OCI8
ocisavelobfile | OCILob::import | OCI8
ociserverversion | oci_server_version() | OCI8
ocisetprefetch | oci_set_prefetch() | OCI8
ocistatementtype | oci_statement_type() | OCI8
ociwritelobtofile | OCILob::export | OCI8
ociwritetemporarylob | OCILob::writeTemporary | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | 基本语法
recode | recode_string() | Recode
show_source | highlight_file() | 基本语法
sizeof | count() | 基本语法
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | 基本语法

User Contributed Notes

There are no user contributed notes for this page.


保留字列表

Table of Contents

  • 关键词列表
  • 预定义类
  • 预定义常量
  • 其他保留字列表

以下是 PHP 中预定义标识符的列表。没有列在下面的标识符可以在脚本中作为自定义标识符使用。这些列表包括关键字和预定义变量、常量和类名。这些列表可能有遗漏，它是不完整的。

User Contributed Notes

There are no user contributed notes for this page.


关键词列表

这些词语在 PHP 中有着特殊的意义。它们中有些像是函数，有些像是常量，但是它们不是真的，它们只是语言结构的一部分。不能使用它们的任何一个作为常量、类名或函数名。但是它们可以被用作类的属性、常量以及类的方法名，或者接口名和 traits 名，除了 class 不能被用作常量名。

PHP 关键词
__halt_compiler() | abstract | and | array() | as
break | callable | case | catch | class
clone | const | continue | declare | default
die() | do | echo | else | elseif
empty() | enddeclare | endfor | endforeach | endif
endswitch | endwhile | eval() | exit() | extends
final | finally | fn（从 PHP 7.4 开始） | for | foreach
function | global | goto | if | implements
include | include_once | instanceof | insteadof | interface
isset() | list() | match（从 PHP 8.0 开始） | namespace | new
or | print | private | protected | public
readonly（自 PHP 8.1.0 起）* | require | require_once | return | static
switch | throw | trait | try | unset()
use | var | while | xor | yield
yield from |  |  |  |

* readonly 可用作函数名。

编译时常量
__CLASS__ | __DIR__ | __FILE__ | __FUNCTION__ | __LINE__ | __METHOD__
__NAMESPACE__ | __TRAIT__ |  |  |  |

User Contributed Notes

Chocopie 23-Mar-2024 06:27
From php8, reserved keywords such as `Interface` or `Trait` can be used as part of the namespace.

<?php
namespace App\Entity\Interface;

interface FooInterface
{

}

https://wiki.php.net/rfc/namespaced_names_as_token
Johnny D. 22-May-2020 06:37
const FORBIDDEN_TYPES = [
    'null',

    'bool',
    'false',
    'true',

    'int',
    'float',

    'string',
];
Thomas Hansen 15-Aug-2016 10:08
Please note that reserved words are still not allowed to be used as namespace or as part of it:

<?php
namespace MyNameSpace\List;

class Test
{
}
?>

This will fail with a Parse error:  syntax error, unexpected 'List' (T_LIST), expecting identifier (T_STRING)
martindilling at gmail dot com 15-Apr-2013 10:20
RegEx to find all the keywords:

\b(
(a(bstract|nd|rray|s))|
(c(a(llable|se|tch)|l(ass|one)|on(st|tinue)))|
(d(e(clare|fault)|ie|o))|
(e(cho|lse(if)?|mpty|nd(declare|for(each)?|if|switch|while)|val|x(it|tends)))|
(f(inal|or(each)?|unction))|
(g(lobal|oto))|
(i(f|mplements|n(clude(_once)?|st(anceof|eadof)|terface)|sset))|
(n(amespace|ew))|
(p(r(i(nt|vate)|otected)|ublic))|
(re(quire(_once)?|turn))|
(s(tatic|witch))|
(t(hrow|r(ait|y)))|
(u(nset|se))|
(__halt_compiler|break|list|(x)?or|var|while)
)\b
Chris 04-Oct-2012 04:33
Here they are as arrays:

<?php
$keywords = array('__halt_compiler', 'abstract', 'and', 'array', 'as', 'break', 'callable', 'case', 'catch', 'class', 'clone', 'const', 'continue', 'declare', 'default', 'die', 'do', 'echo', 'else', 'elseif', 'empty', 'enddeclare', 'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile', 'eval', 'exit', 'extends', 'final', 'for', 'foreach', 'function', 'global', 'goto', 'if', 'implements', 'include', 'include_once', 'instanceof', 'insteadof', 'interface', 'isset', 'list', 'namespace', 'new', 'or', 'print', 'private', 'protected', 'public', 'require', 'require_once', 'return', 'static', 'switch', 'throw', 'trait', 'try', 'unset', 'use', 'var', 'while', 'xor');

$predefined_constants = array('__CLASS__', '__DIR__', '__FILE__', '__FUNCTION__', '__LINE__', '__METHOD__', '__NAMESPACE__', '__TRAIT__');
?>

Along with get_defined_functions() and get_defined_constants(), this can be useful for checking eval() statements.


预定义类

本节列出标准的预定义类。各种扩展库定义了其它类，其说明在各自的参考文档中。

标准类

这些类由一些内建在 PHP 中的标准函数定义。

Directory
由 dir() 创建。
stdClass
使用类型转换为对象或者各种标准函数创建的通用空类。
__PHP_Incomplete_Class
可能由 unserialize() 创建。
Exception
ErrorException
php_user_filter
Closure
预定义的 final 类 Closure，它可以用于实现 匿名函数。
Generator
预定义的 final 类 Generator，它可以用于实现 生成器。
ArithmeticError
AssertionError
DivisionByZeroError
Error
Throwable
ParseError
TypeError

特殊的类

以下这些标识符由于它们有特殊的用处，因此不可作为类名

self
当前类。
static
运行时的当前类。
parent
父级类。

User Contributed Notes

xzero at elite7hackers dot net 08-Sep-2017 08:37
There comes improved version of amazing snippet posted by (spark at limao dot com dot br)  which allows dynamic methods generations and works as versatile extension of StdClass:

This one is faster, optimised for closures, and will work only with closures. Compatible: >= PHP 5.6
<?php

class Dynamic extends \stdClass
{
    public function __call($key, $params)
    {
        if ( ! isset($this->{$key})) {
            throw new Exception("Call to undefined method " . __CLASS__ . "::" . $key . "()");
        }

        return $this->{$key}->__invoke(... $params);
    }
}

?>

Usage examples:

<?php
$dynamic                = new Dynamic();
$dynamic->anotherMethod = function () {
    echo "Hey there";
};
$dynamic->randomInt     = function ($min, $max) {
    return mt_rand($min, $max); // random_int($min, $max); // <-- PHP7+
};

var_dump(
    $dynamic->randomInt(1, 11),
    $dynamic->anotherMethod()
);
?>

This will accept arrays, strings and Closures but is a bit slower due to call_user_func_array
<?php

class Dynamic extends \stdClass
{
    public function __call($key, $params)
    {
        if ( ! isset($this->{$key})) {
            throw new Exception("Call to undefined method " . __CLASS__ . "::" . $key . "()");
        }

        return call_user_func_array($this->{$key}, $params);
    }
}

?>

Usage examples:
<?php
$dynamic                = new Dynamic();
$dynamic->myMethod      = "thatFunction";
$dynamic->hisMethod     = array($dynamic, "randomInt");
$dynamic->newMethod     = array(SomeClass, "staticMethod");
$dynamic->anotherMethod = function () {
    echo "Hey there";
};
$dynamic->randomInt     = function ($min, $max) {
    return mt_rand($min, $max); // random_int($min, $max); // <-- PHP7+
};

var_dump(
    $dynamic->randomInt(1, 11),
    $dynamic->anotherMethod(),
    $dynamic->hisMethod()
);

?>
xzero at elite7hackers dot net 08-Sep-2017 08:32
There comes improved version of amazing snippet posted by which allows dynamic methods generations and works as versatile extension of StdClass:

This one is faster, optimised for closures, and will work only with closures. Compatible: >= PHP 5.6
<?php

class Dynamic extends \stdClass
{
    public function __call($key, $params)
    {
        if ( ! isset($this->{$key})) {
            throw new Exception("Call to undefined method " . __CLASS__ . "::" . $key . "()");
        }

        return $this->{$key}->__invoke(... $params);
    }
}

?>

Usage examples:

<?php
$dynamic                = new Dynamic();
$dynamic->anotherMethod = function () {
    echo "Hey there";
};
$dynamic->randomInt     = function ($min, $max) {
    return mt_rand($min, $max); // random_int($min, $max); // <-- PHP7+
};

var_dump(
    $dynamic->randomInt(1, 11),
    $dynamic->anotherMethod()
);
?>

This will accept arrays, strings and Closures but is a bit slower due to call_user_func_array
<?php

class Dynamic extends \stdClass
{
    public function __call($key, $params)
    {
        if ( ! isset($this->{$key})) {
            throw new Exception("Call to undefined method " . __CLASS__ . "::" . $key . "()");
        }

        return call_user_func_array($this->{$key}, $params);
    }
}

?>

Usage examples:
<?php
$dynamic                = new Dynamic();
$dynamic->myMethod      = "thatFunction";
$dynamic->hisMethod     = array($dynamic, "randomInt");
$dynamic->newMethod     = array(SomeClass, "staticMethod");
$dynamic->anotherMethod = function () {
    echo "Hey there";
};
$dynamic->randomInt     = function ($min, $max) {
    return mt_rand($min, $max); // random_int($min, $max); // <-- PHP7+
};

var_dump(
    $dynamic->randomInt(1, 11),
    $dynamic->anotherMethod(),
    $dynamic->hisMethod()
);

?>
Ashley Dambra 19-Feb-2014 06:43
Here a simple class that allow to set anonymous function. It's an optimised class of stdClass.

<?php
class stdObject {
    public function __construct(array $arguments = array()) {
        if (!empty($arguments)) {
            foreach ($arguments as $property => $argument) {
                if ($argument instanceOf Closure) {
                    $this->{$property} = $argument;
                } else {
                    $this->{$property} = $argument;
                }
            }
        }
    }

    public function __call($method, $arguments) {
        if (isset($this->{$method}) && is_callable($this->{$method})) {
            return call_user_func_array($this->{$method}, $arguments);
        } else {
            throw new Exception("Fatal error: Call to undefined method stdObject::{$method}()");
        }
    }
}

$person = new stdObject(array(
    "name" => "nick",
    "age" => 23,
    "friends" => array("frank", "sally", "aaron"),
    "sayHi" => function() {
        return "Hello there";
    }
));

$person->sayHi2 = function() {
    return "Hello there 2";
};

$person->test = function() {
    return "test";
};

var_dump($person->name, $person->test(), $person->sayHi2());
?>
wyattstorch42 at outlook dot com 24-Dec-2013 01:15
If you call var_export() on an instance of stdClass, it attempts to export it using ::__set_state(), which, for some reason, is not implemented in stdClass.

However, casting an associative array to an object usually produces the same effect (at least, it does in my case). So I wrote an improved_var_export() function to convert instances of stdClass to (object) array () calls. If you choose to export objects of any other class, I'd advise you to implement ::__set_state().

<?php
/**
 * An implementation of var_export() that is compatible with instances
 * of stdClass.
 * @param mixed $variable The variable you want to export
 * @param bool $return If used and set to true, improved_var_export()
 *     will return the variable representation instead of outputting it.
 * @return mixed|null Returns the variable representation when the
 *     return parameter is used and evaluates to TRUE. Otherwise, this
 *     function will return NULL.
 */
function improved_var_export ($variable, $return = false) {
    if ($variable instanceof stdClass) {
        $result = '(object) '.improved_var_export(get_object_vars($variable), true);
    } else if (is_array($variable)) {
        $array = array ();
        foreach ($variable as $key => $value) {
            $array[] = var_export($key, true).' => '.improved_var_export($value, true);
        }
        $result = 'array ('.implode(', ', $array).')';
    } else {
        $result = var_export($variable, true);
    }

    if (!$return) {
        print $result;
        return null;
    } else {
        return $result;
    }
}

// Example usage:
$obj = new stdClass;
$obj->test = 'abc';
$obj->other = 6.2;
$obj->arr = array (1, 2, 3);

improved_var_export((object) array (
    'prop1' => true,
    'prop2' => $obj,
    'assocArray' => array (
        'apple' => 'good',
        'orange' => 'great'
    )
));

/* Output:
(object) array ('prop1' => true, 'prop2' => (object) array ('test' => 'abc', 'other' => 6.2, 'arr' => array (0 => 1, 1 => 2, 2 => 3)), 'assocArray' => array ('apple' => 'good', 'orange' => 'great'))
*/
?>

Note: This function spits out a single line of code, which is useful to save in a cache file to include/eval. It isn't formatted for readability. If you want to print a readable version for debugging purposes, then I would suggest print_r() or var_dump().
spark at limao dot com dot br 15-Aug-2011 02:21
if you want a Dynamic class you can extend from, add atributes AND methods on the fly you can use this:
<?php
    class Dynamic extends stdClass{
        public function __call($key,$params){
            if(!isset($this->{$key})) throw new Exception("Call to undefined method ".get_class($this)."::".$key."()");
            $subject = $this->{$key};
            call_user_func_array($subject,$params);
        }
    }
?>

this will accept both arrays, strings and Closures:
<?php
    $dynamic->myMethod = "thatFunction";
    $dynamic->hisMethod = array($instance,"aMethod");
    $dynamic->newMethod = array(SomeClass,"staticMethod");
    $dynamic->anotherMethod = function(){
        echo "Hey there";
    };
?>

then call them away =D
Typer85 at gmail dot com 17-Feb-2007 08:58
In response to the note below mine,

This list is not incomplete. Read the Manual folks, its listed there plain and simple:

"This section lists standard predefined classes. Miscellaneous extensions define other classes which are described in their reference."

Depending on what extensions you have, they might define their own classes. This list is just the standard classes as defined by PHP with no regards to extensions.
unknown 23-Jul-2002 10:29
It's handy to have a array of the reserved classes.....
var_dump (get_declared_classes ());


预定义常量

内核预定义常量

这些常量在 PHP 的内核中定义。它包含 PHP、Zend 引擎和 SAPI 模块。

PHP_VERSION (string)
当前 PHP 版本的字符串，"主版本号.子版本号.阶段版本号[扩展信息]"形式。
PHP_MAJOR_VERSION (int)
当前 PHP 版本的主版本号，为整数形式（例如："5.2.7-extra" 版本是 int(5) ）。
PHP_MINOR_VERSION (int)
当前 PHP 版本的子版本号，为整数形式（例如："5.2.7-extra" 版本是 int(2) ）。
PHP_RELEASE_VERSION (int)
当前 PHP 版本的阶段版本号，为整数形式（例如："5.2.7-extra" 版本是 int(7) ）。
PHP_VERSION_ID (int)
当前 PHP 版本的整数，用于版本比较（例如："5.2.7-extra" 版本是 int(50207) ）。
PHP_EXTRA_VERSION (string)
当前 PHP 版本的"扩展信息"信息，为字符串形式（例如："5.2.7-extra" 版本是 '-extra' ）。 通常由发行版供应商用来指示包的版本。
ZEND_THREAD_SAFE (bool)
Indicates whether the current build of PHP is thread safe.
ZEND_DEBUG_BUILD (bool)
表示当前 PHP 版本是否为调试版本。
PHP_ZTS (int)
表示 PHP 的当前版本是否为线程安全版本。
PHP_DEBUG (int)
表示当前 PHP 版本是否为调试版本。
DEBUG_BACKTRACE_PROVIDE_OBJECT (int)
填充 object 的索引。
DEBUG_BACKTRACE_IGNORE_ARGS (int)
不要在堆跟踪中包含函数的参数信息。
PHP_MAXPATHLEN (int)
当前 PHP 版本支持的最大文件名（包括路径）长度。
PHP_OS (string)
运行 PHP 的操作系统。
PHP_OS_FAMILY (string)
运行 PHP 的操作系统家族。 'Windows'、 'BSD'、 'Darwin'、 'Solaris'、 'Linux' 或 'Unknown' 中的一个。 从 PHP 7.2.0 起可用。
PHP_SAPI (string)
运行 PHP 的服务器接口类型（Server API）。参见 php_sapi_name()。
PHP_EOL (string)
当前平台中对于换行符的定义。
PHP_INT_MAX (int)
当前 PHP 版本支持的最大整型数字。在 32 位系统中通常为 int(2147483647)，64 位系统中为 int(9223372036854775807)。
PHP_INT_MIN (int)
当前 PHP 版本支持的最小整型数字。在 32 位系统中通常为 int(-2147483648)，64 系统中为 int(-9223372036854775808)。通常情况下 PHP_INT_MIN === ~PHP_INT_MAX。
PHP_INT_SIZE (int)
当前 PHP 版本的整数大小（以字节为单位）。
PHP_FLOAT_DIG (int)
可以返回四舍五入为浮点数后不会造成精度损失的小数位数。 从 PHP 7.2.0 起可用。
PHP_FLOAT_EPSILON (float)
最小的可表示正数 x，使 x + 1.0 != 1.0。 从 PHP 7.2.0 起可用。
PHP_FLOAT_MIN (float)
最小可表示的正浮点数。 如果你需要最小的可表示负浮点数，可以使用 - PHP_FLOAT_MAX。 从 PHP 7.2.0 起可用。
PHP_FLOAT_MAX (float)
最大的可表示浮点数。 从 PHP 7.2.0 起可用。
DEFAULT_INCLUDE_PATH (string)
PEAR_INSTALL_DIR (string)
PEAR_EXTENSION_DIR (string)
PHP_EXTENSION_DIR (string)
寻找可动态加载扩展的默认目录（除非被 extension_dir覆盖）。 默认为 PHP_PREFIX （在 Windows 上是 PHP_PREFIX . "\\ext"）。
PHP_PREFIX (string)
配置（configure）时设置的 --prefix 值。 在 Windows 上，它是配置（configure）时设置的 --with-prefix 值。
PHP_BINDIR (string)
配置（configure）时设置的 --bindir 值。 在 Windows 上，它是配置（configure）时设置的 --with-prefix 值。
PHP_BINARY (string)
脚本执行期间的 PHP 二进制路径。
PHP_MANDIR (string)
安装手册页的位置。
PHP_LIBDIR (string)
PHP_DATADIR (string)
PHP_SYSCONFDIR (string)
PHP_LOCALSTATEDIR (string)
PHP_CONFIG_FILE_PATH (string)
PHP_CONFIG_FILE_SCAN_DIR (string)
PHP_SHLIB_SUFFIX (string)
构建平台的共享库后缀，例如 "so"（大多数 Unix） 或 "dll"（Windows）。
PHP_FD_SETSIZE (string)
系统调用的文件描述符的最大数目。从 PHP 7.1.0 起可用。
E_ERROR (int)
错误报告常量
E_WARNING (int)
错误报告常量
E_PARSE (int)
错误报告常量
E_NOTICE (int)
错误报告常量
E_CORE_ERROR (int)
错误报告常量
E_CORE_WARNING (int)
错误报告常量
E_COMPILE_ERROR (int)
错误报告常量
E_COMPILE_WARNING (int)
错误报告常量
E_USER_ERROR (int)
错误报告常量
E_USER_WARNING (int)
错误报告常量
E_USER_NOTICE (int)
错误报告常量
E_RECOVERABLE_ERROR (int)
错误报告常量。
E_DEPRECATED (int)
错误报告常量。
E_USER_DEPRECATED (int)
错误报告常量。
E_ALL (int)
错误报告常量
E_STRICT (int)
错误报告常量
__COMPILER_HALT_OFFSET__ (int)
true (bool)
参阅 布尔值。
false (bool)
参阅 布尔值。
null (null)
参阅 Null。
PHP_WINDOWS_EVENT_CTRL_C (int)
Windows CTRL+C 事件。 从 PHP 7.4.0 起可用（仅限 Windows）。
PHP_WINDOWS_EVENT_CTRL_BREAK (int)
Windows CTRL+BREAK 事件。 从 PHP 7.4.0 起可用（仅限 Windows）。
PHP_CLI_PROCESS_TITLE (bool)
表示是否可以设置和获取流程标题。 仅在 CLI SAPI 下可用。
STDERR (resource)
已打开的数据流到 stderr。 仅在 CLI SAPI 下可用。
STDIN (resource)
已打开的数据流到 stdin。 仅在 CLI SAPI 下可用。
STDOUT (resource)
已打开的数据流到 stdout。 仅在 CLI SAPI 下可用。

参见： 魔术常量。

标准预定义常量

核心扩展中的所有常量都默认在 PHP 中定义。

User Contributed Notes

rdcapasso 08-Sep-2013 09:16
Volker's getOS() function needs to have the order of cases changed in the switch statement since "darwin" contains "win", which means that both "windows" and "darwin" will return self::OS_WIN. I've moved the 'dar' case above the 'win' case:

<?php
class System {

    const OS_UNKNOWN = 1;
    const OS_WIN = 2;
    const OS_LINUX = 3;
    const OS_OSX = 4;

    /**
     * @return int
     */
    static public function getOS() {
        switch (true) {
            case stristr(PHP_OS, 'DAR'): return self::OS_OSX;
            case stristr(PHP_OS, 'WIN'): return self::OS_WIN;
            case stristr(PHP_OS, 'LINUX'): return self::OS_LINUX;
            default : return self::OS_UNKNOWN;
        }
    }

}
?>


其他保留字列表

以下关键字不可被用于类名、接口名和trait名，在 PHP 8.0 之前，它们被禁止用于命名空间。

保留字
int | float | bool | string
true | false | null | void（从 PHP 7.1 开始）
iterable（从 PHP 7.1 开始） | object（从 PHP 7.2 开始） | mixed（从 PHP 8.0 开始） | never（从 PHP 8.1 开始）

以下关键词已经被建议保留。尽管你仍然可以将它们用于类名、接口名和 trait 名，但是考虑到在将来的PHP版本中可能会使用，因此非常不推荐去使用它们。

Soft reserved words
enum resource numeric

User Contributed Notes

There are no user contributed notes for this page.


资源类型列表

以下是一个建立，使用和销毁资源的函数列表。可以用 is_resource() 函数测定一个变量是否是资源，函数 get_resource_type() 则返回该资源的类型。

资源类型
资源类型名称 | 建立者 | 使用者 | 销毁者 | 定义
AddressInfo | socket_addrinfo_lookup() | socket_addrinfo_bind(), socket_addrinfo_connect(), socket_addrinfo_explain(), | None | AddressInfo（sockets 扩展）
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Bzip2 文件
cubrid connection | cubrid_connect() cubrid_connect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() | cubrid_close() cubrid_disconnect() | 连接到 CUBRID 数据库
持久化 cubrid 连接 | cubrid_pconnect() cubrid_pconnect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() cubrid_lob2_new() | 持久化连接到 CUBRID 数据库
cubrid request | cubrid_prepare() cubrid_execute() cubrid_query() cubrid_unbuffered_query() | cubrid_bind() cubrid_column_names() cubrid_column_types() cubrid_current_oid() cubrid_execute() cubrid_free_result() cubrid_get_query_timeout() cubrid_move_cursor() cubrid_next_result() cubrid_num_cols() cubrid_num_rows() cubrid_set_query_timeout() cubrid_data_seek() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_field() cubrid_fetch_lengths() cubrid_fetch_object() cubrid_fetch_row() cubrid_field_flags() cubrid_field_len() cubrid_field_name() cubrid_field_seek() cubrid_field_table() cubrid_field_type() cubrid_num_fields() cubrid_result() cubrid_lob2_bind() | cubrid_close_prepare() cubrid_close_request() | CUBRID request
cubrid lob | cubrid_lob_get() | cubrid_lob_export() cubrid_lob_send() cubrid_lob_size() | cubrid_lob_close() | None
cubrid lob2 | cubrid_lob2_new() cubrid_fetch() cubrid_fetch_row() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_object() | cubrid_lob2_export() cubrid_lob2_import() cubrid_lob2_read() cubrid_lob2_write() cubrid_lob2_tell() cubrid_lob2_tell64() cubrid_lob2_seek() cubrid_lob2_seek64() cubrid_lob2_size() cubrid_lob2_size64() | cubrid_lob2_close() | None
curl | curl_copy_handle(), curl_init() | curl_copy_handle(), curl_errno(), curl_error(), curl_exec(), curl_getinfo(), curl_setopt() | curl_close() | cURL handle
curl_multi | curl_multi_init() | curl_multi_errno(), curl_multi_exec(), curl_multi_info_read(), curl_multi_remove_handle(), curl_multi_select(), curl_multi_setopt() | curl_multi_close() | cURL multi handle
curl_share | curl_share_init() | curl_share_errno(), curl_share_setopt() | curl_share_close() | cURL share handle
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Link to DBA database
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | None | Persistent link to DBA database
dbase | dbase_open() | dbase_pack(), dbase_add_record(), dbase_replace_record(), dbase_delete_record(), dbase_get_record(), dbase_get_record_with_names(), dbase_numfields(), dbase_numrecords() | dbase_close() | Link to Dbase database
enchant_broker | enchant_broker_init() | enchant_broker_describe(), enchant_broker_dict_exists(), enchant_broker_get_dict_path(), enchant_broker_get_error(), enchant_broker_list_dicts(), enchant_broker_set_dict_path(), enchant_broker_set_ordering() | enchant_broker_free() | Enchant broker (prior to PHP 8.0.0)
enchant_dict | enchant_broker_request_dict() enchant_broker_request_pwl_dict() | enchant_dict_add_to_personal(), enchant_dict_add_to_session(), enchant_dict_check(), enchant_dict_describe(), enchant_dict_get_error(), enchant_dict_is_in_session(), enchant_dict_store_replacement(), enchant_dict_suggest() | enchant_broker_free_dict() | Enchant dictionary (prior to PHP 8.0.0)
fdf | fdf_open() | fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() | fdf_close() | FDF File
ftp | ftp_connect(), ftp_ssl_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site(), ftp_alloc(), ftp_chmod(), ftp_exec(), ftp_get_option(), ftp_nb_continue(), ftp_nb_fget(), ftp_nb_fput(), ftp_nb_get(), ftp_nb_put(), ftp_raw(), ftp_set_option() | ftp_close() | FTP 连接（PHP 8.1.0 之前）
gd | imagecreate(), imagecreatefromgd(), imagecreatefromgd2(), imagecreatefromgd2part(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatefromxbm(), imagecreatefromxpm(), imagecreatetruecolor(), imagerotate() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagerectangle(), imagerotate(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness(), image2wbmp(), imagealphablending(), imageantialias(), imagecolorallocatealpha(), imagecolorclosesthwb(), imagecolordeallocate(), imagecolormatch(), imagefilter(), imagefttext(), imagegd(), imagegd2(), imageistruecolor(), imagelayereffect(), imagepalettecopy(), imagesavealpha(), imagesetstyle(), imagexbm() | imagedestroy() | GD 图像（PHP 8.0.0 之前）
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | None | GD 字体（PHP 8.1.0 之前）
imap | imap_open() | imap_append(), imap_body(), imap_check(), imap_createmailbox(), imap_delete(), imap_deletemailbox(), imap_expunge(), imap_fetchbody(), imap_fetchstructure(), imap_headerinfo(), imap_header(), imap_headers(), imap_listmailbox(), imap_getmailboxes(), imap_get_quota(), imap_status(), imap_listsubscribed(), imap_set_quota(), imap_set_quota(), imap_getsubscribed(), imap_mail_copy(), imap_mail_move(), imap_num_msg(), imap_num_recent(), imap_ping(), imap_renamemailbox(), imap_reopen(), imap_subscribe(), imap_undelete(), imap_unsubscribe(), imap_scanmailbox(), imap_mailboxmsginfo(), imap_fetchheader(), imap_uid(), imap_msgno(), imap_search(), imap_fetch_overview() | imap_close() | 链接到 IMAP、POP3 服务器（PHP 8.1.0 之前）
interbase blob | ibase_blob_create(), ibase_blob_import(), ibase_blob_open() | ibase_blob_add(), ibase_blob_cancel(), ibase_blob_echo(), ibase_blob_get(), ibase_blob_info() | ibase_blob_close()
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Link to Interbase database
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | None | Persistent link to Interbase database
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Interbase query
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Interbase Result
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Interbase transaction
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | ldap 连接（PHP 8.1.0 之前）
ldap result | ldap_read() | ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() | ldap_free_result() | ldap 搜索结果（PHP 8.1.0 之前）
ldap result entry | ldap result entry（PHP 8.1.0 之前）
mailparse_mail_structure | mailparse_msg_create() mailparse_msg_parse_file() | mailparse_msg_extract_part_file() mailparse_msg_extract_part() mailparse_msg_extract_whole_part_file() mailparse_msg_get_part_data() mailparse_msg_get_part() mailparse_msg_get_structure() mailparse_msg_parse() | mailparse_msg_free()
mysql link | mysql_connect() | mysql_affected_rows(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | Link to MySQL database
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | None | Persistent link to MySQL database
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_processes(), mysql_list_tables(), mysql_query(), mysql_unbuffered_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | MySQL result
oci8 collection | oci_new_collection() | OCICollection::append(), OCICollection::assign(), OCICollection::assignElem(), OCICollection::getElem(), OCICollection::max(), OCICollection::size(), OCICollection::trim() | OCICollection::free() | Oracle Collection
oci8 connection | oci_connect(), oci_pconnect(), oci_new_connect() | oci_commit(), oci_error(), oci_new_cursor(), oci_parse(), oci_password_change(), oci_rollback(), oci_server_version(), oci_set_action(), oci_set_client_identifier(), oci_set_client_info(), oci_set_module_name() | oci_close() | Connection to Oracle Database
oci8 lob | oci_new_descriptor() | OCILob::append(), OCILob::close(), OCILob::eof(), OCILob::erase(), OCILob::export(), OCILob::flush(), OCILob::getBuffering(), OCILob::import(), OCILob::load(), OCILob::read(), OCILob::rewind(), OCILob::save(), OCILob::saveFile(), OCILob::seek(), OCILob::setBuffering(), OCILob::size(), OCILob::tell(), OCILob::truncate(), OCILob::write(), OCILob::writeTemporary(), OCILob::writeToFile(), oci_lob_copy(), oci_lob_is_equal() | OCILob::free() | Oracle large objects
oci8 statement | oci_parse(), oci_new_cursor() | oci_bind_array_by_name(), oci_bind_by_name(), oci_cancel(), oci_define_by_name(), oci_error() oci_execute(), oci_fetch_all(), oci_fetch_array(), oci_fetch_assoc(), oci_fetch_object(), oci_fetch_row(), oci_fetch(), oci_field_is_null(), oci_field_name(), oci_field_precision(), oci_field_scale(), oci_field_size(), oci_field_type_raw(), oci_field_type(), oci_num_fields(), oci_num_rows(), oci_result(), oci_set_prefetch(), oci_statement_type() | oci_free_statement() | Oracle cursor
odbc link | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | odbc_close() | Link to ODBC database
odbc link persistent | odbc_pconnect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | None | Persistent link to ODBC database
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | ODBC result
birdstep link | Link to Birdstep database (prior to PHP 7.3.0)
birdstep result | Birdstep result (prior to PHP 7.3.0)
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | OpenSSL key
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Public Key
pgsql large object | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | PostgreSQL Large Object（PHP 8.1.0 之前）
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_meta_data(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | 链接到 PostgreSQL 数据库（PHP 8.1.0 之前）
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_meta_data(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | None | Persistent link to PostgreSQL database
pgsql result | pg_execute(), pg_query(), pg_query_params(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | PostgreSQL result（PHP 8.1.0 之前）
pgsql string
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | None | pspell dictionary（PHP 8.1.0 之前）
pspell config | pspell_config_create() | pspell_new_config() | None | pspell 配置（PHP 8.1.0 之前）
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close() | Shared memory block handle (prior to PHP 8.0.0)
Socket | socket_accept(), socket_addrinfo_bind(), socket_addrinfo_connect(), socket_create(), socket_create_listen(), socket_import_stream(), socket_wsaprotocol_info_import() | socket_accept(), socket_bind(), socket_clear_error(), socket_connect(), socket_get_option(), socket_getpeername(), socket_getsockname(), socket_last_error(), socket_listen(), socket_read(), socket_recv(), socket_recvfrom(), socket_recvmsg(), socket_select(), socket_send(), socket_sendmsg(), socket_sendto(), socket_set_block(), socket_set_nonblock(), socket_set_option(), socket_shutdown(), socket_write(), socket_wsaprotocol_info_export(), socket_wsaprotocol_info_release() | socket_close() | Socket (sockets extension)
stream | opendir() | readdir(), rewinddir() | closedir() | Dir handle
stream | fopen(), tmpfile() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | File handle
stream | popen(), fsockopen(), pfsockopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Process handle
socket | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket handle
SSH2 Session | ssh2_connect() | ssh2_disconnect()
SSH2 Listener | ssh2_forward_listen()
SSH2 SFTP | ssh2_sftp()
SSH2 Publickey Subsystem | ssh2_publickey_init()
sysvmsg queue | msg_get_queue() | msg_queue_exists(), msg_receive(), msg_send(), msg_set_queue(), msg_stat_queue() | msg_remove_queue() | System V 信号队列（PHP 8.0.0 之前）
sysvsem | sem_get() | sem_acquire() | sem_release() | System V 信号量（PHP 8.0.0 之前）
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | System V 共享内存（PHP 8.0.0 之前）
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | WDDX packet
xml | xml_parser_create(), xml_parser_create_ns() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | XML parser (prior to PHP 8.0.0)
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | gz-compressed file
zlib.deflate | deflate_init() | deflate_add() | None | incremental deflate context (prior to PHP 8.0.0)
zlib.inflate | inflate_init() | inflate_add(), inflate_get_read_len(), inflate_get_status() | None | incremental inflate context (prior to PHP 8.0.0)

User Contributed Notes

Anonymous 28-Jul-2023 12:19
Resource of type "process" is returned by proc_open() and used by proc_close()


可用过滤器列表

Table of Contents

  • 字符串过滤器
  • 转换过滤器
  • 压缩过滤器
  • 加密过滤器

下面列出了用在 stream_filter_append() 中的几个内置的流过滤器。用户的 PHP 版本中的过滤器也许比这里列出的更多（或更少）。

值得指出 stream_filter_append() 与 stream_filter_prepend() 之间有少许不平衡。每个 PHP 流都含有一个小的读取缓冲区，它存储了来自文件系统或其它资源的几段数据以便更有效率地处理。数据一从资源进入流的内部缓冲区，立刻被附上的过滤器处理而不管 PHP 程序是否真的已经准备好接收数据。当过滤器是 appended 时如果数据等待在读取缓冲区，数据将被立即通过过滤器处理，使其效果看上去是透明的。然而当过滤器是 prepended 时如果数据等待在读取缓冲区，数据将不会被该过滤器处理。该数据将会等到从资源取得下一段数据后才会被处理。

用 stream_get_filters() 来列出 PHP 中已安装的过滤器。

User Contributed Notes

There are no user contributed notes for this page.


字符串过滤器

每个过滤器都正如其名字暗示的那样工作并与内置的 PHP 字符串函数的行为相对应。对于指定过滤器的更多信息，请参考该函数的手册页。

string.rot13

使用该过滤器也就是用 str_rot13() 函数处理所有的流数据。

Example #1 string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* 输出： Guvf vf n grfg. */
?>

string.toupper

使用此过滤器等同于用 strtoupper() 函数处理所有的流数据。

Example #2 string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "This is a test.\n");
/* 输出： THIS IS A TEST. */
?>

string.tolower

使用此过滤器等同于用 strtolower() 函数处理所有的流数据。

Example #3 string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "This is a test.\n");
/* 输出： this is a test. */
?>

string.strip_tags

使用此过滤器等同于用 strip_tags() 函数处理所有的流数据。可以用两种格式接收参数：一种是和 strip_tags() 函数第二个参数相似的一个包含有标记列表的字符串，一种是一个包含有标记名的数组。

Warning

本特性已自 PHP 7.3.0 起废弃。强烈建议不要使用本特性。

Example #4 string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* 输出： bolded text enlarged to a level 1 heading */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* 输出： bolded text enlarged to a level 1 heading */
?>

User Contributed Notes

There are no user contributed notes for this page.


转换过滤器

如同 string.* 过滤器，convert.* 过滤器的作用就和其名字一样。对于指定过滤器的更多信息，请参考该函数的手册页。

convert.base64-encode 和 convert.base64-decode

使用这两个过滤器等同于分别用 base64_encode() 和 base64_decode() 函数处理所有的流数据。convert.base64-encode 支持以一个关联数组给出的参数。如果给出了 line-length，base64 输出将被用 line-length 个字符为长度而截成块。如果给出了 line-break-chars，每块将被用给出的字符隔开。这些参数的效果和用 base64_encode() 再加上 chunk_split() 相同。

Example #1 convert.base64-encode & convert.base64-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* 输出： VGhpcyBpcyBhIHRlc3QuCg== */

$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "This is a test.\n");
fclose($fp);
/* 输出： VGhpcyBp
： cyBhIHRl
： c3QuCg== */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* 输出： This is a test. */
?>

convert.quoted-printable-encode 和 convert.quoted-printable-decode

使用此过滤器的 decode 版本等同于用 quoted_printable_decode() 函数处理所有的流数据。没有和 convert.quoted-printable-encode 相对应的函数。convert.quoted-printable-encode 支持以一个关联数组给出的参数。除了支持和 convert.base64-encode 一样的附加参数外，convert.quoted-printable-encode 还支持布尔参数 binary 和 force-encode-first。convert.base64-decode 只支持 line-break-chars 参数作为从编码载荷中剥离的类型提示。

Example #2 convert.quoted-printable-encode & convert.quoted-printable-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* 输出： =This is a test.=0A */
?>

convert.iconv.*

在激活 iconv 的前提下可以使用 convert.iconv.* 压缩过滤器， 等同于用 iconv() 处理所有的流数据。 该过滤器不支持参数，但可使用输入/输出的编码名称，组成过滤器名称，比如 convert.iconv.<input-encoding>.<output-encoding> 或 convert.iconv.<input-encoding>/<output-encoding> （两种写法的语义都相同）。

Example #3 convert.iconv.*

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.iconv.utf-16le.utf-8');
fwrite($fp, "T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.\0\n\0");
fclose($fp);
/* 输出：This is a test. */
?>

User Contributed Notes

marcus at synchromedia dot co dot uk 10-May-2022 09:50
It's not quite obvious what all the available parameters are for convert.quoted-printable-encode. If you want the stream filter to act the same way as the quoted_printable_encode function, you need these extra params, for example:

stream_filter_append(
    STDOUT,
    'convert.quoted-printable-encode',
    STREAM_FILTER_WRITE,
    [
        'line-break-chars' => PHP_EOL,
        'line-length' => 75,
    ]
);
echo stream_copy_to_stream(STDIN, STDOUT);

Without these extra params set, you may get no wrapping at all, or wrapping using the wrong line break sequence.


压缩过滤器

虽然 压缩封装协议 提供了在本地文件系统中创建 gzip 和 bz2 兼容文件的方法，但不代表可以在网络的流中提供通用压缩的意思，也不代表可以将一个非压缩的流转换成一个压缩流。对此，压缩过滤器可以在任何时候应用于任何流资源。

Note: 压缩过滤器不产生命令行工具如 gzip 的头和尾信息。只是压缩和解压数据流中的有效载荷部分。

zlib.deflate 和 zlib.inflate

zlib.deflate（压缩）和 zlib.inflate（解压）实现了定义与 » RFC 1951 的压缩算法。 deflate 过滤器可以接受以一个关联数组传递的最多三个参数。 level定义了压缩强度（1-9）。 数字更高通常会产生更小的载荷，但要消耗更多的处理时间。 存在两个特殊压缩等级：0（完全不压缩）和 -1（zlib 内部默认值，目前是 6）。 window是压缩回溯窗口大小，以二的次方表示。 更高的值（大到 15 —— 32768 字节）产生更好的压缩效果但消耗更多内存， 低的值（低到 9 —— 512 字节）产生产生较差的压缩效果但内存消耗低。 目前默认的 window 大小是 15。 memory用来指示要分配多少工作内存。 合法的数值范围是从 1（最小分配）到 9（最大分配）。 内存分配仅影响速度，不会影响生成的载荷的大小。

Note: 因为最常用的参数是压缩等级，也可以提供一个整数值作为此参数（而不用数组）。

在激活 zlib 的前提下可以使用 zlib.* 压缩过滤器。

Example #1 zlib.deflate 和 zlib.inflate

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";
echo "The original text was:\n";
/* 使用 readfile 和 zlib.inflate 即时解压缩 */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* 生成的输出：

The original text is 70 characters long.
The compressed file is 56 bytes long.
The original text was:
This is a test.
This is only a test.
This is not an important string.

*/
?>

Example #2 zlib.deflate 简单参数用法

<?php
$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
/* 这里的 "6" 代表压缩级别为 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";

/* 生成的输出：

The original text is 70 characters long.
The compressed file is 56 bytes long.

*/
?>

bzip2.compress 和 bzip2.decompress

bzip2.compress 和 bzip2.decompress 工作的方式与上面讲的 zlib 过滤器相同。 bzip2.compress 过滤器接受以一个关联数组给出的最多两个参数： blocks 是从 1 到 9 的整数值，指定分配多少个 100K 字节的内存块作为工作区。 work 是 0 到 250 的整数值，指定在退回到一个慢一些， 但更可靠的算法之前做多少次常规压缩算法的尝试。调整此参数仅影响到速度， 压缩输出和内存使用都不受此设置的影响。将此参数设为 0 指示 bzip 库使用内部默认算法。 bzip2.decompress 过滤器仅接受一个参数，可以用普通的布尔值传递， 或者用一个关联数组中的 small 单元传递。 当 small 设为 &true; 值时，指示 bzip 库用最小的内存占用来执行解压缩， 代价是速度会慢一些。

在激活 bz2 支持的前提下可以使用 bzip2.* 压缩过滤器。

Example #3 bzip2.compress 和 bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "The original file is " . filesize('LICENSE') . " bytes long.\n";

$fp = fopen('LICENSE.compressed', 'w');
stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
fwrite($fp, file_get_contents('LICENSE'));
fclose($fp);

echo "The compressed file is " . filesize('LICENSE.compressed') . " bytes long.\n";

/* 生成的输出：

The original file is 3288 bytes long.
The compressed file is 1488 bytes long.

*/
?>

User Contributed Notes

TingSong 20-Feb-2023 03:43
To decompress a gzipped stream:

<?php
$stream = fopen('https://example.com/some/file.txt.gz', 'rb');
stream_filter_append($stream, 'zlib.inflate', STREAM_FILTER_READ, ['window' => 15+16]);

// read the decompressed line directly
$line = fgets($stream);

// process the lines
?>

As the doc of zlib https://www.zlib.net/manual.html#Advanced

The 'window' parameter between 8 and 15 specified the window size from 2? to 21? bytes. It can be added by 16 for wrapping with gzip header and trailer instead of zlib wrapper.

And, window could be -8..-15 for unwrapping RAW deflate data.
Anonymous 10-Feb-2021 06:37
To use the zlib.inflate filter with data originally written using gzcompress() or zlib.deflate, set the window option to 15 as outlined here: https://bugs.php.net/bug.php?id=68556

<?php
$fh = fopen(file_name, 'rb');
stream_filter_append($fh, 'zlib.inflate', STREAM_FILTER_READ, ['window' => 15]);
$contents = stream_get_contents($fh);
fclose($fh);
bohwaz 08-Jul-2018 01:39
Please note that there is currently a bug in this feature. ftell(), fseek() and fstat() functions cannot be used. Writing to a stream after using this function will not change the stream position as it should.

See bug: https://bugs.php.net/bug.php?id=49874

Also the zlib filters don't work with php://temp, php://memory and php://input streams, nothing is outputted to those streams.
Anonymous 21-Aug-2015 06:12
To read a gzip encoded stream from http
<?php
$opts = [
    "http" => [
        "method" => "GET",
        "header" => [ "Accept-Encoding: gzip" ],
    ]
];
$ctx = stream_context_create($opts);
$f = fopen("http://php.net", "r", false, $ctx);
// check  stream_get_meta_data($f)["wrapper_data"] has "Content-Encoding: gzip"
stream_filter_append($f, "zlib.inflate", STREAM_FILTER_READ, ["window" => 30]);
echo stream_get_contents($f); // any stream processing
fclose($f);


加密过滤器

加密过滤器特别适用于文件/数据流的加密。

mcrypt.* 和 mdecrypt.*

Warning

本特性已自 PHP 7.1.0 起废弃。强烈建议不要使用本特性。

mcrypt.* 和 mdecrypt.* 使用 libmcrypt 提供了对称的加密和解密。这两组过滤器都支持 mcrypt 扩展库中相同的算法，格式为 mcrypt.ciphername，其中 ciphername 是密码的名字，将被传递给 mcrypt_module_open()。有以下五个过滤器参数可用：

mcrypt 过滤器参数
参数 | 是否必须 | 默认值 | 取值举例
mode | 可选 | cbc | cbc、cfb、ecb、nofb、ofb、stream
algorithms_dir | 可选 | ini_get('mcrypt.algorithms_dir') | algorithms 模块的目录
modes_dir | 可选 | ini_get('mcrypt.modes_dir') | modes 模块的目录
iv | 必须 | N/A | 典型为 8、16 或 32 字节的二进制数据。根据密码而定
key | 必须 | N/A | 典型为 8、16 或 32 字节的二进制数据。根据密码而定

Example #1 用 Blowfish 算法加解密

<?php
// 假设之前已经生成了 $key
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM);
$fp = fopen('encrypted-file.enc', 'wb');
fwrite($fp, $iv);
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key);
stream_filter_append($fp, 'mcrypt.blowfish', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'message to encrypt');
fclose($fp);

// 解密
$fp = fopen('encrypted-file.enc', 'rb');
$iv = fread($fp, $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC));
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key)
stream_filter_append($fp, 'mdecrypt.blowfish', STREAM_FILTER_READ, $opts);
$data = rtrim(stream_get_contents($fp));//trims off null padding
fclose($fp);
echo $data;
?>

Example #2 将文件以 SHA256 HMAC 的 AES-128 CBC 加密

<?php
AES_CBC::encryptFile($password, "plaintext.txt", "encrypted.enc");
AES_CBC::decryptFile($password, "encrypted.enc", "decrypted.txt");

class AES_CBC
{
protected static $KEY_SIZES = array('AES-128'=>16,'AES-192'=>24,'AES-256'=>32);
protected static function key_size() { return self::$KEY_SIZES['AES-128']; } //default AES-128
public static function encryptFile($password, $input_stream, $aes_filename){
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$fin = fopen($input_stream, "rb");
$fc = fopen($aes_filename, "wb+");
if (!empty($fin) && !empty($fc)) {
fwrite($fc, str_repeat("_", 32) );//placeholder, SHA256 HMAC will go here later
fwrite($fc, $hmac_salt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
fwrite($fc, $esalt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
fwrite($fc, $iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
$ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
$opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
stream_filter_append($fc, 'mcrypt.rijndael-128', STREAM_FILTER_WRITE, $opts);
$infilesize = 0;
while (!feof($fin)) {
$block = fread($fin, 8192);
$infilesize+=strlen($block);
fwrite($fc, $block);
}
$block_size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$padding = $block_size - ($infilesize % $block_size);//$padding is a number from 1-16
fwrite($fc, str_repeat(chr($padding), $padding) );//perform PKCS7 padding
fclose($fin);
fclose($fc);
$hmac_raw = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
$fc = fopen($aes_filename, "rb+");
fwrite($fc, $hmac_raw);//overwrite placeholder
fclose($fc);
}
}
public static function decryptFile($password, $aes_filename, $out_stream) {
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$hmac_raw = file_get_contents($aes_filename, false, NULL, 0, 32);
$hmac_salt = file_get_contents($aes_filename, false, NULL, 32, $iv_size);
$hmac_calc = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
$fc = fopen($aes_filename, "rb");
$fout = fopen($out_stream, 'wb');
if (!empty($fout) && !empty($fc) && self::hash_equals($hmac_raw,$hmac_calc)) {
fread($fc, 32+$iv_size);//skip sha256 hmac and salt
$esalt = fread($fc, $iv_size);
$iv = fread($fc, $iv_size);
$ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
$opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
stream_filter_append($fc, 'mdecrypt.rijndael-128', STREAM_FILTER_READ, $opts);
while (!feof($fc)) {
$block = fread($fc, 8192);
if (feof($fc)) {
$padding = ord($block[strlen($block) - 1]);//assume PKCS7 padding
$block = substr($block, 0, 0-$padding);
}
fwrite($fout, $block);
}
fclose($fout);
fclose($fc);
}
}
private static function hash_equals($str1, $str2) {
if(strlen($str1) == strlen($str2)) {
$res = $str1 ^ $str2;
for($ret=0,$i = strlen($res) - 1; $i >= 0; $i--) $ret |= ord($res[$i]);
return !$ret;
}
return false;
}
private static function calculate_hmac_after_32bytes($password, $hsalt, $filename) {
static $init=0;
$init or $init = stream_filter_register("user-filter.skipfirst32bytes", "FileSkip32Bytes");
$stream = 'php://filter/read=user-filter.skipfirst32bytes/resource=' . $filename;
$hkey = hash_pbkdf2("sha256", $password, $hsalt, $iterations=1000, 24, $raw=true);
return hash_hmac_file('sha256', $stream, $hkey, $raw=true);
}
}
class FileSkip32Bytes extends php_user_filter
{
private $skipped=0;
function filter($in, $out, &$consumed, $closing) {
while ($bucket = stream_bucket_make_writeable($in)) {
$outlen = $bucket->datalen;
if ($this->skipped<32){
$outlen = min($bucket->datalen,32-$this->skipped);
$bucket->data = substr($bucket->data, $outlen);
$bucket->datalen = $bucket->datalen-$outlen;
$this->skipped+=$outlen;
}
$consumed += $outlen;
stream_bucket_append($out, $bucket);
}
return PSFS_PASS_ON;
}
}
class AES_128_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-128']; }
}
class AES_192_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-192']; }
}
class AES_256_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-256']; }
}

User Contributed Notes

Maarten Bodewes 06-Aug-2017 12:21
The examples on this page should be destroyed with utmost urgency.

Strangely most people will fall over the use of generating the IV and 3DES key using MD5, a weak hash function, e.g. the previous note and CryptoFails blog.

http://www.cryptofails.com/post/70059608390/php-documentation-woes

A password based key derivation function should be used (bcrypt, PBKDF2).

However the use of MD-5 for key derivation however isn't that bad and if the password is strong enough (it usually isn't) then the generated DES ABC key is strong enough even now.

Using an identical IV for each password means that this function directly leaks information about the encrypted file. If the start of two encrypted files is identical then this function will directly leak information. For instance, if the routine encrypts multiple images then the JPEG header would be easily distinguished.

All in all these examples use deprecated routines (mcrypt), deprecated cryptographic functions (MD5 / DES) and then incorrectly perform the actual encryption. Enough reason to destroy them in the first place.
Uwe Ohse 22-Feb-2017 04:17
1) The mcrypt module has been deprecated with PHP 7.1.
What does that mean for the encryption filters?

2) deriving the IV from the secret passphrase seems wrong. This leaks information about the passphrase without need.

3) using md5() for this? Really? hash() has been available since PHP 5.1.2.

4) hashing the passphrase twice does not add any security.

5) using substr() on binary data (why, oh why, is true passed to md5()?) might lead to headaches if mbstring.func_overload is used.


所支持的套接字传输器列表

Table of Contents

  • Internet 域：TCP，UDP，SSL 和 TLS
  • Unix 域：Unix 和 UDG

以下是 PHP 内置用于基于流的套接字函数例如 fsockopen() 和 stream_socket_client() 的各种 URL 风格的套接字传输器。这些传输器不适用于 Socket 扩展库的Socket 函数。

要得到自己的 PHP 版本中所安装的传输器列表，使用 stream_get_transports()。

User Contributed Notes

alefinvest at outlook dot com 06-Aug-2021 06:47
That was hard to fetch this page mentioned in note by other user long time ago.
I intended to read Appendix P to find some code examples.
Wondering how to implement custom transport extension for php on our server tto be used with some nowadays technologies research.
https://www.php.net/manual/ru/function.stream-context-create.php#75211


Internet 域：TCP，UDP，SSL 和 TLS

ssl://、tls://、sslv2:// & sslv3://。

Note: 如果没有指定传输器，则假设是 tcp://。

  • 127.0.0.1
  • fe80::1
  • www.example.com
  • tcp://127.0.0.1
  • tcp://fe80::1
  • tcp://www.example.com
  • udp://www.example.com
  • ssl://www.example.com
  • sslv2://www.example.com
  • sslv3://www.example.com
  • tls://www.example.com

Internet 域套接字在目标地址中还期望有一个端口号。在 fsockopen() 中在第二个参数中指定，这样就不会影响传输器的 URL。然而在 stream_socket_client() 和相关的函数中是用传统的 URL，端口号在传输器 URL 后面以冒号分隔而指定。

  • tcp://127.0.0.1:80
  • tcp://[fe80::1]:80
  • tcp://www.example.com:80

Note: 带端口号的 IPv6 数字地址
在上面的第二个例子中，IPv4 和主机名的例子只加了一个冒号和端口号，但 IPv6 的地址被放在方括号中： [fe80::1]。这是为了将 IPv6 地址中的冒号和用来分隔端口号的冒号区别开来。

ssl:// 和 tls:// 传输器（仅在 openssl 支持已编译入 PHP 后可用）是 tcp:// 传输器加入 SSL 加密后的扩展。

ssl:// 将根据远程服务器的兼容性和参数设置尝试与之建立 SSL V2 或 SSL V3 链接 sslv2:// 和 sslv3:// 将明确的选择 SSL V2 或 SSL V3 协议进行连接。

User Contributed Notes

christian at lantian dot eu 17-Sep-2013 12:46
@pablo dot livardo  :  I think that the problem you found is caused by the difference between the client/server encryption methods used.

The 465 port is used for SMTPS, and the server starts the encryption immediately it receives your connection. So, your code will work.

The 587 port is used for Submission (MSA or Mail Submission Agent) which works like the port 25. The server accepts your connection and doesn't activate the encryption. If you want an encrypted connection on the port 587, you must connect on it without encryption, you must start to dialog with the server (with EHLO) and after that you must ask the server to start the encrypted connection using the STARTTLS command. The server starts the encryption and now you can start as well the encryption on your client.

So, in few words, you can not use :

<?php $fp = fsockopen("tls://mail.example.com", 587, $errno, $errstr);  ?>

but you can use:

 <?php $fp = stream_socket_client("mail.example.com:587", $errno, $errstr); ?>

and after you send the STARTTLS command, you can enable the crypto:

<?php stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT); ?>

P.S. My previous note on this page was totally wrong, so I ask the php.net admin to remove it.

:)
christian at lantian dot eu 16-Sep-2013 08:17
@pablo dot livardo  :  I think that the problem you found is caused by the difference between the client/server encryption methods used.

You tried to access the port 587 using TLS encryption, but the server uses the SSLv3 encryption on this port.

You can communicate with the Google server on port 465 because on this port the communication is encrypted using TLS and your client is configured to recognize the TLS.

So, if you want to connect on the Google server over the port 587, you simply must write:

<?php
$fp = fsockopen("ssl://mail.example.com", 587, $errno, $errstr);
?>

instead of:

<?php
$fp = fsockopen("tls://mail.example.com", 587, $errno, $errstr);
?>

:)
stefan at example dot com 20-Aug-2010 05:42
Actually, PHP is very able to start with an unencrypted connection and then switch to an encrypted one - refer to http://php.net/stream_socket_enable_crypto .
pablo dot livardo at gmail dot com 09-Dec-2009 09:56
I've been having a problem with a TLS connection.

<?php
$fp = fsockopen("tls://mail.example.com", 587, $errno, $errstr);
?>

Which gives me an error of:

SSL operation failed with code 1. OpenSSL Error messages: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

I believe this is caused by PHP not being able to start with an unencrypted connection and then switch to encryption even though the functionality is built into OpenSSL.

For Google Mail users you can avoid this by using port 465 instead of 587.


Unix 域：Unix 和 UDG

unix:// 和 udg://。

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix:// 提供了在 Unix 域中对套接字流连接的访问。 udg:// 提供了替代的传输器以用户数据报协议（UDP）来访问 Unix 域套接字。

Unix 域套接字和 Internet 域套接字不同，不需要端口号。在 fsockopen() 中 portno 参数应被设为 0。

Note: Windows 不支持 Unix 域套接字。

User Contributed Notes

Matthew Fortune 16-Feb-2007 03:03
It appears that fsockopen prior to php5 did not need the unix:// qualifier when opening a unix domain socket:

php4: fsockopen("/tmp/mysocket"......);

php5: fsockopen("unix:///tmp/mysocket"......);

This caught me out when upgrading.


PHP 类型比较表

以下的表格显示了 PHP 类型 和 比较运算符 在松散和严格比较时的作用。该补充材料还和 类型戏法 的相关章节内容有关。同时，大量的用户注释和 » BlueShoes 的工作也给该材料提供了帮助。

在使用这些表格之前，需要明白变量类型及它们的意义。例如，"42" 是一个字符串而 42 是一个整数。false 是一个布尔值而 "false" 是一个字符串。

Note:

HTML 表单并不传递整数、浮点数或者布尔值，它们只传递字符串。要想检测一个字符串是不是数字，可以使用 is_numeric() 函数。

Note:

在没有定义变量 $x 的时候，诸如 if ($x) 的用法会导致一个 E_NOTICE 级别的错误。所以，可以考虑用 empty() 或者 isset() 函数来初始化变量。

Note:

某些数值操作会导致一个特殊值，可以用常量 NAN 表示。 无论是松散还是严格比较，这个值和其他任意值（包括它自身，但排除 true）比较时都会产生 false 的结果， 例如 NAN != NAN 和 NAN !== NAN。 导致 NAN 的操作例子包括 sqrt(-1)、asin(2)、 acosh(0)。

使用 PHP 函数对变量 $x 进行比较
表达式 | gettype() | empty() | is_null() | isset() | boolean : if($x)
$x = ""; | string | true | false | true | false
$x = null; | NULL | true | true | false | false
var $x; | NULL | true | true | false | false
$x is undefined | NULL | true | true | false | false
$x = []; | array | true | false | true | false
$x = ['a', 'b']; | array | false | false | true | true
$x = false; | boolean | true | false | true | false
$x = true; | boolean | false | false | true | true
$x = 1; | integer | false | false | true | true
$x = 42; | integer | false | false | true | true
$x = 0; | integer | true | false | true | false
$x = -1; | integer | false | false | true | true
$x = "1"; | string | false | false | true | true
$x = "0"; | string | true | false | true | false
$x = "-1"; | string | false | false | true | true
$x = "php"; | string | false | false | true | true
$x = "true"; | string | false | false | true | true
$x = "false"; | string | false | false | true | true

松散比较 ==
 | true | false | 1 | 0 | -1 | "1" | "0" | "-1" | null | [] | "php" | ""
true | true | false | true | false | true | true | false | true | false | false | true | false
false | false | true | false | true | false | false | true | false | true | true | false | true
1 | true | false | true | false | false | true | false | false | false | false | false | false
0 | false | true | false | true | false | false | true | false | true | false | false* | false*
-1 | true | false | false | false | true | false | false | true | false | false | false | false
"1" | true | false | true | false | false | true | false | false | false | false | false | false
"0" | false | true | false | true | false | false | true | false | false | false | false | false
"-1" | true | false | false | false | true | false | false | true | false | false | false | false
null | false | true | false | true | false | false | false | false | true | true | false | true
[] | false | true | false | false | false | false | false | false | true | true | false | false
"php" | true | false | false | false* | false | false | false | false | false | false | true | false
"" | false | true | false | false* | false | false | false | false | true | false | false | true
* 代表在 PHP 8.0.0 之前为 true。

严格比较 ===
 | true | false | 1 | 0 | -1 | "1" | "0" | "-1" | null | [] | "php" | ""
true | true | false | false | false | false | false | false | false | false | false | false | false
false | false | true | false | false | false | false | false | false | false | false | false | false
1 | false | false | true | false | false | false | false | false | false | false | false | false
0 | false | false | false | true | false | false | false | false | false | false | false | false
-1 | false | false | false | false | true | false | false | false | false | false | false | false
"1" | false | false | false | false | false | true | false | false | false | false | false | false
"0" | false | false | false | false | false | false | true | false | false | false | false | false
"-1" | false | false | false | false | false | false | false | true | false | false | false | false
null | false | false | false | false | false | false | false | false | true | false | false | false
[] | false | false | false | false | false | false | false | false | false | true | false | false
"php" | false | false | false | false | false | false | false | false | false | false | true | false
"" | false | false | false | false | false | false | false | false | false | false | false | true

User Contributed Notes

Jeroen 14-Jul-2023 04:26
Be aware of the difference between checking the *value* of an array item, and checking the *existence* of an array item:
<?php
$arr = [
  'x' => 0,
  'y' => null,
];

isset($arr['x']); // true, same as isset(0)
isset($arr['y']); // false, same as isset(null)

array_key_exists('y', $arr); // true, though the value is null
array_key_exists('z', $arr); // false
mark at theanti dot social 29-Mar-2018 08:59
There is also 0.0 which is not identical to 0.

  $x = 0.0;
  gettype($x); // double
  empty($x); // true
  is_null($x); //false
  isset($x); // true
  is_numeric($x); // true
  $x ? true : false; // false
  $x == 0; // true
  $x == "0"; // true
  $x == "0.0"; // true
  $x == false; // true
  $x == null; // true
  $x === 0; // false
  $x === false; // false
  $x === null; // false
  $x === "0"; // false
  $x === "0.0"; // false
blue dot hirano at gmail dot com 07-Sep-2014 02:29
The truth tables really ought to be colorized; they're very hard to read as they are right now (just big arrays of TRUE and FALSE).

Also, something to consider: clustering the values which compare similarly (like is done on qntm.org/equality) would make the table easier to read as well. (This can be done simply by hand by rearranging the order of headings to bring related values closer together).
php at benizi dot com 15-Feb-2010 10:31
It's interesting to note that 'empty()' and 'boolean : if($x)'
are paired as logical opposites, as are 'is_null()' and 'isset()'.
edgar at goodforall dot eu 15-Dec-2009 06:55
Some function to write out your own comparisson table in tsv format. Can be easily modified to add more testcases and/or binary functions. It will test all comparables against each other with all functions.

<?php
$funcs = array(
        /* Testing equality */
        'eq' => '==',
        'ne' => '!=',
        'gt' => '>',
        'lt' => '<',
        'ne2' => '<>',
        'lte' => '<=',
        'gte' => '>=',
        /* Testing identity */
        'id' => '===',
        'nid' => '!=='
);
class Test {
        protected $a;
        public $b;
        public function __construct($a,$b){
                $this->a = $a;
                $this->b = $b;
        }
        public function getab(){
                return $this->a.",". $this->b;
        }

}
$tst1 = new Test(1,2);
$tst2 = new Test(1,2);
$tst3 = new Test(2,2);
$tst4 = new Test(1,1);

$arr1 = array(1,2,3);
$arr2 = array(2,3,4);
$arr3 = array('a','b','c','d');
$arr4 = array('a','b','c');
$arr5 = array();

$comp1 = array(
        'ints' => array(-1,0,1,2),
        'floats' => array(-1.1,0.0,1.1,2.0),
        'string' => array('str', 'str1', '', '1'),
        'bools' => array(true, false),
        'null' => array(null),
        'objects' => array($tst1,$tst2,$tst3,$tst4),
        'arrays' => array($arr1, $arr2, $arr3, $arr4, $arr5)
);
$fbody = array();

foreach($funcs as $name => $op){
        $fbody[$name] = create_function('$a,$b', 'return $a ' . $op . ' $b;');
}

$table = array(array('function', 'comp1', 'comp2', 'f comp1 comp2', 'type'));
/* Do comparisons */
$comp2  = array();
foreach($comp1 as $type => $val){
        $comp2[$type] = $val;
}

foreach($comp1 as $key1 => $val1){
        foreach($comp2 as $key2 => $val2){
                addTableEntry($key1, $key2, $val1, $val2);
        }
}
$out = '';
foreach($table as $row){
        $out .= sprintf("%-20s\t%-20s\t%-20s\t%-20s\t%-20s\n", $row[0], $row[1], $row[2], $row[3], $row[4]);
}

print $out;
exit;

function addTableEntry($n1, $n2, $comp1, $comp2){
        global $table, $fbody;
        foreach($fbody as $fname => $func){
                        foreach($comp1 as $val1){
  foreach($comp2 as $val2){
                                        $val = $func($val1,$val2);
                                                $table[] = array($fname, gettype($val1) . ' => ' . sprintval($val1), gettype($val2) .' => ' . sprintval($val2), gettype($val) . ' => ' . sprintval($val), gettype($val1) . "-" . gettype($val2) . '-' . $fname);
                                        }
                        }
        }
}

function sprintval($val){
        if(is_object($val)){
                return 'object-' . $val->getab();
        }
        if(is_array($val)){
                return implode(',', $val);
        }
        if(is_bool($val)){
                if($val){
                        return 'true';
                }
                return 'false';
        }
        return strval($val);
}

?>
frank 14-Aug-2007 03:06
A comparison table for <=,<,=>,> would be nice...
Following are TRUE (tested PHP4&5):
NULL <= -1
NULL <= 0
NULL <= 1
!(NULL >= -1)
NULL >= 0
!(NULL >= 1)
That was a surprise for me (and it is not like SQL, I would like to have the option to have SQL semantics with NULL...).
Jan 29-Dec-2005 11:23
Note that php comparison is not transitive:

"php" == 0 => true
0 == null => true
null == "php" => false
jerryschwartz at comfortable dot com 26-Jul-2005 01:04
In some languages, a boolean is promoted to an integer (with a value of 1 or -1, typically) if used in an expression with an integer. I found that PHP has it both ways:

If you add a boolean with a value of true to an integer with a value of 3, the result will be 4 (because the boolean is cast as an integer).

On the other hand, if you test a boolean with a value of true for equality with an integer with a value of three, the result will be true (because the integer is cast as a boolean).

Surprisingly, at first glance, if you use either < or > as the comparison operator the result is always false (again, because the integer as cast as a boolean, and true is neither greater nor less than true).


解析器记号（token）列表

PHP 语言的各个部分在内部使用记号表示。包含无效序列的代码片段可能会导致错误。例如 Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10."。其中记号 == 在内部由 T_IS_EQUAL 表示。

下表列出的所有记号。也可以用作 PHP 常量。

Note: T_* 常量用法

T_* 常量是根据 PHP 底层解析器数据结构自动生成的。这意味着记号的具体值可能会在不同的 PHP 版本之间发生变更。这也意味着代码不应直接从 PHP X.Y.Z 版本中获取原始 T_* 值，从而提供跨越多个版本的兼容性。

为了在多个 PHP 版本中使用 T_* 常量，用户可以对 PHP 版本和 T_* 值使用适当的策略（使用类似 10000 的大数），来定义未定义的常量。

<?php
// 在 PHP 7.4.0 之前，未定义 T_FN。
defined('T_FN') || define('T_FN', 10001);

记号
记号 | 语法 | 参考
T_ABSTRACT | abstract | 抽象类
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG | & | 类型声明（自 PHP 8.1.0 起有效）
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG | & | 类型声明（自 PHP 8.1.0 起有效）
T_AND_EQUAL | &= | 赋值运算符
T_ARRAY | array() | array()，数组语法
T_ARRAY_CAST | (array) | 类型转换
T_AS | as | foreach
T_ATTRIBUTE | #[ | 注解（自 PHP 8.0.0 起有效）
T_BAD_CHARACTER |  | 除了 \t（0x09）、\n（0x0a）、\r（0x0d）之外所有低于 ASCII 32 的内容（自 PHP 7.4.0 起有效）
T_BOOLEAN_AND | && | 逻辑运算符
T_BOOLEAN_OR | || | 逻辑运算符
T_BOOL_CAST | (bool) 或 (boolean) | 类型转换
T_BREAK | break | break
T_CALLABLE | callable | callable
T_CASE | case | switch
T_CATCH | catch | 异常
T_CLASS | class | 类和对象
T_CLASS_C | __CLASS__ | 魔术常量
T_CLONE | clone | 类和对象
T_CLOSE_TAG | ?> 或 %> | 从 HTML 中转义
T_COALESCE | ?? | 比较运算符
T_COALESCE_EQUAL | ??= | 赋值运算符 （自 PHP 7.4.0 起有效）
T_COMMENT | // 或 # 以及 /* */ | 注释
T_CONCAT_EQUAL | .= | 赋值运算符
T_CONST | const | 类常量
T_CONSTANT_ENCAPSED_STRING | "foo" 或 'bar' | 字符串语法
T_CONTINUE | continue | continue
T_CURLY_OPEN | {$ | 复杂变量解析语法
T_DEC | -- | 递增/递减运算符
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIR | __DIR__ | 逻辑常量
T_DIV_EQUAL | /= | 赋值运算符
T_DNUMBER | 0.12 等 | 浮点数
T_DO | do | do..while
T_DOC_COMMENT | /** */ | PHPDoc 风格注释
T_DOLLAR_OPEN_CURLY_BRACES | ${ | 复杂变量解析语法
T_DOUBLE_ARROW | => | 数组语法
T_DOUBLE_CAST | (real)、(double) 或 (float) | 类型转换
T_DOUBLE_COLON | :: | 见下面的 T_PAAMAYIM_NEKUDOTAYIM
T_ECHO | echo | echo
T_ELLIPSIS | ... | 函数参数
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE | " $a" | 带变量字符串的常量部分
T_ENDDECLARE | enddeclare | declare、替代语法
T_ENDFOR | endfor | for、替代语法
T_ENDFOREACH | endforeach | foreach、替代语法
T_ENDIF | endif | if、替代语法
T_ENDSWITCH | endswitch | switch、替代语法
T_ENDWHILE | endwhile | while、替代语法
T_ENUM | enum | 枚举（自 PHP 8.1.0 起有效）
T_END_HEREDOC |  | heredoc 语法
T_EVAL | eval() | eval()
T_EXIT | exit 或 die | exit()、die()
T_EXTENDS | extends | extends、类和对象
T_FILE | __FILE__ | 魔法常量
T_FINAL | final | Final 关键字
T_FINALLY | finally | 异常
T_FN | fn | 箭头函数 （自 PHP 7.4.0 起有效）
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function | 函数
T_FUNC_C | __FUNCTION__ | 魔法常量
T_GLOBAL | global | 变量作用域
T_GOTO | goto | goto
T_HALT_COMPILER | __halt_compiler() | __halt_compiler
T_IF | if | if
T_IMPLEMENTS | implements | 对象接口
T_INC | ++ | 递增/递减运算符
T_INCLUDE | include | include
T_INCLUDE_ONCE | include_once | include_once
T_INLINE_HTML |  | PHP 外的文本
T_INSTANCEOF | instanceof | 类型运算符
T_INSTEADOF | insteadof | Trait
T_INTERFACE | interface | 对象接口
T_INT_CAST | (int) 或 (integer) | 类型转换
T_ISSET | isset() | isset()
T_IS_EQUAL | == | 比较运算符
T_IS_GREATER_OR_EQUAL | >= | 比较运算符
T_IS_IDENTICAL | === | 比较运算符
T_IS_NOT_EQUAL | != or <> | 比较运算符
T_IS_NOT_IDENTICAL | !== | 比较运算符
T_IS_SMALLER_OR_EQUAL | <= | 比较运算符
T_LINE | __LINE__ | 魔术常量
T_LIST | list() | list()
T_LNUMBER | 123、012、0x1ac 等 | 整型
T_LOGICAL_AND | and | 逻辑运算符
T_LOGICAL_OR | or | 逻辑运算符
T_LOGICAL_XOR | xor | 逻辑运算符
T_MATCH | match | match（自 PHP 8.0.0 起有效）
T_METHOD_C | __METHOD__ | 魔术常量
T_MINUS_EQUAL | -= | 赋值运算符
T_MOD_EQUAL | %= | 赋值运算符
T_MUL_EQUAL | *= | 赋值运算符
T_NAMESPACE | namespace | 命名空间
T_NAME_FULLY_QUALIFIED | \App\Namespace | 命名空间（自 PHP 8.0.0 起有效）
T_NAME_QUALIFIED | App\Namespace | 命名空间（自 PHP 8.0.0 起有效）
T_NAME_RELATIVE | namespace\Namespace | 命名空间（自 PHP 8.0.0 起有效）
T_NEW | new | 类和对象
T_NS_C | __NAMESPACE__ | 命名空间
T_NS_SEPARATOR | \ | 命名空间
T_NUM_STRING | "$a[0]" | 字符串内的数组数字索引
T_OBJECT_CAST | (object) | 类型转换
T_OBJECT_OPERATOR | -> | 类和对象
T_NULLSAFE_OBJECT_OPERATOR | ?-> | 类和对象
T_OPEN_TAG | <?php, <? 或 <% | 从 HTML 中转义
T_OPEN_TAG_WITH_ECHO | <?= 或 <%= | 从 HTML 中转义
T_OR_EQUAL | |= | 赋值运算符
T_PAAMAYIM_NEKUDOTAYIM | :: | ::。也定义为 T_DOUBLE_COLON。
T_PLUS_EQUAL | += | 赋值运算符
T_POW | ** | 算术运算符
T_POW_EQUAL | **= | 赋值运算符
T_PRINT | print | print
T_PRIVATE | private | 类和对象
T_PROTECTED | protected | 类和对象
T_PUBLIC | public | 类和对象
T_READONLY | readonly | 类和对象（自 PHP 8.1.0 起有效）
T_REQUIRE | require | require
T_REQUIRE_ONCE | require_once | require_once
T_RETURN | return | 返回值
T_SL | << | 位运算符
T_SL_EQUAL | <<= | 赋值运算符
T_SPACESHIP | <=> | 比较运算符
T_SR | >> | 位运算符
T_SR_EQUAL | >>= | 赋值运算符
T_START_HEREDOC | <<< | heredoc 语法
T_STATIC | static | 变量作用域
T_STRING | parent、self 等 | 标识符，比如像 parent 和 self、函数名、类名等等的关键字。参阅 T_CONSTANT_ENCAPSED_STRING。
T_STRING_CAST | (string) | 类型转换
T_STRING_VARNAME | "${a | 复杂变量解析语法
T_SWITCH | switch | switch
T_THROW | throw | 异常
T_TRAIT | trait | Trait
T_TRAIT_C | __TRAIT__ | __TRAIT__
T_TRY | try | 异常
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | 类型转换
T_USE | use | 命名空间
T_VAR | var | 类和对象
T_VARIABLE | $foo | 变量
T_WHILE | while | while、do..while
T_WHITESPACE | \t \r\n |
T_XOR_EQUAL | ^= | 赋值运算符
T_YIELD | yield | 生成器
T_YIELD_FROM | yield from | 生成器

参见 token_name()。

User Contributed Notes

daniel_rhodes at yahoo dot co dot uk 28-Mar-2024 08:41
In the above table of Tokens, it's worth noting that the bracketed text of "available as of PHP x.y.z" can mean one of two things:

[] This *parser token* is available as of PHP x.y.z
    {eg. T_BAD_CHARACTER, T_NAME_QUALIFIED}

[] This *language feature* is available as of PHP x.y.z
    {eg. T_ATTRIBUTE, T_COALESCE_EQUAL}
fgm at osinet dot fr 22-Sep-2008 01:08
T_ENCAPSED_AND_WHITESPACED is returned when parsing strings with evaluated content, like "some $value" or this example from the Strings reference page:

<?php
echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>

This last example is tokenized as:
T_ECHO
  echo
T_WHITESPACE
  %20 (a space character)
T_START_HEREDOC
  <<
T_ENCAPSED_AND_WHITESPACE
  My name is "
T_VARIABLE
  $name
T_ENCAPSED_AND_WHITESPACE
  ". I am printing some
T_VARIABLE
  $foo
T_OBJECT_OPERATOR
  ->
T_STRING
  foo
T_ENCAPSED_AND_WHITESPACE
  . Now, I am printing some
T_CURLY_OPEN
  {
T_VARIABLE
  $foo
T_OBJECT_OPERATOR
  ->
T_STRING
  bar
(terminal)
  [
T_LNUMBER
  1
(terminal)
  ]
(terminal)
  }
T_ENCAPSED_AND_WHITESPACE
  . This should print a capital 'A': \x41
T_END_HEREDOC
  EOT
(terminal)
  ;
nathan at unfinitydesign dot com 22-Sep-2008 05:52
T_ENCAPSED_AND_WHITESPACE is whitespace which intersects a group of tokens. For example, an "unexpected T_ENCAPSED_AND_WHITESPACE" error is produced by the following code:

<?php
$main_output_world = 'snakes!';
echo('There are' 10 $main_output_world);
?>

Note the missing concatenation operator between the two strings leads to the whitespace error that is so named above. The concatenation operator instructs PHP to ignore the whitespace between the two code tokens (the so named "encapsed" data"), rather than parse it as a token itself.

The correct code would be:

<?php
$main_output_world = 'snakes!';
echo('There are' . 10 . $main_output_world);
?>

Note the addition of the concatenation operator between each token.


用户空间命名指南

Table of Contents

  • 全局命名空间
  • 规则
  • 提示

以下是在用户空间 PHP 代码中怎样最佳选择标识符名称的指南。当在全局命名空间中选择创建的符号名称时，要考虑到以下指导方针以免未来的 PHP 版本破坏掉用户使用的符号名称。

User Contributed Notes

There are no user contributed notes for this page.


全局命名空间

以下代码结构会进入全局命名空间：

  • functions（函数）

  • classes（类）

  • interfaces（接口）

  • constants（常量，并非类常量）

  • 在函数／方法之外定义的变量

User Contributed Notes

There are no user contributed notes for this page.


规则

以下列表指出了 PHP 工程在选择新的内部标识符时保留给自己的权利。最终指南是官方的» 编码标准：

  • PHP 拥有最顶层命名空间，但是会尝试找到合体的描述命名以避免任何明显的冲突。

  • 函数名在两个词中间使用下划线，类名则同时使用 camelCase 和 PascalCase 规则。

  • PHP 在任何扩展库的全局符号前附加上扩展库的名称（此规则在过去则有无数例外）。例如：

    • curl_close()

    • mysql_query()

    • PREG_SPLIT_DELIM_CAPTURE

    • new DOMDocument()

    • strpos()（以前的一个失误例子）

    • new SplFileObject()

  • Iterators 和 Exceptions 则只是简单加上 "Iterator" 和 "Exception" 后缀。例如：

    • ArrayIterator

    • LogicException

  • PHP 保留所有以 __ 开头的符号作为魔术符号。建议用户不要在 PHP 中创建以 __ 打头的符号，除非是要使用有文档记载的魔术函数功能。例如：

    • __get()

    • __autoload()

User Contributed Notes

There are no user contributed notes for this page.


提示

要写出能经受住时间考验的代码，建议在全局的命名空间中，尽量不要用变量、函数或类名，以避免与其它用户空间代码出现命名空间冲突。

防止函数和类的命名冲突的一个常见方法是使用自己专属名字的 namespace。

<?php

namespace MyProject;

function my_function() {
return true;
}

\MyProject\my_function();

这仍然需要你跟踪已经使用过的命名空间，但一旦你用了在决定了要使用的命名空间后，你可以添加所有的函数和类到它，不用再考虑冲突。

最好的做法是，尽量控制一下添加到全局范围内的变量，以防止与第三方代码的命名产生命名空间冲突。

Note: 变量作用域

因为 PHP 的作用域规则，在函数和方法内定义的变量不会在全局作用域内，因此不会和全局作用域内其它定义的变量相冲突。

User Contributed Notes

There are no user contributed notes for this page.


关于本手册

Table of Contents

  • 手册的格式
  • 关于用户注释
  • 如何阅读函数的定义（函数原型）
  • 本手册中所涉及的 PHP 版本
  • 如何得到关于 PHP 更多的信息
  • 如何帮助改进本文档
  • 如何生成手册的各种格式
  • 手册译文

User Contributed Notes

There are no user contributed notes for this page.


手册的格式

《PHP 参考手册》提供了多种不同格式的版本，它们可以分为两组：在线阅读版本和可下载打包版本。

Note:

有些出版商可能已经出版了本手册的一些印刷版本。不推荐印刷版，因为 PHP 参考手册更新得非常快，这些印刷版本的内容很快将过时。

可以访问 » PHP.net 网站及其众多的镜像站点来在线阅读《PHP 参考手册》。为了保证最佳的访问速度，应该选择地理位置最接近的镜像站点。PHP 手册的在线版本目前有两种 CSS 样式表：便于浏览和便于打印。

和绝大多数离线格式的手册相比，在线阅读版本有两个显著的优点，即它集成了用户注释，并且可以使用其中的 » URL 快捷方式快速进入手册中想阅读的部分；但是，它的明显的缺点是必须要联网才能阅读。

目前，《PHP 参考手册》提供多种离线阅读格式，最适合于自己的格式取决于所使用的操作系统和个人的阅读习惯。关于《PHP 参考手册》如何被制作成如此多的版本，请查阅本附录中如何生成手册的各种格式一节。

跨平台性最好的是 HTML 格式。HTML 格式提供了两种方式：一种只有一个很大的 HTML 文件；另一种方式是每一节分成一个独立文件（它们形成一个包含有几千个文件的文件包）。我们提供的是这两种版本的压缩包，需要使用解压缩工具解压出压缩包中的文件。

对于 Windows 平台，我们利用了 Windows HTML 帮助应用程序结合本手册的 HTML 格式，形成了本手册的 Windows HTML 帮助版本。该版本提供手册的全文搜索、完整的索引以及书签功能。很多 Windows 平台下流行的 PHP 集成开发环境也集成了该版本的手册，以给开发者提供最方便快捷的参考。CHM 阅读器也有 Linux 版本，可以到 » xCHM 或 » GnoCHM 网站了解更多信息。

同时，PHP 手册也有» 扩展 CHM 版本提供下载。它更新的速度比较慢，但是提供了附加的功能。由于制作帮助页面时采用的技术的特殊性，它只可在 Microsoft Windows 下工作。

User Contributed Notes

There are no user contributed notes for this page.


关于用户注释

用户注释在本手册的开发过程中扮演了相当重要的角色。通过允许手册的读者利用它们的浏览器提供范例、解释和进一步的阐述，我们便能够把这些反馈信息包含到手册的正文中。而且，当这些注释被包含后，读者就可以在线通过它们被提交的格式来阅读它们，也可以通过某些离线格式来阅读。

Note:

用户注释在网上出现之前并不成熟，因此这些文字和代码的质量，甚至它们的真实性无从得到保证（这并不是说本手册本身的质量和准确性没有任何的保证）。

Note:

由于用户注释被认为是 PHP 手册的一部分，因此它使用本文档的许可协议（目前为创作共用许可协议）。请查阅手册版权页以了解更多详细信息。

User Contributed Notes

There are no user contributed notes for this page.


如何阅读函数的定义（函数原型）

文档中的每个函数都只是快速参考，学会如何阅读和理解文档将使得 PHP 的使用更加简单。和依赖赖于复制／粘贴范例比起来，用户一定更希望知道如何阅读函数的定义（函数原型）：

Note: 先决条件，对变量类型的基本理解

尽管 PHP 是一种松散类型语言，但变量类型有重要的意义，需要理解它的基本知识。

函数定义告诉我们函数返回什么类型的值，让我们用函数 strlen() 的定义作为第一个范例：

strlen

(PHP 4, PHP 5, PHP 7)
strlen -- Get string length

说明
strlen ( string $string ) : int

返回给定的字符串 string 的长度。

对函数定义的解释
组成部分 | 说明
strlen | 函数名称。
(PHP 4, PHP 5, PHP 7) | strlen() 在 PHP 4, PHP 5 和 PHP 7 的所有版本中都存在。
( string $string ) | 第一个（本例中是唯一的）参数，在该函数中名为 string，且类型为 string。
int | 该函数返回的值的类型，这里为整型 int（即以数字来衡量的字符串的长度）。

可以将以上函数的定义写成一般形式：

          函数名          ( 参数类型           参数名 )        返回类型
      function name    ( parameter type   parameter name ) : returned type

很多函数都有多个变量，例如 in_array()。其函数原型如下：

      in_array ( mixed $needle, array $haystack , bool $strict = false ) : bool

这是什么意思？in_array() 返回一个"布尔"值，成功（如果在参数 haystack 中能找到参数 needle）则返回 true, 或者在失败时返回 false（如果在参数 haystack 中找不到参数 needle）。第一个参数被命名为 needle 且其类型不定，因此我们将其称为"混和"类型。该混和类型的 needle 参数（我们要找的对象）可以是一个标量的值（字符串、整数、或者浮点数），或者一个数组。haystack（我们寻找的范围）是第二个参数。第三个可选参数被命名为 strict。所有的可选参数都用 [ 方括号 ] 括起来。手册表明 strict 参数默认值为布尔值 false。需要了解函数工作的细节，请参阅手册中和该函数相关的页面。

函数参数前的 & 符号使参数以 引用 方式传递，如下所见：

       preg_match ( string $pattern , string $subject [, array &$matches
      [, int $flags = 0 [, int $offset = 0 ]]] ) : int

在这个例子中，我们可以看到，第三个可选参数 &$matches 会意引用方式传递。

有的函数包含更复杂的 PHP 版本信息。我们拿 html_entity_decode() 举例：

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

它意味着该函数只可在 PHP 4.3.0 及以后发布的版本中使用。

User Contributed Notes

There are no user contributed notes for this page.


本手册中所涉及的 PHP 版本

本手册包含有 PHP 过去，现在和未来版本的信息。如果（不同版本）有功能变化则作为注释、更新日志以及插入文本方式在手册页中注明。 文档内最早的版本是 PHP 7.0.0。

当对应于最新（尚未发布）开发版的 PHP 有文档存在时，将会被标记为"可在 Git 获取"或者"开发版本"。应该计划好相关变更，虽不多见但确有可能会有变动。

所有开发都放置于 Git 中，应按照» 匿名 Git 访问页面中的方法来取出。

要澄清一点，手册会指明 PHP 的主版本号，次版本号和发布编号。以 PHP 7.3.1 为例，5 是主版本号，3 是次版本号，1 是发布编号。通常 PHP 只会在主、次版本更新时增加新特性，在发布编号更新时修正错误。不过也不完全是这样。

还要注意 PHP 手册是以现在时态书写的，而不是将来时态，即使某特性当前还尚未可用。原因是这样一来手册就可以经受住时间的考验，而不用在每次 PHP 更新时都去修改无聊的语法。

PHP 手册会多次列出 PHP 配置选项的"默认值"。默认值是没有 php.ini 配置文件时的值，所以与 php.ini-development 和 php.ini-production 存在很大差异。同时这些值也是基于最新版本的 PHP。请参考 PHP 配置选项列表以了解更多信息。

User Contributed Notes

There are no user contributed notes for this page.


如何得到关于 PHP 更多的信息

本手册并不打算提供基本的编程开发指导。刚学编程的或者新手程序员会发现仅仅用本手册来学习如何用 PHP 编程是一件很困难的事情。应该寻找一本更适合初学者的书。

目前，PHP 官方提供了许多邮件列表来讨论 PHP 编程相关的各个方面的问题。如果卡在了某个问题上，可以到该邮件列表寻求帮助。有关支持以及邮件列表请访问 » PHP.net 支持页面。

User Contributed Notes

There are no user contributed notes for this page.


如何帮助改进本文档

可以通过以下三种途径来帮助改善本文档。

如果发现本手册任何一种翻译语言中存在错误，请通过 » https://github.com/php 中对应 语种的仓库 issue 追踪器报告错误， 例如，中文手册的错误应该在 » https://github.com/php/doc-zh/issues 报告。所有文档相关的问题，包括手册格式，都应作为错误提交。

Note:

请勿滥用问题追踪器（issue trackers）来寻求帮助。如需帮助请访问» 支持页面。

通过提交注释，用户可以向其它读者提供更多的范例、解释和阐述。但请勿在注释系统提交错误报告。更多细节见关于用户注释一节。

PHP 手册被翻译成很多种语言。如果懂英语和另一种语言，可以加入翻译团队来帮助改善文档。关于开始一个新语种的翻译，或者加入某一个语言版本的翻译工作，请下载并阅读 » http://doc.php.net/tutorial/。

PHP 文档项目也有一个 IRC 频道，许多手册作者都常去。可以访问 irc.efnet.org 服务器上的 #php.doc 与他们讨论改善 PHP 文档的方法。

User Contributed Notes

There are no user contributed notes for this page.


如何生成手册的各种格式

本手册使用 XML 语言编写，同时运用了 » DocBook XML DTD。还用了 » PhD（基于 [PH]P 的 [D]ocBook 渲染器）来维护和格式化。

将 XML 语言作为源文件格式，使得我们只需维护该源文件文档，就可以可以利用它生成许多其它的输出格式。生成在线手册格式的工具是 » PhD。我们使用 » Microsoft HTML Help Workshop 来生成本手册的 Windows HTML 帮助 格式。当然，PHP 本身也完成了其它一些转换和格式化工作。

PHP 手册被生成多种不同语言和格式，详情见 » https://www.php.net/docs.php。XML 格式的源代码可以通过 SVN 下载，并通过 » https://svn.php.net/ 在线浏览。文档存放于 phpdoc 模块中。

User Contributed Notes

There are no user contributed notes for this page.


手册译文

《PHP 参考手册》不但有各种不同的格式，而且还有各种语言的版本。手册的正文最初是用英语撰写的，后来有来自全世界各地的工作组致力于本手册各种语言版本的翻译工作。如果某个函数或者章节的内容尚未被翻译，则该语言版本手册的发布将落后于英语版本。

翻译工作者首先从本手册的 XML 源代码（可于 » https://github.com/php/doc-en 获取）入手，将这些源代码翻译成他们的母语。不要从生成后的版本开始翻译（比如 HTML 或纯文本版）。因为编译系统会负责将 XML 源代码转换成可阅读版本。

Note:

要帮忙翻译手册，请发一封空的电子邮件到 » phpdoc+subscribe@lists.php.net 加入 phpdoc 邮件列表以便与文档翻译小组取得联系。邮件列表的地址为 phpdoc@lists.php.net。请在电子邮件中声明对文档翻译工作感兴趣，有人会回复并帮助加入到已经存在的翻译小组，或者开始新语种的翻译工作。

目前，本手册已经（或部分）有超过 10 种语言可用。

可以访问 » https://www.php.net/docs.php 来下载各种版本。

User Contributed Notes

There are no user contributed notes for this page.


Creative Commons Attribution 3.0

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

  1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
  2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
  3. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
  4. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
  5. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
  6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
  7. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
  8. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

  1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
  2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
  3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
  4. to Distribute and Publicly Perform Adaptations.

  5. For the avoidance of doubt:

    1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
    2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
    3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

  1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
  2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
  3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination.

  1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
  2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

  1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
  2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
  3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
  4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent
  5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
  6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.

User Contributed Notes

There are no user contributed notes for this page.


索引

Table of Contents

  • 函数和方法列表
  • 示例列表

User Contributed Notes

There are no user contributed notes for this page.


函数和方法列表

手册中所有函数和方法的列表

a b c d e f g h i j k l m n o p q r s t u v w x y z _

  • a
    • abs - 绝对值
    • acos - 反余弦
    • acosh - 反双曲余弦
    • addcslashes - 以 C 语言风格使用反斜线转义字符串中的字符
    • addslashes - 使用反斜线引用字符串
    • AllowDynamicProperties::__construct - 构造新的 AllowDynamicProperties 注解实例
    • apache_child_terminate - 在本次请求结束后终止 apache 子进程
    • apache_getenv - 获取 Apache subprocess_env 变量
    • apache_get_modules - 获得已加载的Apache模块列表
    • apache_get_version - 获得Apache版本信息
    • apache_lookup_uri - 对指定的 URI 执行部分请求并返回所有有关信息
    • apache_note - 取得或设置 apache 请求记录
    • apache_request_headers - 获取全部 HTTP 请求头信息
    • apache_response_headers - 获得全部 HTTP 响应头信息
    • apache_setenv - 设置 Apache 子进程环境变量
    • APCUIterator::current - Get current item
    • APCUIterator::getTotalCount - Get total count
    • APCUIterator::getTotalHits - Get total cache hits
    • APCUIterator::getTotalSize - Get total cache size
    • APCUIterator::key - Get iterator key
    • APCUIterator::next - Move pointer to next item
    • APCUIterator::rewind - Rewinds iterator
    • APCUIterator::valid - Checks if current position is valid
    • APCUIterator::__construct - Constructs an APCUIterator iterator object
    • apcu_add - 缓存一个新变量到存储中
    • apcu_cache_info - 从 APCu 存储中获取缓存信息
    • apcu_cas - Updates an old value with a new value
    • apcu_clear_cache - Clears the APCu cache
    • apcu_dec - Decrease a stored number
    • apcu_delete - Removes a stored variable from the cache
    • apcu_enabled - Whether APCu is usable in the current environment
    • apcu_entry - Atomically fetch or generate a cache entry
    • apcu_exists - Checks if entry exists
    • apcu_fetch - Fetch a stored variable from the cache
    • apcu_inc - Increase a stored number
    • apcu_key_info - Get detailed information about the cache key
    • apcu_sma_info - Retrieves APCu Shared Memory Allocation information
    • apcu_store - 缓存一个变量到存储中
    • AppendIterator::append - Appends an iterator
    • AppendIterator::current - Gets the current value
    • AppendIterator::getArrayIterator - Gets the ArrayIterator
    • AppendIterator::getIteratorIndex - Gets an index of iterators
    • AppendIterator::key - Gets the current key
    • AppendIterator::next - Moves to the next element
    • AppendIterator::rewind - Rewinds the Iterator
    • AppendIterator::valid - Checks validity of the current element
    • AppendIterator::__construct - Constructs an AppendIterator
    • array - 新建一个数组
    • ArrayAccess::offsetExists - 检查一个偏移位置是否存在
    • ArrayAccess::offsetGet - 获取一个偏移位置的值
    • ArrayAccess::offsetSet - 设置一个偏移位置的值
    • ArrayAccess::offsetUnset - 复位一个偏移位置的值
    • ArrayIterator::append - Append an element
    • ArrayIterator::asort - Sort entries by values
    • ArrayIterator::count - Count elements
    • ArrayIterator::current - Return current array entry
    • ArrayIterator::getArrayCopy - Get array copy
    • ArrayIterator::getFlags - Get behavior flags
    • ArrayIterator::key - Return current array key
    • ArrayIterator::ksort - Sort entries by keys
    • ArrayIterator::natcasesort - Sort entries naturally, case insensitive
    • ArrayIterator::natsort - Sort entries naturally
    • ArrayIterator::next - Move to next entry
    • ArrayIterator::offsetExists - Check if offset exists
    • ArrayIterator::offsetGet - Get value for an offset
    • ArrayIterator::offsetSet - Set value for an offset
    • ArrayIterator::offsetUnset - Unset value for an offset
    • ArrayIterator::rewind - Rewind array back to the start
    • ArrayIterator::seek - Seek to position
    • ArrayIterator::serialize - Serialize
    • ArrayIterator::setFlags - Set behaviour flags
    • ArrayIterator::uasort - Sort with a user-defined comparison function and maintain index association
    • ArrayIterator::uksort - Sort by keys using a user-defined comparison function
    • ArrayIterator::unserialize - Unserialize
    • ArrayIterator::valid - Check whether array contains more entries
    • ArrayIterator::__construct - Construct an ArrayIterator
    • ArrayObject::append - 追加新的值作为最后一个元素。
    • ArrayObject::asort - Sort the entries by value
    • ArrayObject::count - 统计 ArrayObject 内 public 属性的数量
    • ArrayObject::exchangeArray - Exchange the array for another one
    • ArrayObject::getArrayCopy - Creates a copy of the ArrayObject
    • ArrayObject::getFlags - Gets the behavior flags
    • ArrayObject::getIterator - Create a new iterator from an ArrayObject instance
    • ArrayObject::getIteratorClass - Gets the iterator classname for the ArrayObject
    • ArrayObject::ksort - Sort the entries by key
    • ArrayObject::natcasesort - Sort an array using a case insensitive "natural order" algorithm
    • ArrayObject::natsort - Sort entries using a "natural order" algorithm
    • ArrayObject::offsetExists - Returns whether the requested index exists
    • ArrayObject::offsetGet - Returns the value at the specified index
    • ArrayObject::offsetSet - 为指定索引设定新值
    • ArrayObject::offsetUnset - Unsets the value at the specified index
    • ArrayObject::serialize - Serialize an ArrayObject
    • ArrayObject::setFlags - Sets the behavior flags
    • ArrayObject::setIteratorClass - Sets the iterator classname for the ArrayObject
    • ArrayObject::uasort - Sort the entries with a user-defined comparison function and maintain key association
    • ArrayObject::uksort - Sort the entries by keys using a user-defined comparison function
    • ArrayObject::unserialize - Unserialize an ArrayObject
    • ArrayObject::__construct - Construct a new array object
    • array_change_key_case - 将数组中的所有键名修改为全大写或小写
    • array_chunk - 将一个数组分割成多个
    • array_column - 返回输入数组中指定列的值
    • array_combine - 创建一个数组，用一个数组的值作为其键名，另一个数组的值作为其值
    • array_count_values - 统计数组中每个不同值的出现次数
    • array_diff - 计算数组的差集
    • array_diff_assoc - 带索引检查计算数组的差集
    • array_diff_key - 使用键名比较计算数组的差集
    • array_diff_uassoc - 用用户提供的回调函数做索引检查来计算数组的差集
    • array_diff_ukey - 用回调函数对键名比较计算数组的差集
    • array_fill - 用给定的值填充数组
    • array_fill_keys - 使用指定的键和值填充数组
    • array_filter - 使用回调函数过滤数组的元素
    • array_flip - 交换数组中的键和值
    • array_intersect - 计算数组的交集
    • array_intersect_assoc - 带索引检查计算数组的交集
    • array_intersect_key - 使用键名比较计算数组的交集
    • array_intersect_uassoc - 带索引检查计算数组的交集，用回调函数比较索引
    • array_intersect_ukey - 在键名上使用回调函数来比较计算数组的交集
    • array_is_list - 判断给定的 array 是否为 list
    • array_keys - 返回数组中部分的或所有的键名
    • array_key_exists - 检查数组里是否有指定的键名或索引
    • array_key_first - 获取指定数组的第一个键
    • array_key_last - 获取一个数组的最后一个键值
    • array_map - 为数组的每个元素应用回调函数
    • array_merge - 合并一个或多个数组
    • array_merge_recursive - 递归地合并一个或多个数组
    • array_multisort - 对多个数组或多维数组进行排序
    • array_pad - 以指定长度将一个值填充进数组
    • array_pop - 弹出数组最后一个单元（出栈）
    • array_product - 计算数组中所有值的乘积
    • array_push - 将一个或多个单元压入数组的末尾（入栈）
    • array_rand - 从数组中随机取出一个或多个随机键
    • array_reduce - 用回调函数迭代地将数组简化为单一的值
    • array_replace - 使用传递的数组替换第一个数组的元素
    • array_replace_recursive - 使用传递的数组递归替换第一个数组的元素
    • array_reverse - 返回单元顺序相反的数组
    • array_search - 在数组中搜索给定的值，如果成功则返回首个相应的键名
    • array_shift - 将数组开头的单元移出数组
    • array_slice - 从数组中取出一段
    • array_splice - 去掉数组中的某一部分并用其它值取代
    • array_sum - 对数组中所有值求和
    • array_udiff - 用回调函数比较数据来计算数组的差集
    • array_udiff_assoc - 带索引检查计算数组的差集，用回调函数比较数据
    • array_udiff_uassoc - 带索引检查计算数组的差集，用回调函数比较数据和索引
    • array_uintersect - 计算数组的交集，用回调函数比较数据
    • array_uintersect_assoc - 带索引检查计算数组的交集，用回调函数比较数据
    • array_uintersect_uassoc - 带索引检查计算数组的交集，用单独的回调函数比较数据和索引
    • array_unique - 移除数组中重复的值
    • array_unshift - 在数组开头插入一个或多个单元
    • array_values - 返回数组中所有的值
    • array_walk - 使用用户自定义函数对数组中的每个元素做回调处理
    • array_walk_recursive - 对数组中的每个成员递归地应用用户函数
    • arsort - 对数组进行降向排序并保持索引关系
    • asin - 反正弦
    • asinh - 反双曲正弦
    • asort - 对数组进行升序排序并保持索引关系
    • assert - 断言检测
    • assert_options - 设置/获取各种断言 flag
    • atan - 反正切
    • atan2 - 两个参数的反正切
    • atanh - 反双曲正切
    • Attribute::__construct - 构造新的 Attribute 实例
  • b
    • BackedEnum::from - 映射标量为 enum 实例
    • BackedEnum::tryFrom - 映射标量为 enum 实例或 null
    • base64_decode - 对使用 MIME base64 编码的数据进行解码
    • base64_encode - 使用 MIME base64 对数据进行编码
    • basename - 返回路径中的文件名部分
    • BaseResult::getWarnings - Fetch warnings from last operation
    • BaseResult::getWarningsCount - Fetch warning count from last operation
    • base_convert - 在任意进制之间转换数字
    • bcadd - 两个任意精度数字的加法计算
    • bccomp - 比较两个任意精度的数字
    • bcdiv - 两个任意精度的数字除法计算
    • bcmod - 任意精度数字取模
    • bcmul - 两个任意精度数字乘法计算
    • bcpow - 任意精度数字的乘方
    • bcpowmod - Raise an arbitrary precision number to another, reduced by a specified modulus
    • bcscale - 设置/获取所有 bc math 函数的默认小数点保留位数
    • bcsqrt - 任意精度数字的二次方根
    • bcsub - 两个任意精度数字的减法
    • bin2hex - 将二进制数据转换为十六进制表示
    • bindec - 二进制转换为十进制
    • bindtextdomain - Sets or gets the path for a domain
    • bind_textdomain_codeset - Specify or get the character encoding in which the messages from the DOMAIN message catalog will be returned
    • boolval - 获取变量的布尔值
    • bzclose - 关闭一个 bzip2 文件
    • bzcompress - 把一个字符串压缩成 bzip2 编码数据
    • bzdecompress - 解压经 bzip2 编码过的数据
    • bzerrno - 返回一个 bzip2 错误码
    • bzerror - 返回包含 bzip2 错误号和错误字符串的一个 array
    • bzerrstr - 返回一个 bzip2 的错误字符串
    • bzflush - 什么都不做
    • bzopen - 打开 bzip2 压缩文件
    • bzread - bzip2 文件二进制安全地读取
    • bzwrite - 二进制安全地写入 bzip2 文件
  • c
    • CachingIterator::count - The number of elements in the iterator
    • CachingIterator::current - Return the current element
    • CachingIterator::getCache - Retrieve the contents of the cache
    • CachingIterator::getFlags - Get flags used
    • CachingIterator::hasNext - Check whether the inner iterator has a valid next element
    • CachingIterator::key - Return the key for the current element
    • CachingIterator::next - Move the iterator forward
    • CachingIterator::offsetExists - The offsetExists purpose
    • CachingIterator::offsetGet - The offsetGet purpose
    • CachingIterator::offsetSet - The offsetSet purpose
    • CachingIterator::offsetUnset - The offsetUnset purpose
    • CachingIterator::rewind - Rewind the iterator
    • CachingIterator::setFlags - The setFlags purpose
    • CachingIterator::valid - Check whether the current element is valid
    • CachingIterator::__construct - Construct a new CachingIterator object for the iterator
    • CachingIterator::__toString - Return the string representation of the current element
    • CallbackFilterIterator::accept - Calls the callback with the current value, the current key and the inner iterator as arguments
    • CallbackFilterIterator::__construct - Create a filtered iterator from another iterator
    • call_user_func - 把第一个参数作为回调函数调用
    • call_user_func_array - 调用回调函数，并把一个数组参数作为回调函数的参数
    • cal_days_in_month - 返回指定历法中某年某月的天数
    • cal_from_jd - 从儒略日数转换为支持的历法
    • cal_info - 返回选定历法的信息
    • cal_to_jd - 从支持的历法转换为儒略日数
    • ceil - 进一法取整
    • chdir - 改变目录
    • checkdate - 验证一个格里高里日期
    • checkdnsrr - 给指定的主机（域名）或者IP地址做DNS通信检查
    • chgrp - 改变文件所属的组
    • chmod - 改变文件模式
    • chop - rtrim 的别名
    • chown - 改变文件的所有者
    • chr - 从数字生成单字节字符串
    • chroot - 改变根目录
    • chunk_split - 将字符串分割成小块
    • class_alias - 为类创建别名
    • class_exists - 查类是否已经定义
    • class_implements - 返回指定的类或接口实现的所有接口
    • class_parents - 返回指定类的父类
    • class_uses - Return the traits used by the given class
    • clearstatcache - 清除文件状态缓存
    • Client::getClient - Get client session
    • Client::__construct - Client constructor
    • cli_get_process_title - Returns the current process title
    • cli_set_process_title - Sets the process title
    • closedir - 关闭目录句柄
    • closelog - 关闭系统日志链接
    • Closure::bind - 用特定的绑定对象和类作用域复制闭包。
    • Closure::bindTo - 用特定的绑定对象和类作用域复制闭包。
    • Closure::call - 绑定并调用闭包
    • Closure::fromCallable - 将 callable 转换为闭包
    • Closure::__construct - 用于禁止实例化的构造函数
    • Collator::asort - Sort array maintaining index association
    • Collator::compare - Compare two Unicode strings
    • Collator::create - Create a collator
    • Collator::getAttribute - Get collation attribute value
    • Collator::getErrorCode - Get collator's last error code
    • Collator::getErrorMessage - Get text for collator's last error code
    • Collator::getLocale - Get the locale name of the collator
    • Collator::getSortKey - Get sorting key for a string
    • Collator::getStrength - Get current collation strength
    • Collator::setAttribute - Set collation attribute
    • Collator::setStrength - Set collation strength
    • Collator::sort - Sort array using specified collator
    • Collator::sortWithSortKeys - Sort array using specified collator and sort keys
    • Collator::__construct - Create a collator
    • Collectable::isGarbage - Determine whether an object has been marked as garbage
    • Collection::add - Add collection document
    • Collection::addOrReplaceOne - Add or replace collection document
    • Collection::count - Get document count
    • Collection::createIndex - Create collection index
    • Collection::dropIndex - Drop collection index
    • Collection::existsInDatabase - Check if collection exists in database
    • Collection::find - Search for document
    • Collection::getName - Get collection name
    • Collection::getOne - Get one document
    • Collection::getSchema - Get schema object
    • Collection::getSession - Get session object
    • Collection::modify - Modify collection documents
    • Collection::remove - Remove collection documents
    • Collection::removeOne - Remove one collection document
    • Collection::replaceOne - Replace one collection document
    • Collection::__construct - Collection constructor
    • CollectionAdd::execute - Execute the statement
    • CollectionAdd::__construct - CollectionAdd constructor
    • CollectionFind::bind - Bind value to query placeholder
    • CollectionFind::execute - Execute the statement
    • CollectionFind::fields - Set document field filter
    • CollectionFind::groupBy - Set grouping criteria
    • CollectionFind::having - Set condition for aggregate functions
    • CollectionFind::limit - Limit number of returned documents
    • CollectionFind::lockExclusive - Execute operation with EXCLUSIVE LOCK
    • CollectionFind::lockShared - Execute operation with SHARED LOCK
    • CollectionFind::offset - Skip given number of elements to be returned
    • CollectionFind::sort - Set the sorting criteria
    • CollectionFind::__construct - CollectionFind constructor
    • CollectionModify::arrayAppend - Append element to an array field
    • CollectionModify::arrayInsert - Insert element into an array field
    • CollectionModify::bind - Bind value to query placeholder
    • CollectionModify::execute - Execute modify operation
    • CollectionModify::limit - Limit number of modified documents
    • CollectionModify::patch - Patch document
    • CollectionModify::replace - Replace document field
    • CollectionModify::set - Set document attribute
    • CollectionModify::skip - Skip elements
    • CollectionModify::sort - Set the sorting criteria
    • CollectionModify::unset - Unset the value of document fields
    • CollectionModify::__construct - CollectionModify constructor
    • CollectionRemove::bind - Bind value to placeholder
    • CollectionRemove::execute - Execute remove operation
    • CollectionRemove::limit - Limit number of documents to remove
    • CollectionRemove::sort - Set the sorting criteria
    • CollectionRemove::__construct - CollectionRemove constructor
    • ColumnResult::getCharacterSetName - Get character set
    • ColumnResult::getCollationName - Get collation name
    • ColumnResult::getColumnLabel - Get column label
    • ColumnResult::getColumnName - Get column name
    • ColumnResult::getFractionalDigits - Get fractional digit length
    • ColumnResult::getLength - Get column field length
    • ColumnResult::getSchemaName - Get schema name
    • ColumnResult::getTableLabel - Get table label
    • ColumnResult::getTableName - Get table name
    • ColumnResult::getType - Get column type
    • ColumnResult::isNumberSigned - Check if signed type
    • ColumnResult::isPadded - Check if padded
    • ColumnResult::__construct - ColumnResult constructor
    • com::__construct - com class constructor
    • CommonMark\CQL::__construct - CQL Construction
    • CommonMark\CQL::__invoke - CQL Execution
    • CommonMark\Interfaces\IVisitable::accept - Visitation
    • CommonMark\Interfaces\IVisitor::enter - Visitation
    • CommonMark\Interfaces\IVisitor::leave - Visitation
    • CommonMark\Node::accept - Visitation
    • CommonMark\Node::appendChild - AST Manipulation
    • CommonMark\Node::insertAfter - AST Manipulation
    • CommonMark\Node::insertBefore - AST Manipulation
    • CommonMark\Node::prependChild - AST Manipulation
    • CommonMark\Node::replace - AST Manipulation
    • CommonMark\Node::unlink - AST Manipulation
    • CommonMark\Node\BulletList::__construct - BulletList Construction
    • CommonMark\Node\CodeBlock::__construct - CodeBlock Construction
    • CommonMark\Node\Heading::__construct - Heading Construction
    • CommonMark\Node\Image::__construct - Image Construction
    • CommonMark\Node\Link::__construct - Link Construction
    • CommonMark\Node\OrderedList::__construct - OrderedList Construction
    • CommonMark\Node\Text::__construct - Text Construction
    • CommonMark\Parse - Parsing
    • CommonMark\Parser::finish - Parsing
    • CommonMark\Parser::parse - Parsing
    • CommonMark\Parser::__construct - Parsing
    • CommonMark\Render - Rendering
    • CommonMark\Render\HTML - Rendering
    • CommonMark\Render\Latex - Rendering
    • CommonMark\Render\Man - Rendering
    • CommonMark\Render\XML - Rendering
    • compact - 建立一个数组，包括变量名和它们的值
    • COMPersistHelper::GetCurFileName - Get current filename
    • COMPersistHelper::GetMaxStreamSize - Get maximum stream size
    • COMPersistHelper::InitNew - Initialize object to default state
    • COMPersistHelper::LoadFromFile - Load object from file
    • COMPersistHelper::LoadFromStream - Load object from stream
    • COMPersistHelper::SaveToFile - Save object to file
    • COMPersistHelper::SaveToStream - Save object to stream
    • COMPersistHelper::__construct - Construct a COMPersistHelper object
    • Componere\Abstract\Definition::addInterface - Add Interface
    • Componere\Abstract\Definition::addMethod - Add Method
    • Componere\Abstract\Definition::addTrait - Add Trait
    • Componere\Abstract\Definition::getReflector - Reflection
    • Componere\cast - Casting
    • Componere\cast_by_ref - Casting
    • Componere\Definition::addConstant - Add Constant
    • Componere\Definition::addProperty - Add Property
    • Componere\Definition::getClosure - Get Closure
    • Componere\Definition::getClosures - Get Closures
    • Componere\Definition::isRegistered - State Detection
    • Componere\Definition::register - Registration
    • Componere\Definition::__construct - Definition Construction
    • Componere\Method::getReflector - Reflection
    • Componere\Method::setPrivate - Accessibility Modification
    • Componere\Method::setProtected - Accessibility Modification
    • Componere\Method::setStatic - Accessibility Modification
    • Componere\Method::__construct - Method Construction
    • Componere\Patch::apply - Application
    • Componere\Patch::derive - Patch Derivation
    • Componere\Patch::getClosure - Get Closure
    • Componere\Patch::getClosures - Get Closures
    • Componere\Patch::isApplied - State Detection
    • Componere\Patch::revert - Reversal
    • Componere\Patch::__construct - Patch Construction
    • Componere\Value::hasDefault - Value Interaction
    • Componere\Value::isPrivate - Accessibility Detection
    • Componere\Value::isProtected - Accessibility Detection
    • Componere\Value::isStatic - Accessibility Detection
    • Componere\Value::setPrivate - Accessibility Modification
    • Componere\Value::setProtected - Accessibility Modification
    • Componere\Value::setStatic - Accessibility Modification
    • Componere\Value::__construct - Value Construction
    • com_create_guid - Generate a globally unique identifier (GUID)
    • com_event_sink - Connect events from a COM object to a PHP object
    • com_get_active_object - Returns a handle to an already running instance of a COM object
    • com_load_typelib - 载入 Typelib
    • com_message_pump - Process COM messages, sleeping for up to timeoutms milliseconds
    • com_print_typeinfo - Print out a PHP class definition for a dispatchable interface
    • connection_aborted - 检查客户端是否已经断开
    • connection_status - 返回连接的状态位
    • constant - 返回一个常量的值
    • convert_cyr_string - 将字符由一种 Cyrillic 字符转换成另一种
    • convert_uudecode - 解码一个 uuencode 编码的字符串
    • convert_uuencode - 使用 uuencode 编码一个字符串
    • copy - 拷贝文件
    • cos - 余弦
    • cosh - 双曲余弦
    • count - 统计数组、Countable 对象中所有元素的数量
    • Countable::count - 统计对象的元素个数
    • count_chars - 返回字符串所用字符的信息
    • crc32 - 计算一个字符串的 crc32 多项式
    • create_function - 通过执行代码字符串创建动态函数
    • CrudOperationBindable::bind - Bind value to placeholder
    • CrudOperationLimitable::limit - Set result limit
    • CrudOperationSkippable::skip - Number of operations to skip
    • CrudOperationSortable::sort - Sort results
    • crypt - 单向字符串散列
    • ctype_alnum - 检测字母数字式字符
    • ctype_alpha - 检测字母字符
    • ctype_cntrl - 检测控制字符
    • ctype_digit - 检测数字字符
    • ctype_graph - 检测除空格外的任何打印字符
    • ctype_lower - 检测小写字符
    • ctype_print - 检测可打印字符
    • ctype_punct - 检测可打印的字符是不是不包含空白、数字和字母
    • ctype_space - 检测空白字符
    • ctype_upper - 检测大写字符
    • ctype_xdigit - 检测字符是否只包含十六进制字符
    • cubrid_affected_rows - Return the number of rows affected by the last SQL statement
    • cubrid_bind - Bind variables to a prepared statement as parameters
    • cubrid_client_encoding - Return the current CUBRID connection charset
    • cubrid_close - Close CUBRID connection
    • cubrid_close_prepare - Close the request handle
    • cubrid_close_request - Close the request handle
    • cubrid_column_names - Get the column names in result
    • cubrid_column_types - Get column types in result
    • cubrid_col_get - Get contents of collection type column using OID
    • cubrid_col_size - Get the number of elements in collection type column using OID
    • cubrid_commit - Commit a transaction
    • cubrid_connect - Open a connection to a CUBRID Server
    • cubrid_connect_with_url - Establish the environment for connecting to CUBRID server
    • cubrid_current_oid - Get OID of the current cursor location
    • cubrid_data_seek - Move the internal row pointer of the CUBRID result
    • cubrid_db_name - Get db name from results of cubrid_list_dbs
    • cubrid_disconnect - Close a database connection
    • cubrid_drop - Delete an instance using OID
    • cubrid_errno - Return the numerical value of the error message from previous CUBRID operation
    • cubrid_error - Get the error message
    • cubrid_error_code - Get error code for the most recent function call
    • cubrid_error_code_facility - Get the facility code of error
    • cubrid_error_msg - Get last error message for the most recent function call
    • cubrid_execute - Execute a prepared SQL statement
    • cubrid_fetch - Fetch the next row from a result set
    • cubrid_fetch_array - Fetch a result row as an associative array, a numeric array, or both
    • cubrid_fetch_assoc - Return the associative array that corresponds to the fetched row
    • cubrid_fetch_field - Get column information from a result and return as an object
    • cubrid_fetch_lengths - Return an array with the lengths of the values of each field from the current row
    • cubrid_fetch_object - Fetch the next row and return it as an object
    • cubrid_fetch_row - Return a numerical array with the values of the current row
    • cubrid_field_flags - Return a string with the flags of the given field offset
    • cubrid_field_len - Get the maximum length of the specified field
    • cubrid_field_name - Return the name of the specified field index
    • cubrid_field_seek - Move the result set cursor to the specified field offset
    • cubrid_field_table - Return the name of the table of the specified field
    • cubrid_field_type - Return the type of the column corresponding to the given field offset
    • cubrid_free_result - Free the memory occupied by the result data
    • cubrid_get - Get a column using OID
    • cubrid_get_autocommit - Get auto-commit mode of the connection
    • cubrid_get_charset - Return the current CUBRID connection charset
    • cubrid_get_class_name - Get the class name using OID
    • cubrid_get_client_info - Return the client library version
    • cubrid_get_db_parameter - Returns the CUBRID database parameters
    • cubrid_get_query_timeout - Get the query timeout value of the request
    • cubrid_get_server_info - Return the CUBRID server version
    • cubrid_insert_id - Return the ID generated for the last updated AUTO_INCREMENT column
    • cubrid_is_instance - Check whether the instance pointed by OID exists
    • cubrid_list_dbs - Return an array with the list of all existing CUBRID databases
    • cubrid_load_from_glo - Read data from a GLO instance and save it in a file
    • cubrid_lob2_bind - Bind a lob object or a string as a lob object to a prepared statement as parameters
    • cubrid_lob2_close - Close LOB object
    • cubrid_lob2_export - Export the lob object to a file
    • cubrid_lob2_import - Import BLOB/CLOB data from a file
    • cubrid_lob2_new - Create a lob object
    • cubrid_lob2_read - Read from BLOB/CLOB data
    • cubrid_lob2_seek - Move the cursor of a lob object
    • cubrid_lob2_seek64 - Move the cursor of a lob object
    • cubrid_lob2_size - Get a lob object's size
    • cubrid_lob2_size64 - Get a lob object's size
    • cubrid_lob2_tell - Tell the cursor position of the LOB object
    • cubrid_lob2_tell64 - Tell the cursor position of the LOB object
    • cubrid_lob2_write - Write to a lob object
    • cubrid_lob_close - Close BLOB/CLOB data
    • cubrid_lob_export - Export BLOB/CLOB data to file
    • cubrid_lob_get - Get BLOB/CLOB data
    • cubrid_lob_send - Read BLOB/CLOB data and send straight to browser
    • cubrid_lob_size - Get BLOB/CLOB data size
    • cubrid_lock_read - Set a read lock on the given OID
    • cubrid_lock_write - Set a write lock on the given OID
    • cubrid_move_cursor - Move the cursor in the result
    • cubrid_new_glo - Create a glo instance
    • cubrid_next_result - Get result of next query when executing multiple SQL statements
    • cubrid_num_cols - Return the number of columns in the result set
    • cubrid_num_fields - Return the number of columns in the result set
    • cubrid_num_rows - Get the number of rows in the result set
    • cubrid_pconnect - Open a persistent connection to a CUBRID server
    • cubrid_pconnect_with_url - Open a persistent connection to CUBRID server
    • cubrid_ping - Ping a server connection or reconnect if there is no connection
    • cubrid_prepare - Prepare a SQL statement for execution
    • cubrid_put - Update a column using OID
    • cubrid_query - Send a CUBRID query
    • cubrid_real_escape_string - Escape special characters in a string for use in an SQL statement
    • cubrid_result - Return the value of a specific field in a specific row
    • cubrid_rollback - Roll back a transaction
    • cubrid_save_to_glo - Save requested file in a GLO instance
    • cubrid_schema - Get the requested schema information
    • cubrid_send_glo - Read data from glo and send it to std output
    • cubrid_seq_drop - Delete an element from sequence type column using OID
    • cubrid_seq_insert - Insert an element to a sequence type column using OID
    • cubrid_seq_put - Update the element value of sequence type column using OID
    • cubrid_set_add - Insert a single element to set type column using OID
    • cubrid_set_autocommit - Set autocommit mode of the connection
    • cubrid_set_db_parameter - Sets the CUBRID database parameters
    • cubrid_set_drop - Delete an element from set type column using OID
    • cubrid_set_query_timeout - Set the timeout time of query execution
    • cubrid_unbuffered_query - Perform a query without fetching the results into memory
    • cubrid_version - Get the CUBRID PHP module's version
    • CURLFile::getFilename - 获取文件名
    • CURLFile::getMimeType - 获取 MIME 类型
    • CURLFile::getPostFilename - 获取 POST 请求时的文件名
    • CURLFile::setMimeType - 设置 MIME 类型
    • CURLFile::setPostFilename - 设置 POST 请求时的文件名
    • CURLFile::__construct - 创建 CURLFile 对象
    • CURLStringFile::__construct - 创建 CURLStringFile 对象
    • curl_close - 关闭 cURL 会话
    • curl_copy_handle - 复制 cURL 句柄及其所有选项
    • curl_errno - 返回最后一次的错误代码
    • curl_error - 返回当前会话最后一次错误的字符串
    • curl_escape - 使用 URL 编码给定的字符串
    • curl_exec - 执行 cURL 会话
    • curl_getinfo - 获取一个cURL连接资源句柄的信息
    • curl_init - 初始化 cURL 会话
    • curl_multi_add_handle - 添加普通 cURL 句柄到 cURL 多句柄
    • curl_multi_close - 关闭一组 cURL 句柄
    • curl_multi_errno - 返回上一次 curl 批处理的错误码
    • curl_multi_exec - 运行当前 cURL 句柄的子连接
    • curl_multi_getcontent - 如果设置了 CURLOPT_RETURNTRANSFER，则返回 cURL 句柄的内容
    • curl_multi_info_read - 获取当前传输的有关信息
    • curl_multi_init - 返回新 cURL 批处理句柄
    • curl_multi_remove_handle - 从一组 cURL 句柄中移除一个多句柄
    • curl_multi_select - 在任意 curl_multi 连接上等待活动
    • curl_multi_setopt - 设置 cURL 并行选项
    • curl_multi_strerror - 返回字符串描述的错误代码
    • curl_pause - 暂停和取消暂停连接
    • curl_reset - 重置一个 libcurl 会话句柄的所有的选项
    • curl_setopt - 设置 cURL 传输选项
    • curl_setopt_array - 为 cURL 传输会话批量设置选项
    • curl_share_close - 关闭 cURL 共享句柄
    • curl_share_errno - 返回共享 curl 句柄的最后一次错误编号
    • curl_share_init - 初始化 cURL 共享句柄
    • curl_share_setopt - 为 cURL 共享句柄设置选项
    • curl_share_strerror - 返回错误编号对应的错误消息
    • curl_strerror - 返回错误代码的字符串描述
    • curl_unescape - 解码指定 URL 编码的字符串
    • curl_upkeep - Performs any connection upkeep checks
    • curl_version - 获取 cURL 版本信息
    • current - 返回数组中的当前值
  • d
    • DatabaseObject::existsInDatabase - Check if object exists in database
    • DatabaseObject::getName - Get object name
    • DatabaseObject::getSession - Get session name
    • date - 格式化 Unix 时间戳
    • DateInterval::createFromDateString - Sets up a DateInterval from the relative parts of the string
    • DateInterval::format - Formats the interval
    • DateInterval::__construct - Creates a new DateInterval object
    • DatePeriod::createFromISO8601String - Creates a new DatePeriod object from an ISO8601 string
    • DatePeriod::getDateInterval - Gets the interval
    • DatePeriod::getEndDate - Gets the end date
    • DatePeriod::getRecurrences - Gets the number of recurrences
    • DatePeriod::getStartDate - Gets the start date
    • DatePeriod::__construct - Creates a new DatePeriod object
    • DateTime::add - 修改 DateTime 对象，增加天、月、年、小时、分钟以及秒的数量。
    • DateTime::createFromFormat - 根据指定格式解析时间字符串
    • DateTime::createFromImmutable - Returns new DateTime instance encapsulating the given DateTimeImmutable object
    • DateTime::createFromInterface - Returns new DateTime object encapsulating the given DateTimeInterface object
    • DateTime::getLastErrors - 别名 DateTimeImmutable::getLastErrors
    • DateTime::modify - 修改日期时间对象的值
    • DateTime::setDate - 设置日期
    • DateTime::setISODate - 设置 ISO 日期
    • DateTime::setTime - 设置时间
    • DateTime::setTimestamp - 以 Unix 时间戳的方式设置日期和时间
    • DateTime::setTimezone - 设置 DateTime 对象的时区
    • DateTime::sub - 对 DateTime 对象减去一定量的日、月、年、小时、分钟和秒。
    • DateTime::__construct - 返回新的 DateTime 对象
    • DateTime::__set_state - __set_state 处理程序
    • DateTime::__wakeup - The __wakeup handler
    • DateTimeImmutable::add - Returns a new object, with added amount of days, months, years, hours, minutes and seconds
    • DateTimeImmutable::createFromFormat - Parses a time string according to a specified format
    • DateTimeImmutable::createFromInterface - Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object
    • DateTimeImmutable::createFromMutable - Returns new DateTimeImmutable instance encapsulating the given DateTime object
    • DateTimeImmutable::getLastErrors - Returns the warnings and errors
    • DateTimeImmutable::modify - Creates a new object with modified timestamp
    • DateTimeImmutable::setDate - Sets the date
    • DateTimeImmutable::setISODate - Sets the ISO date
    • DateTimeImmutable::setTime - Sets the time
    • DateTimeImmutable::setTimestamp - Sets the date and time based on a Unix timestamp
    • DateTimeImmutable::setTimezone - Sets the time zone
    • DateTimeImmutable::sub - Subtracts an amount of days, months, years, hours, minutes and seconds
    • DateTimeImmutable::__construct - Returns new DateTimeImmutable object
    • DateTimeImmutable::__set_state - The __set_state handler
    • DateTimeInterface::diff - 返回两个 DateTime 之间的差值
    • DateTimeInterface::format - 按照指定格式返回格式化后的日期
    • DateTimeInterface::getOffset - 返回时差
    • DateTimeInterface::getTimestamp - 获取 Unix 时间戳
    • DateTimeInterface::getTimezone - 返回相对于指定 DateTime 的时区
    • DateTimeZone::getLocation - 返回与时区相关的定位信息
    • DateTimeZone::getName - 返回时区名称
    • DateTimeZone::getOffset - 返回相对于 GMT 的时差
    • DateTimeZone::getTransitions - Returns all transitions for the timezone
    • DateTimeZone::listAbbreviations - 返回一个包含 dst (夏令时)，时差和时区信息的关联数组。
    • DateTimeZone::listIdentifiers - 返回包含了所有时区标识符的数字索引数组
    • DateTimeZone::__construct - 创建新的DateTimeZone对象
    • date_add - 别名 DateTime::add
    • date_create - create a new DateTime object
    • date_create_from_format - 别名 DateTime::createFromFormat
    • date_create_immutable - create a new DateTimeImmutable object
    • date_create_immutable_from_format - 别名 DateTimeImmutable::createFromFormat
    • date_date_set - 别名 DateTime::setDate
    • date_default_timezone_get - 取得脚本中所有日期/时间函数所使用的默认时区
    • date_default_timezone_set - 设置脚本中所有日期/时间函数使用的默认时区
    • date_diff - 别名 DateTime::diff
    • date_format - 别名 DateTime::format
    • date_get_last_errors - 别名 DateTimeImmutable::getLastErrors
    • date_interval_create_from_date_string - 别名 DateInterval::createFromDateString
    • date_interval_format - 别名 DateInterval::format
    • date_isodate_set - 别名 DateTime::setISODate
    • date_modify - 别名 DateTime::modify
    • date_offset_get - 别名 DateTime::getOffset
    • date_parse - 返回指定日期/时间的详细信息的关联数组
    • date_parse_from_format - Get info about given date formatted according to the specified format
    • date_sub - 别名 DateTime::sub
    • date_sunrise - 返回给定的日期与地点的日出时间
    • date_sunset - 返回给定的日期与地点的日落时间
    • date_sun_info - Returns an array with information about sunset/sunrise and twilight begin/end
    • date_timestamp_get - 别名 DateTime::getTimestamp
    • date_timestamp_set - 别名 DateTime::setTimestamp
    • date_timezone_get - 别名 DateTime::getTimezone
    • date_timezone_set - 别名 DateTime::setTimezone
    • date_time_set - 别名 DateTime::setTime
    • db2_autocommit - Returns or sets the AUTOCOMMIT state for a database connection
    • db2_bind_param - Binds a PHP variable to an SQL statement parameter
    • db2_client_info - Returns an object with properties that describe the DB2 database client
    • db2_close - Closes a database connection
    • db2_columns - Returns a result set listing the columns and associated metadata for a table
    • db2_column_privileges - Returns a result set listing the columns and associated privileges for a table
    • db2_commit - Commits a transaction
    • db2_connect - Returns a connection to a database
    • db2_conn_error - Returns a string containing the SQLSTATE returned by the last connection attempt
    • db2_conn_errormsg - Returns the last connection error message and SQLCODE value
    • db2_cursor_type - Returns the cursor type used by a statement resource
    • db2_escape_string - Used to escape certain characters
    • db2_exec - Executes an SQL statement directly
    • db2_execute - Executes a prepared SQL statement
    • db2_fetch_array - Returns an array, indexed by column position, representing a row in a result set
    • db2_fetch_assoc - Returns an array, indexed by column name, representing a row in a result set
    • db2_fetch_both - Returns an array, indexed by both column name and position, representing a row in a result set
    • db2_fetch_object - Returns an object with properties representing columns in the fetched row
    • db2_fetch_row - Sets the result set pointer to the next row or requested row
    • db2_field_display_size - Returns the maximum number of bytes required to display a column
    • db2_field_name - Returns the name of the column in the result set
    • db2_field_num - Returns the position of the named column in a result set
    • db2_field_precision - Returns the precision of the indicated column in a result set
    • db2_field_scale - Returns the scale of the indicated column in a result set
    • db2_field_type - Returns the data type of the indicated column in a result set
    • db2_field_width - Returns the width of the current value of the indicated column in a result set
    • db2_foreign_keys - Returns a result set listing the foreign keys for a table
    • db2_free_result - Frees resources associated with a result set
    • db2_free_stmt - Frees resources associated with the indicated statement resource
    • db2_get_option - Retrieves an option value for a statement resource or a connection resource
    • db2_last_insert_id - Returns the auto generated ID of the last insert query that successfully executed on this connection
    • db2_lob_read - Gets a user defined size of LOB files with each invocation
    • db2_next_result - Requests the next result set from a stored procedure
    • db2_num_fields - Returns the number of fields contained in a result set
    • db2_num_rows - Returns the number of rows affected by an SQL statement
    • db2_pclose - Closes a persistent database connection
    • db2_pconnect - Returns a persistent connection to a database
    • db2_prepare - Prepares an SQL statement to be executed
    • db2_primary_keys - Returns a result set listing primary keys for a table
    • db2_procedures - Returns a result set listing the stored procedures registered in a database
    • db2_procedure_columns - Returns a result set listing stored procedure parameters
    • db2_result - Returns a single column from a row in the result set
    • db2_rollback - Rolls back a transaction
    • db2_server_info - Returns an object with properties that describe the DB2 database server
    • db2_set_option - Set options for connection or statement resources
    • db2_special_columns - Returns a result set listing the unique row identifier columns for a table
    • db2_statistics - Returns a result set listing the index and statistics for a table
    • db2_stmt_error - Returns a string containing the SQLSTATE returned by an SQL statement
    • db2_stmt_errormsg - Returns a string containing the last SQL statement error message
    • db2_tables - Returns a result set listing the tables and associated metadata in a database
    • db2_table_privileges - Returns a result set listing the tables and associated privileges in a database
    • dbase_add_record - Adds a record to a database
    • dbase_close - Closes a database
    • dbase_create - Creates a database
    • dbase_delete_record - Deletes a record from a database
    • dbase_get_header_info - Gets the header info of a database
    • dbase_get_record - Gets a record from a database as an indexed array
    • dbase_get_record_with_names - Gets a record from a database as an associative array
    • dbase_numfields - Gets the number of fields of a database
    • dbase_numrecords - Gets the number of records in a database
    • dbase_open - Opens a database
    • dbase_pack - Packs a database
    • dbase_replace_record - Replaces a record in a database
    • dba_close - Close a DBA database
    • dba_delete - Delete DBA entry specified by key
    • dba_exists - Check whether key exists
    • dba_fetch - Fetch data specified by key
    • dba_firstkey - Fetch first key
    • dba_handlers - List all the handlers available
    • dba_insert - Insert entry
    • dba_key_split - Splits a key in string representation into array representation
    • dba_list - List all open database files
    • dba_nextkey - Fetch next key
    • dba_open - Open database
    • dba_optimize - Optimize database
    • dba_popen - Open database persistently
    • dba_replace - Replace or insert entry
    • dba_sync - Synchronize database
    • dcgettext - Overrides the domain for a single lookup
    • dcngettext - Plural version of dcgettext
    • debug_backtrace - 产生一条回溯跟踪(backtrace)
    • debug_print_backtrace - 打印一条回溯。
    • debug_zval_dump - 将表示内部 zval 结构的字符串转储到输出
    • decbin - 十进制转换为二进制
    • dechex - 十进制转换为十六进制
    • decoct - 十进制转换为八进制
    • define - 定义一个常量
    • defined - 检查给定名称的常量是否存在
    • deflate_add - Incrementally deflate data
    • deflate_init - Initialize an incremental deflate context
    • deg2rad - 将角度转换为弧度
    • delete - 参见 unlink 或 unset
    • dgettext - Override the current domain
    • die - 等同于 exit
    • dio_close - 通过 fd 关闭文件描述符
    • dio_fcntl - 在 fd 上执行 C 标准库的 fcntl
    • dio_open - 在 C 库输入/输出流函数允许的更低级别打开（必要时创建）文件
    • dio_read - 从文件描述符读取字节
    • dio_seek - 在 fd 指定 pos 位置
    • dio_stat - 获取有关文件描述符 fd 的统计信息
    • dio_tcsetattr - 设置串行端口的终端属性和波特率
    • dio_truncate - 截断文件描述符 fd 为 offset 字节
    • dio_write - 截取可选长度的数据写入文件
    • dir - 返回一个 Directory 类实例
    • Directory::close - 关闭目录句柄
    • Directory::read - 从目录句柄中读取条目
    • Directory::rewind - 倒回目录句柄
    • DirectoryIterator::current - Return the current DirectoryIterator item
    • DirectoryIterator::getBasename - Get base name of current DirectoryIterator item
    • DirectoryIterator::getExtension - Gets the file extension
    • DirectoryIterator::getFilename - Return file name of current DirectoryIterator item
    • DirectoryIterator::isDot - Determine if current DirectoryIterator item is '.' or '..'
    • DirectoryIterator::key - Return the key for the current DirectoryIterator item
    • DirectoryIterator::next - Move forward to next DirectoryIterator item
    • DirectoryIterator::rewind - Rewind the DirectoryIterator back to the start
    • DirectoryIterator::seek - Seek to a DirectoryIterator item
    • DirectoryIterator::valid - Check whether current DirectoryIterator position is a valid file
    • DirectoryIterator::__construct - Constructs a new directory iterator from a path
    • DirectoryIterator::__toString - Get file name as a string
    • dirname - 返回路径中的目录部分
    • diskfreespace - disk_free_space 的别名
    • disk_free_space - 返回目录中的可用空间
    • disk_total_space - 返回一个目录的磁盘总大小
    • dl - 运行时载入一个 PHP 扩展
    • dngettext - Plural version of dgettext
    • dns_check_record - 别名 checkdnsrr
    • dns_get_mx - 别名 getmxrr
    • dns_get_record - 获取指定主机名的 DNS 纪录
    • DocResult::fetchAll - Get all rows
    • DocResult::fetchOne - Get one row
    • DocResult::getWarnings - Get warnings from last operation
    • DocResult::getWarningsCount - Get warning count from last operation
    • DocResult::__construct - DocResult constructor
    • DOMAttr::isId - Checks if attribute is a defined ID
    • DOMAttr::__construct - Creates a new DOMAttr object
    • DOMCdataSection::__construct - Constructs a new DOMCdataSection object
    • DOMCharacterData::after - Adds nodes after the character data
    • DOMCharacterData::appendData - Append the string to the end of the character data of the node
    • DOMCharacterData::before - Adds nodes before the node
    • DOMCharacterData::deleteData - Remove a range of characters from the node
    • DOMCharacterData::insertData - Insert a string at the specified 16-bit unit offset
    • DOMCharacterData::remove - Removes the character data
    • DOMCharacterData::replaceData - Replace a substring within the DOMCharacterData node
    • DOMCharacterData::replaceWith - Replaces the character data with new nodes
    • DOMCharacterData::substringData - Extracts a range of data from the node
    • DOMChildNode::after - Adds nodes after the node
    • DOMChildNode::before - Adds nodes before the node
    • DOMChildNode::remove - Removes the node
    • DOMChildNode::replaceWith - Replaces the node with new nodes
    • DOMComment::__construct - Creates a new DOMComment object
    • DOMDocument::adoptNode - Transfer a node from another document
    • DOMDocument::append - Appends nodes after the last child node
    • DOMDocument::createAttribute - Create new attribute
    • DOMDocument::createAttributeNS - Create new attribute node with an associated namespace
    • DOMDocument::createCDATASection - Create new cdata node
    • DOMDocument::createComment - Create new comment node
    • DOMDocument::createDocumentFragment - Create new document fragment
    • DOMDocument::createElement - Create new element node
    • DOMDocument::createElementNS - Create new element node with an associated namespace
    • DOMDocument::createEntityReference - Create new entity reference node
    • DOMDocument::createProcessingInstruction - Creates new PI node
    • DOMDocument::createTextNode - Create new text node
    • DOMDocument::getElementById - Searches for an element with a certain id
    • DOMDocument::getElementsByTagName - Searches for all elements with given local tag name
    • DOMDocument::getElementsByTagNameNS - Searches for all elements with given tag name in specified namespace
    • DOMDocument::importNode - Import node into current document
    • DOMDocument::load - Load XML from a file
    • DOMDocument::loadHTML - Load HTML from a string
    • DOMDocument::loadHTMLFile - Load HTML from a file
    • DOMDocument::loadXML - Load XML from a string
    • DOMDocument::normalizeDocument - Normalizes the document
    • DOMDocument::prepend - Prepends nodes before the first child node
    • DOMDocument::registerNodeClass - Register extended class used to create base node type
    • DOMDocument::relaxNGValidate - Performs relaxNG validation on the document
    • DOMDocument::relaxNGValidateSource - Performs relaxNG validation on the document
    • DOMDocument::replaceChildren - Replace children in document
    • DOMDocument::save - Dumps the internal XML tree back into a file
    • DOMDocument::saveHTML - Dumps the internal document into a string using HTML formatting
    • DOMDocument::saveHTMLFile - Dumps the internal document into a file using HTML formatting
    • DOMDocument::saveXML - Dumps the internal XML tree back into a string
    • DOMDocument::schemaValidate - Validates a document based on a schema. Only XML Schema 1.0 is supported.
    • DOMDocument::schemaValidateSource - Validates a document based on a schema
    • DOMDocument::validate - Validates the document based on its DTD
    • DOMDocument::xinclude - Substitutes XIncludes in a DOMDocument Object
    • DOMDocument::__construct - Creates a new DOMDocument object
    • DOMDocumentFragment::append - Appends nodes after the last child node
    • DOMDocumentFragment::appendXML - Append raw XML data
    • DOMDocumentFragment::prepend - Prepends nodes before the first child node
    • DOMDocumentFragment::replaceChildren - Replace children in fragment
    • DOMDocumentFragment::__construct - Constructs a DOMDocumentFragment object
    • DOMElement::after - Adds nodes after the element
    • DOMElement::append - Appends nodes after the last child node
    • DOMElement::before - Adds nodes before the element
    • DOMElement::getAttribute - Returns value of attribute
    • DOMElement::getAttributeNames - Get attribute names
    • DOMElement::getAttributeNode - Returns attribute node
    • DOMElement::getAttributeNodeNS - Returns attribute node
    • DOMElement::getAttributeNS - Returns value of attribute
    • DOMElement::getElementsByTagName - Gets elements by tagname
    • DOMElement::getElementsByTagNameNS - Get elements by namespaceURI and localName
    • DOMElement::hasAttribute - Checks to see if attribute exists
    • DOMElement::hasAttributeNS - Checks to see if attribute exists
    • DOMElement::insertAdjacentElement - Insert adjacent element
    • DOMElement::insertAdjacentText - Insert adjacent text
    • DOMElement::prepend - Prepends nodes before the first child node
    • DOMElement::remove - Removes the element
    • DOMElement::removeAttribute - Removes attribute
    • DOMElement::removeAttributeNode - Removes attribute
    • DOMElement::removeAttributeNS - Removes attribute
    • DOMElement::replaceChildren - Replace children in element
    • DOMElement::replaceWith - Replaces the element with new nodes
    • DOMElement::setAttribute - Adds new or modifies existing attribute
    • DOMElement::setAttributeNode - Adds new attribute node to element
    • DOMElement::setAttributeNodeNS - Adds new attribute node to element
    • DOMElement::setAttributeNS - Adds new attribute
    • DOMElement::setIdAttribute - Declares the attribute specified by name to be of type ID
    • DOMElement::setIdAttributeNode - Declares the attribute specified by node to be of type ID
    • DOMElement::setIdAttributeNS - Declares the attribute specified by local name and namespace URI to be of type ID
    • DOMElement::toggleAttribute - Toggle attribute
    • DOMElement::__construct - Creates a new DOMElement object
    • DOMEntityReference::__construct - Creates a new DOMEntityReference object
    • DOMImplementation::createDocument - Creates a DOMDocument object of the specified type with its document element
    • DOMImplementation::createDocumentType - Creates an empty DOMDocumentType object
    • DOMImplementation::hasFeature - Test if the DOM implementation implements a specific feature
    • DOMImplementation::__construct - Creates a new DOMImplementation object
    • DOMNamedNodeMap::count - Get number of nodes in the map
    • DOMNamedNodeMap::getIterator - Retrieve an external iterator
    • DOMNamedNodeMap::getNamedItem - Retrieves a node specified by name
    • DOMNamedNodeMap::getNamedItemNS - Retrieves a node specified by local name and namespace URI
    • DOMNamedNodeMap::item - Retrieves a node specified by index
    • DOMNode::appendChild - Adds new child at the end of the children
    • DOMNode::C14N - Canonicalize nodes to a string
    • DOMNode::C14NFile - Canonicalize nodes to a file
    • DOMNode::cloneNode - Clones a node
    • DOMNode::contains - Checks if node contains other node
    • DOMNode::getLineNo - Get line number for a node
    • DOMNode::getNodePath - Get an XPath for a node
    • DOMNode::getRootNode - Get root node
    • DOMNode::hasAttributes - Checks if node has attributes
    • DOMNode::hasChildNodes - Checks if node has children
    • DOMNode::insertBefore - Adds a new child before a reference node
    • DOMNode::isDefaultNamespace - Checks if the specified namespaceURI is the default namespace or not
    • DOMNode::isEqualNode - Checks that both nodes are equal
    • DOMNode::isSameNode - Indicates if two nodes are the same node
    • DOMNode::isSupported - Checks if feature is supported for specified version
    • DOMNode::lookupNamespaceURI - Gets the namespace URI of the node based on the prefix
    • DOMNode::lookupPrefix - Gets the namespace prefix of the node based on the namespace URI
    • DOMNode::normalize - Normalizes the node
    • DOMNode::removeChild - Removes child from list of children
    • DOMNode::replaceChild - Replaces a child
    • DOMNodeList::count - Get number of nodes in the list
    • DOMNodeList::getIterator - Retrieve an external iterator
    • DOMNodeList::item - Retrieves a node specified by index
    • DOMParentNode::append - Appends nodes after the last child node
    • DOMParentNode::prepend - Prepends nodes before the first child node
    • DOMParentNode::replaceChildren - Replace children in node
    • DOMProcessingInstruction::__construct - Creates a new DOMProcessingInstruction object
    • DOMText::isElementContentWhitespace - Returns whether this text node contains whitespace in element content
    • DOMText::isWhitespaceInElementContent - Indicates whether this text node contains whitespace
    • DOMText::splitText - Breaks this node into two nodes at the specified offset
    • DOMText::__construct - Creates a new DOMText object
    • DOMXPath::evaluate - Evaluates the given XPath expression and returns a typed result if possible
    • DOMXPath::query - Evaluates the given XPath expression
    • DOMXPath::registerNamespace - Registers the namespace with the DOMXPath object
    • DOMXPath::registerPhpFunctions - Register PHP functions as XPath functions
    • DOMXPath::__construct - Creates a new DOMXPath object
    • dom_import_simplexml - Gets a DOMElement object from a SimpleXMLElement object
    • dotnet::__construct - dotnet class constructor
    • doubleval - 别名 floatval
    • Ds\Collection::clear - Removes all values
    • Ds\Collection::copy - Returns a shallow copy of the collection
    • Ds\Collection::isEmpty - Returns whether the collection is empty
    • Ds\Collection::toArray - Converts the collection to an array
    • Ds\Deque::allocate - Allocates enough memory for a required capacity
    • Ds\Deque::apply - Updates all values by applying a callback function to each value
    • Ds\Deque::capacity - Returns the current capacity
    • Ds\Deque::clear - Removes all values from the deque
    • Ds\Deque::contains - Determines if the deque contains given values
    • Ds\Deque::copy - Returns a shallow copy of the deque
    • Ds\Deque::count - Returns the number of values in the collection
    • Ds\Deque::filter - Creates a new deque using a callable to determine which values to include
    • Ds\Deque::find - Attempts to find a value's index
    • Ds\Deque::first - Returns the first value in the deque
    • Ds\Deque::get - Returns the value at a given index
    • Ds\Deque::insert - Inserts values at a given index
    • Ds\Deque::isEmpty - Returns whether the deque is empty
    • Ds\Deque::join - Joins all values together as a string
    • Ds\Deque::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Deque::last - Returns the last value
    • Ds\Deque::map - Returns the result of applying a callback to each value
    • Ds\Deque::merge - Returns the result of adding all given values to the deque
    • Ds\Deque::pop - Removes and returns the last value
    • Ds\Deque::push - Adds values to the end of the deque
    • Ds\Deque::reduce - Reduces the deque to a single value using a callback function
    • Ds\Deque::remove - Removes and returns a value by index
    • Ds\Deque::reverse - Reverses the deque in-place
    • Ds\Deque::reversed - Returns a reversed copy
    • Ds\Deque::rotate - Rotates the deque by a given number of rotations
    • Ds\Deque::set - Updates a value at a given index
    • Ds\Deque::shift - Removes and returns the first value
    • Ds\Deque::slice - Returns a sub-deque of a given range
    • Ds\Deque::sort - Sorts the deque in-place
    • Ds\Deque::sorted - Returns a sorted copy
    • Ds\Deque::sum - Returns the sum of all values in the deque
    • Ds\Deque::toArray - Converts the deque to an array
    • Ds\Deque::unshift - Adds values to the front of the deque
    • Ds\Deque::__construct - Creates a new instance
    • Ds\Hashable::equals - Determines whether an object is equal to the current instance
    • Ds\Hashable::hash - Returns a scalar value to be used as a hash value
    • Ds\Map::allocate - Allocates enough memory for a required capacity
    • Ds\Map::apply - Updates all values by applying a callback function to each value
    • Ds\Map::capacity - Returns the current capacity
    • Ds\Map::clear - Removes all values
    • Ds\Map::copy - Returns a shallow copy of the map
    • Ds\Map::count - Returns the number of values in the map
    • Ds\Map::diff - Creates a new map using keys that aren't in another map
    • Ds\Map::filter - Creates a new map using a callable to determine which pairs to include
    • Ds\Map::first - Returns the first pair in the map
    • Ds\Map::get - Returns the value for a given key
    • Ds\Map::hasKey - Determines whether the map contains a given key
    • Ds\Map::hasValue - Determines whether the map contains a given value
    • Ds\Map::intersect - Creates a new map by intersecting keys with another map
    • Ds\Map::isEmpty - Returns whether the map is empty
    • Ds\Map::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Map::keys - Returns a set of the map's keys
    • Ds\Map::ksort - Sorts the map in-place by key
    • Ds\Map::ksorted - Returns a copy, sorted by key
    • Ds\Map::last - Returns the last pair of the map
    • Ds\Map::map - Returns the result of applying a callback to each value
    • Ds\Map::merge - Returns the result of adding all given associations
    • Ds\Map::pairs - Returns a sequence containing all the pairs of the map
    • Ds\Map::put - Associates a key with a value
    • Ds\Map::putAll - Associates all key-value pairs of a traversable object or array
    • Ds\Map::reduce - Reduces the map to a single value using a callback function
    • Ds\Map::remove - Removes and returns a value by key
    • Ds\Map::reverse - Reverses the map in-place
    • Ds\Map::reversed - Returns a reversed copy
    • Ds\Map::skip - Returns the pair at a given positional index
    • Ds\Map::slice - Returns a subset of the map defined by a starting index and length
    • Ds\Map::sort - Sorts the map in-place by value
    • Ds\Map::sorted - Returns a copy, sorted by value
    • Ds\Map::sum - Returns the sum of all values in the map
    • Ds\Map::toArray - Converts the map to an array
    • Ds\Map::union - Creates a new map using values from the current instance and another map
    • Ds\Map::values - Returns a sequence of the map's values
    • Ds\Map::xor - Creates a new map using keys of either the current instance or of another map, but not of both
    • Ds\Map::__construct - Creates a new instance
    • Ds\Pair::clear - Removes all values
    • Ds\Pair::copy - Returns a shallow copy of the pair
    • Ds\Pair::isEmpty - Returns whether the pair is empty
    • Ds\Pair::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Pair::toArray - Converts the pair to an array
    • Ds\Pair::__construct - Creates a new instance
    • Ds\PriorityQueue::allocate - Allocates enough memory for a required capacity
    • Ds\PriorityQueue::capacity - Returns the current capacity
    • Ds\PriorityQueue::clear - Removes all values
    • Ds\PriorityQueue::copy - Returns a shallow copy of the queue
    • Ds\PriorityQueue::count - Returns the number of values in the queue
    • Ds\PriorityQueue::isEmpty - Returns whether the queue is empty
    • Ds\PriorityQueue::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\PriorityQueue::peek - Returns the value at the front of the queue
    • Ds\PriorityQueue::pop - Removes and returns the value with the highest priority
    • Ds\PriorityQueue::push - Pushes values into the queue
    • Ds\PriorityQueue::toArray - Converts the queue to an array
    • Ds\PriorityQueue::__construct - Creates a new instance
    • Ds\Queue::allocate - Allocates enough memory for a required capacity
    • Ds\Queue::capacity - Returns the current capacity
    • Ds\Queue::clear - Removes all values
    • Ds\Queue::copy - Returns a shallow copy of the queue
    • Ds\Queue::count - Returns the number of values in the queue
    • Ds\Queue::isEmpty - Returns whether the queue is empty
    • Ds\Queue::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Queue::peek - Returns the value at the front of the queue
    • Ds\Queue::pop - Removes and returns the value at the front of the queue
    • Ds\Queue::push - Pushes values into the queue
    • Ds\Queue::toArray - Converts the queue to an array
    • Ds\Queue::__construct - Creates a new instance
    • Ds\Sequence::allocate - Allocates enough memory for a required capacity
    • Ds\Sequence::apply - Updates all values by applying a callback function to each value
    • Ds\Sequence::capacity - Returns the current capacity
    • Ds\Sequence::contains - Determines if the sequence contains given values
    • Ds\Sequence::filter - Creates a new sequence using a callable to determine which values to include
    • Ds\Sequence::find - Attempts to find a value's index
    • Ds\Sequence::first - Returns the first value in the sequence
    • Ds\Sequence::get - Returns the value at a given index
    • Ds\Sequence::insert - Inserts values at a given index
    • Ds\Sequence::join - Joins all values together as a string
    • Ds\Sequence::last - Returns the last value
    • Ds\Sequence::map - Returns the result of applying a callback to each value
    • Ds\Sequence::merge - Returns the result of adding all given values to the sequence
    • Ds\Sequence::pop - Removes and returns the last value
    • Ds\Sequence::push - Adds values to the end of the sequence
    • Ds\Sequence::reduce - Reduces the sequence to a single value using a callback function
    • Ds\Sequence::remove - Removes and returns a value by index
    • Ds\Sequence::reverse - Reverses the sequence in-place
    • Ds\Sequence::reversed - Returns a reversed copy
    • Ds\Sequence::rotate - Rotates the sequence by a given number of rotations
    • Ds\Sequence::set - Updates a value at a given index
    • Ds\Sequence::shift - Removes and returns the first value
    • Ds\Sequence::slice - Returns a sub-sequence of a given range
    • Ds\Sequence::sort - Sorts the sequence in-place
    • Ds\Sequence::sorted - Returns a sorted copy
    • Ds\Sequence::sum - Returns the sum of all values in the sequence
    • Ds\Sequence::unshift - Adds values to the front of the sequence
    • Ds\Set::add - Adds values to the set
    • Ds\Set::allocate - Allocates enough memory for a required capacity
    • Ds\Set::capacity - Returns the current capacity
    • Ds\Set::clear - Removes all values
    • Ds\Set::contains - Determines if the set contains all values
    • Ds\Set::copy - Returns a shallow copy of the set
    • Ds\Set::count - Returns the number of values in the set
    • Ds\Set::diff - Creates a new set using values that aren't in another set
    • Ds\Set::filter - Creates a new set using a callable to determine which values to include
    • Ds\Set::first - Returns the first value in the set
    • Ds\Set::get - Returns the value at a given index
    • Ds\Set::intersect - Creates a new set by intersecting values with another set
    • Ds\Set::isEmpty - Returns whether the set is empty
    • Ds\Set::join - Joins all values together as a string
    • Ds\Set::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Set::last - Returns the last value in the set
    • Ds\Set::merge - Returns the result of adding all given values to the set
    • Ds\Set::reduce - Reduces the set to a single value using a callback function
    • Ds\Set::remove - Removes all given values from the set
    • Ds\Set::reverse - Reverses the set in-place
    • Ds\Set::reversed - Returns a reversed copy
    • Ds\Set::slice - Returns a sub-set of a given range
    • Ds\Set::sort - Sorts the set in-place
    • Ds\Set::sorted - Returns a sorted copy
    • Ds\Set::sum - Returns the sum of all values in the set
    • Ds\Set::toArray - Converts the set to an array
    • Ds\Set::union - Creates a new set using values from the current instance and another set
    • Ds\Set::xor - Creates a new set using values in either the current instance or in another set, but not in both
    • Ds\Set::__construct - Creates a new instance
    • Ds\Stack::allocate - Allocates enough memory for a required capacity
    • Ds\Stack::capacity - Returns the current capacity
    • Ds\Stack::clear - Removes all values
    • Ds\Stack::copy - Returns a shallow copy of the stack
    • Ds\Stack::count - Returns the number of values in the stack
    • Ds\Stack::isEmpty - Returns whether the stack is empty
    • Ds\Stack::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Stack::peek - Returns the value at the top of the stack
    • Ds\Stack::pop - Removes and returns the value at the top of the stack
    • Ds\Stack::push - Pushes values onto the stack
    • Ds\Stack::toArray - Converts the stack to an array
    • Ds\Stack::__construct - Creates a new instance
    • Ds\Vector::allocate - Allocates enough memory for a required capacity
    • Ds\Vector::apply - Updates all values by applying a callback function to each value
    • Ds\Vector::capacity - Returns the current capacity
    • Ds\Vector::clear - Removes all values
    • Ds\Vector::contains - Determines if the vector contains given values
    • Ds\Vector::copy - Returns a shallow copy of the vector
    • Ds\Vector::count - Returns the number of values in the collection
    • Ds\Vector::filter - Creates a new vector using a callable to determine which values to include
    • Ds\Vector::find - Attempts to find a value's index
    • Ds\Vector::first - Returns the first value in the vector
    • Ds\Vector::get - Returns the value at a given index
    • Ds\Vector::insert - Inserts values at a given index
    • Ds\Vector::isEmpty - Returns whether the vector is empty
    • Ds\Vector::join - Joins all values together as a string
    • Ds\Vector::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Vector::last - Returns the last value
    • Ds\Vector::map - Returns the result of applying a callback to each value
    • Ds\Vector::merge - Returns the result of adding all given values to the vector
    • Ds\Vector::pop - Removes and returns the last value
    • Ds\Vector::push - Adds values to the end of the vector
    • Ds\Vector::reduce - Reduces the vector to a single value using a callback function
    • Ds\Vector::remove - Removes and returns a value by index
    • Ds\Vector::reverse - Reverses the vector in-place
    • Ds\Vector::reversed - Returns a reversed copy
    • Ds\Vector::rotate - Rotates the vector by a given number of rotations
    • Ds\Vector::set - Updates a value at a given index
    • Ds\Vector::shift - Removes and returns the first value
    • Ds\Vector::slice - Returns a sub-vector of a given range
    • Ds\Vector::sort - Sorts the vector in-place
    • Ds\Vector::sorted - Returns a sorted copy
    • Ds\Vector::sum - Returns the sum of all values in the vector
    • Ds\Vector::toArray - Converts the vector to an array
    • Ds\Vector::unshift - Adds values to the front of the vector
    • Ds\Vector::__construct - Creates a new instance
  • e
    • each - 返回数组中当前的键／值对并将数组指针向前移动一步
    • easter_date - 得到指定年份的复活节午夜时的 Unix 时间戳
    • easter_days - 得到指定年份的 3 月 21 日到复活节之间的天数
    • echo - 输出一个或多个字符串
    • eio_busy - Artificially increase load. Could be useful in tests, benchmarking
    • eio_cancel - Cancels a request
    • eio_chmod - Change file/directory permissions
    • eio_chown - Change file/directory permissions
    • eio_close - Close file
    • eio_custom - Execute custom request like any other eio_* call
    • eio_dup2 - Duplicate a file descriptor
    • eio_event_loop - Polls libeio until all requests proceeded
    • eio_fallocate - Allows the caller to directly manipulate the allocated disk space for a file
    • eio_fchmod - Change file permissions
    • eio_fchown - Change file ownership
    • eio_fdatasync - Synchronize a file's in-core state with storage device
    • eio_fstat - Get file status
    • eio_fstatvfs - Get file system statistics
    • eio_fsync - Synchronize a file's in-core state with storage device
    • eio_ftruncate - Truncate a file
    • eio_futime - Change file last access and modification times
    • eio_get_event_stream - Get stream representing a variable used in internal communications with libeio
    • eio_get_last_error - Returns string describing the last error associated with a request resource
    • eio_grp - Creates a request group
    • eio_grp_add - Adds a request to the request group
    • eio_grp_cancel - Cancels a request group
    • eio_grp_limit - Set group limit
    • eio_init - (Re-)initialize Eio
    • eio_link - Create a hardlink for file
    • eio_lstat - Get file status
    • eio_mkdir - Create directory
    • eio_mknod - Create a special or ordinary file
    • eio_nop - Does nothing, except go through the whole request cycle
    • eio_npending - Returns number of finished, but unhandled requests
    • eio_nready - Returns number of not-yet handled requests
    • eio_nreqs - Returns number of requests to be processed
    • eio_nthreads - Returns number of threads currently in use
    • eio_open - Opens a file
    • eio_poll - Can be to be called whenever there are pending requests that need finishing
    • eio_read - Read from a file descriptor at given offset
    • eio_readahead - Perform file readahead into page cache
    • eio_readdir - Reads through a whole directory
    • eio_readlink - Read value of a symbolic link
    • eio_realpath - Get the canonicalized absolute pathname
    • eio_rename - Change the name or location of a file
    • eio_rmdir - Remove a directory
    • eio_seek - Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence
    • eio_sendfile - Transfer data between file descriptors
    • eio_set_max_idle - Set maximum number of idle threads
    • eio_set_max_parallel - Set maximum parallel threads
    • eio_set_max_poll_reqs - Set maximum number of requests processed in a poll
    • eio_set_max_poll_time - Set maximum poll time
    • eio_set_min_parallel - Set minimum parallel thread number
    • eio_stat - Get file status
    • eio_statvfs - Get file system statistics
    • eio_symlink - Create a symbolic link
    • eio_sync - Commit buffer cache to disk
    • eio_syncfs - Calls Linux' syncfs syscall, if available
    • eio_sync_file_range - Sync a file segment with disk
    • eio_truncate - Truncate a file
    • eio_unlink - Delete a name and possibly the file it refers to
    • eio_utime - Change file last access and modification times
    • eio_write - Write to file
    • empty - 检查变量是否为空
    • EmptyIterator::current - The current() method
    • EmptyIterator::key - The key() method
    • EmptyIterator::next - The next() method
    • EmptyIterator::rewind - The rewind() method
    • EmptyIterator::valid - Checks whether the current element is valid
    • enchant_broker_describe - Enumerates the Enchant providers
    • enchant_broker_dict_exists - Whether a dictionary exists or not. Using non-empty tag
    • enchant_broker_free - Free the broker resource and its dictionaries
    • enchant_broker_free_dict - Free a dictionary resource
    • enchant_broker_get_dict_path - Get the directory path for a given backend
    • enchant_broker_get_error - Returns the last error of the broker
    • enchant_broker_init - Create a new broker object capable of requesting
    • enchant_broker_list_dicts - Returns a list of available dictionaries
    • enchant_broker_request_dict - Create a new dictionary using a tag
    • enchant_broker_request_pwl_dict - Creates a dictionary using a PWL file
    • enchant_broker_set_dict_path - Set the directory path for a given backend
    • enchant_broker_set_ordering - Declares a preference of dictionaries to use for the language
    • enchant_dict_add - Add a word to personal word list
    • enchant_dict_add_to_personal - 别名 enchant_dict_add
    • enchant_dict_add_to_session - Add 'word' to this spell-checking session
    • enchant_dict_check - Check whether a word is correctly spelled or not
    • enchant_dict_describe - Describes an individual dictionary
    • enchant_dict_get_error - Returns the last error of the current spelling-session
    • enchant_dict_is_added - Whether or not 'word' exists in this spelling-session
    • enchant_dict_is_in_session - 别名 enchant_dict_is_added
    • enchant_dict_quick_check - Check the word is correctly spelled and provide suggestions
    • enchant_dict_store_replacement - Add a correction for a word
    • enchant_dict_suggest - Will return a list of values if any of those pre-conditions are not met
    • end - 将数组的内部指针指向最后一个单元
    • enum_exists - 检测是否定义对应的枚举
    • Error::getCode - 获取错误代码
    • Error::getFile - 获取错误发生时的文件
    • Error::getLine - 获取错误发生时的行号
    • Error::getMessage - 获取错误信息
    • Error::getPrevious - 返回先前的 Throwable
    • Error::getTrace - 获取调用栈（stack trace）
    • Error::getTraceAsString - 获取字符串形式的调用栈（stack trace）
    • Error::__clone - 克隆 error
    • Error::__construct - 初始化 error 对象
    • Error::__toString - error 的字符串表达
    • ErrorException::getSeverity - 获取异常的严重程度
    • ErrorException::__construct - 构造一个异常（Exception）
    • error_clear_last - 清除最近一次错误
    • error_get_last - 获取最后发生的错误
    • error_log - 发送错误信息到某个地方
    • error_reporting - 设置应该报告何种 PHP 错误
    • escapeshellarg - 把字符串转义为可以在 shell 命令里使用的参数
    • escapeshellcmd - shell 元字符转义
    • Ev::backend - Returns an integer describing the backend used by libev
    • Ev::depth - Returns recursion depth
    • Ev::embeddableBackends - Returns the set of backends that are embeddable in other event loops
    • Ev::feedSignal - Feed a signal event info Ev
    • Ev::feedSignalEvent - Feed signal event into the default loop
    • Ev::iteration - Return the number of times the default event loop has polled for new events
    • Ev::now - Returns the time when the last iteration of the default event loop has started
    • Ev::nowUpdate - Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress
    • Ev::recommendedBackends - Returns a bit mask of recommended backends for current platform
    • Ev::resume - Resume previously suspended default event loop
    • Ev::run - Begin checking for events and calling callbacks for the default loop
    • Ev::sleep - Block the process for the given number of seconds
    • Ev::stop - Stops the default event loop
    • Ev::supportedBackends - Returns the set of backends supported by current libev configuration
    • Ev::suspend - Suspend the default event loop
    • Ev::time - Returns the current time in fractional seconds since the epoch
    • Ev::verify - Performs internal consistency checks(for debugging)
    • eval - 把字符串作为PHP代码执行
    • EvCheck::createStopped - Create instance of a stopped EvCheck watcher
    • EvCheck::__construct - Constructs the EvCheck watcher object
    • EvChild::createStopped - Create instance of a stopped EvCheck watcher
    • EvChild::set - Configures the watcher
    • EvChild::__construct - Constructs the EvChild watcher object
    • EvEmbed::createStopped - Create stopped EvEmbed watcher object
    • EvEmbed::set - Configures the watcher
    • EvEmbed::sweep - Make a single, non-blocking sweep over the embedded loop
    • EvEmbed::__construct - Constructs the EvEmbed object
    • Event::add - Makes event pending
    • Event::addSignal - 别名 Event::add
    • Event::addTimer - 别名 Event::add
    • Event::del - Makes event non-pending
    • Event::delSignal - 别名 Event::del
    • Event::delTimer - 别名 Event::del
    • Event::free - Make event non-pending and free resources allocated for this event
    • Event::getSupportedMethods - Returns array with of the names of the methods supported in this version of Libevent
    • Event::pending - Detects whether event is pending or scheduled
    • Event::set - Re-configures event
    • Event::setPriority - Set event priority
    • Event::setTimer - Re-configures timer event
    • Event::signal - Constructs signal event object
    • Event::timer - Constructs timer event object
    • Event::__construct - Constructs Event object
    • EventBase::dispatch - Dispatch pending events
    • EventBase::exit - Stop dispatching events
    • EventBase::free - Free resources allocated for this event base
    • EventBase::getFeatures - Returns bitmask of features supported
    • EventBase::getMethod - Returns event method in use
    • EventBase::getTimeOfDayCached - Returns the current event base time
    • EventBase::gotExit - Checks if the event loop was told to exit
    • EventBase::gotStop - Checks if the event loop was told to exit
    • EventBase::loop - Dispatch pending events
    • EventBase::priorityInit - Sets number of priorities per event base
    • EventBase::reInit - Re-initialize event base(after a fork)
    • EventBase::stop - Tells event_base to stop dispatching events
    • EventBase::__construct - 构造 EventBase 对象
    • EventBuffer::add - Append data to the end of an event buffer
    • EventBuffer::addBuffer - Move all data from a buffer provided to the current instance of EventBuffer
    • EventBuffer::appendFrom - Moves the specified number of bytes from a source buffer to the end of the current buffer
    • EventBuffer::copyout - Copies out specified number of bytes from the front of the buffer
    • EventBuffer::drain - Removes specified number of bytes from the front of the buffer without copying it anywhere
    • EventBuffer::enableLocking - 说明
    • EventBuffer::expand - Reserves space in buffer
    • EventBuffer::freeze - Prevent calls that modify an event buffer from succeeding
    • EventBuffer::lock - Acquires a lock on buffer
    • EventBuffer::prepend - Prepend data to the front of the buffer
    • EventBuffer::prependBuffer - Moves all data from source buffer to the front of current buffer
    • EventBuffer::pullup - Linearizes data within buffer and returns it's contents as a string
    • EventBuffer::read - Read data from an evbuffer and drain the bytes read
    • EventBuffer::readFrom - Read data from a file onto the end of the buffer
    • EventBuffer::readLine - Extracts a line from the front of the buffer
    • EventBuffer::search - Scans the buffer for an occurrence of a string
    • EventBuffer::searchEol - Scans the buffer for an occurrence of an end of line
    • EventBuffer::substr - Substracts a portion of the buffer data
    • EventBuffer::unfreeze - Re-enable calls that modify an event buffer
    • EventBuffer::unlock - Releases lock acquired by EventBuffer::lock
    • EventBuffer::write - Write contents of the buffer to a file or socket
    • EventBuffer::__construct - Constructs EventBuffer object
    • EventBufferEvent::close - Closes file descriptor associated with the current buffer event
    • EventBufferEvent::connect - Connect buffer event's file descriptor to given address or UNIX socket
    • EventBufferEvent::connectHost - Connects to a hostname with optionally asyncronous DNS resolving
    • EventBufferEvent::createPair - Creates two buffer events connected to each other
    • EventBufferEvent::disable - Disable events read, write, or both on a buffer event
    • EventBufferEvent::enable - Enable events read, write, or both on a buffer event
    • EventBufferEvent::free - Free a buffer event
    • EventBufferEvent::getDnsErrorString - Returns string describing the last failed DNS lookup attempt
    • EventBufferEvent::getEnabled - Returns bitmask of events currently enabled on the buffer event
    • EventBufferEvent::getInput - Returns underlying input buffer associated with current buffer event
    • EventBufferEvent::getOutput - Returns underlying output buffer associated with current buffer event
    • EventBufferEvent::read - Read buffer's data
    • EventBufferEvent::readBuffer - Drains the entire contents of the input buffer and places them into buf
    • EventBufferEvent::setCallbacks - Assigns read, write and event(status) callbacks
    • EventBufferEvent::setPriority - Assign a priority to a bufferevent
    • EventBufferEvent::setTimeouts - Set the read and write timeout for a buffer event
    • EventBufferEvent::setWatermark - Adjusts read and/or write watermarks
    • EventBufferEvent::sslError - Returns most recent OpenSSL error reported on the buffer event
    • EventBufferEvent::sslFilter - Create a new SSL buffer event to send its data over another buffer event
    • EventBufferEvent::sslGetCipherInfo - Returns a textual description of the cipher
    • EventBufferEvent::sslGetCipherName - Returns the current cipher name of the SSL connection
    • EventBufferEvent::sslGetCipherVersion - Returns version of cipher used by current SSL connection
    • EventBufferEvent::sslGetProtocol - Returns the name of the protocol used for current SSL connection
    • EventBufferEvent::sslRenegotiate - Tells a bufferevent to begin SSL renegotiation
    • EventBufferEvent::sslSocket - Creates a new SSL buffer event to send its data over an SSL on a socket
    • EventBufferEvent::write - Adds data to a buffer event's output buffer
    • EventBufferEvent::writeBuffer - Adds contents of the entire buffer to a buffer event's output buffer
    • EventBufferEvent::__construct - Constructs EventBufferEvent object
    • EventConfig::avoidMethod - 告诉 libevent 避免使用指定 event 方法
    • EventConfig::requireFeatures - 输入应用程序要求的必需 event 方法功能
    • EventConfig::setFlags - EventBase 初始化需设置的一个或者多个 flag
    • EventConfig::setMaxDispatchInterval - 防止优先级反转
    • EventConfig::__construct - EventConfig 构造函数
    • EventDnsBase::addNameserverIp - Adds a nameserver to the DNS base
    • EventDnsBase::addSearch - Adds a domain to the list of search domains
    • EventDnsBase::clearSearch - Removes all current search suffixes
    • EventDnsBase::countNameservers - Gets the number of configured nameservers
    • EventDnsBase::loadHosts - Loads a hosts file (in the same format as /etc/hosts) from hosts file
    • EventDnsBase::parseResolvConf - Scans the resolv.conf-formatted file
    • EventDnsBase::setOption - Set the value of a configuration option
    • EventDnsBase::setSearchNdots - Set the 'ndots' parameter for searches
    • EventDnsBase::__construct - Constructs EventDnsBase object
    • EventHttp::accept - Makes an HTTP server accept connections on the specified socket stream or resource
    • EventHttp::addServerAlias - Adds a server alias to the HTTP server object
    • EventHttp::bind - Binds an HTTP server on the specified address and port
    • EventHttp::removeServerAlias - Removes server alias
    • EventHttp::setAllowedMethods - Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks
    • EventHttp::setCallback - Sets a callback for specified URI
    • EventHttp::setDefaultCallback - Sets default callback to handle requests that are not caught by specific callbacks
    • EventHttp::setMaxBodySize - Sets maximum request body size
    • EventHttp::setMaxHeadersSize - Sets maximum HTTP header size
    • EventHttp::setTimeout - Sets the timeout for an HTTP request
    • EventHttp::__construct - Constructs EventHttp object (the HTTP server)
    • EventHttpConnection::getBase - Returns event base associated with the connection
    • EventHttpConnection::getPeer - Gets the remote address and port associated with the connection
    • EventHttpConnection::makeRequest - Makes an HTTP request over the specified connection
    • EventHttpConnection::setCloseCallback - Set callback for connection close
    • EventHttpConnection::setLocalAddress - Sets the IP address from which HTTP connections are made
    • EventHttpConnection::setLocalPort - Sets the local port from which connections are made
    • EventHttpConnection::setMaxBodySize - Sets maximum body size for the connection
    • EventHttpConnection::setMaxHeadersSize - Sets maximum header size
    • EventHttpConnection::setRetries - Sets the retry limit for the connection
    • EventHttpConnection::setTimeout - Sets the timeout for the connection
    • EventHttpConnection::__construct - Constructs EventHttpConnection object
    • EventHttpRequest::addHeader - Adds an HTTP header to the headers of the request
    • EventHttpRequest::cancel - Cancels a pending HTTP request
    • EventHttpRequest::clearHeaders - Removes all output headers from the header list of the request
    • EventHttpRequest::closeConnection - Closes associated HTTP connection
    • EventHttpRequest::findHeader - Finds the value belonging a header
    • EventHttpRequest::free - Frees the object and removes associated events
    • EventHttpRequest::getBufferEvent - Returns EventBufferEvent object
    • EventHttpRequest::getCommand - Returns the request command(method)
    • EventHttpRequest::getConnection - Returns EventHttpConnection object
    • EventHttpRequest::getHost - Returns the request host
    • EventHttpRequest::getInputBuffer - Returns the input buffer
    • EventHttpRequest::getInputHeaders - Returns associative array of the input headers
    • EventHttpRequest::getOutputBuffer - Returns the output buffer of the request
    • EventHttpRequest::getOutputHeaders - Returns associative array of the output headers
    • EventHttpRequest::getResponseCode - Returns the response code
    • EventHttpRequest::getUri - Returns the request URI
    • EventHttpRequest::removeHeader - Removes an HTTP header from the headers of the request
    • EventHttpRequest::sendError - Send an HTML error message to the client
    • EventHttpRequest::sendReply - Send an HTML reply to the client
    • EventHttpRequest::sendReplyChunk - Send another data chunk as part of an ongoing chunked reply
    • EventHttpRequest::sendReplyEnd - Complete a chunked reply, freeing the request as appropriate
    • EventHttpRequest::sendReplyStart - Initiate a chunked reply
    • EventHttpRequest::__construct - Constructs EventHttpRequest object
    • EventListener::disable - Disables an event connect listener object
    • EventListener::enable - Enables an event connect listener object
    • EventListener::getBase - Returns event base associated with the event listener
    • EventListener::getSocketName - Retreives the current address to which the listener's socket is bound
    • EventListener::setCallback - The setCallback purpose
    • EventListener::setErrorCallback - Set event listener's error callback
    • EventListener::__construct - Creates new connection listener associated with an event base
    • EventSslContext::__construct - Constructs an OpenSSL context for use with Event classes
    • EventUtil::getLastSocketErrno - Returns the most recent socket error number
    • EventUtil::getLastSocketError - Returns the most recent socket error
    • EventUtil::getSocketFd - Returns numeric file descriptor of a socket, or stream
    • EventUtil::getSocketName - Retreives the current address to which the socket is bound
    • EventUtil::setSocketOption - Sets socket options
    • EventUtil::sslRandPoll - Generates entropy by means of OpenSSL's RAND_poll()
    • EventUtil::__construct - The abstract constructor
    • EvFork::createStopped - Creates a stopped instance of EvFork watcher class
    • EvFork::__construct - Constructs the EvFork watcher object
    • EvIdle::createStopped - Creates instance of a stopped EvIdle watcher object
    • EvIdle::__construct - Constructs the EvIdle watcher object
    • EvIo::createStopped - Create stopped EvIo watcher object
    • EvIo::set - Configures the watcher
    • EvIo::__construct - Constructs EvIo watcher object
    • EvLoop::backend - Returns an integer describing the backend used by libev
    • EvLoop::check - Creates EvCheck object associated with the current event loop instance
    • EvLoop::child - Creates EvChild object associated with the current event loop
    • EvLoop::defaultLoop - Returns or creates the default event loop
    • EvLoop::embed - Creates an instance of EvEmbed watcher associated with the current EvLoop object
    • EvLoop::fork - Creates EvFork watcher object associated with the current event loop instance
    • EvLoop::idle - Creates EvIdle watcher object associated with the current event loop instance
    • EvLoop::invokePending - Invoke all pending watchers while resetting their pending state
    • EvLoop::io - Create EvIo watcher object associated with the current event loop instance
    • EvLoop::loopFork - Must be called after a fork
    • EvLoop::now - Returns the current "event loop time"
    • EvLoop::nowUpdate - Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress
    • EvLoop::periodic - Creates EvPeriodic watcher object associated with the current event loop instance
    • EvLoop::prepare - Creates EvPrepare watcher object associated with the current event loop instance
    • EvLoop::resume - Resume previously suspended default event loop
    • EvLoop::run - Begin checking for events and calling callbacks for the loop
    • EvLoop::signal - Creates EvSignal watcher object associated with the current event loop instance
    • EvLoop::stat - Creates EvStat watcher object associated with the current event loop instance
    • EvLoop::stop - Stops the event loop
    • EvLoop::suspend - Suspend the loop
    • EvLoop::timer - Creates EvTimer watcher object associated with the current event loop instance
    • EvLoop::verify - Performs internal consistency checks(for debugging)
    • EvLoop::__construct - Constructs the event loop object
    • EvPeriodic::again - Simply stops and restarts the periodic watcher again
    • EvPeriodic::at - Returns the absolute time that this watcher is supposed to trigger next
    • EvPeriodic::createStopped - Create a stopped EvPeriodic watcher
    • EvPeriodic::set - Configures the watcher
    • EvPeriodic::__construct - Constructs EvPeriodic watcher object
    • EvPrepare::createStopped - Creates a stopped instance of EvPrepare watcher
    • EvPrepare::__construct - Constructs EvPrepare watcher object
    • EvSignal::createStopped - Create stopped EvSignal watcher object
    • EvSignal::set - Configures the watcher
    • EvSignal::__construct - Constructs EvSignal watcher object
    • EvStat::attr - Returns the values most recently detected by Ev
    • EvStat::createStopped - Create a stopped EvStat watcher object
    • EvStat::prev - Returns the previous set of values returned by EvStat::attr
    • EvStat::set - Configures the watcher
    • EvStat::stat - Initiates the stat call
    • EvStat::__construct - Constructs EvStat watcher object
    • EvTimer::again - Restarts the timer watcher
    • EvTimer::createStopped - Creates EvTimer stopped watcher object
    • EvTimer::set - Configures the watcher
    • EvTimer::__construct - Constructs an EvTimer watcher object
    • EvWatcher::clear - Clear watcher pending status
    • EvWatcher::feed - Feeds the given revents set into the event loop
    • EvWatcher::getLoop - Returns the loop responsible for the watcher
    • EvWatcher::invoke - Invokes the watcher callback with the given received events bit mask
    • EvWatcher::keepalive - Configures whether to keep the loop from returning
    • EvWatcher::setCallback - Sets new callback for the watcher
    • EvWatcher::start - Starts the watcher
    • EvWatcher::stop - Stops the watcher
    • EvWatcher::__construct - Abstract constructor of a watcher object
    • Exception::getCode - 获取异常代码
    • Exception::getFile - 创建异常时的程序文件名称
    • Exception::getLine - 获取创建的异常所在文件中的行号
    • Exception::getMessage - 获取异常消息内容
    • Exception::getPrevious - 返回前一个 Throwable
    • Exception::getTrace - 获取异常追踪信息
    • Exception::getTraceAsString - 获取字符串类型的异常追踪信息
    • Exception::__clone - 异常克隆
    • Exception::__construct - 异常构造函数
    • Exception::__toString - 将异常对象转换为字符串
    • exec - 执行一个外部程序
    • Executable::execute - Execute statement
    • ExecutionStatus::__construct - ExecutionStatus constructor
    • exif_imagetype - 判断一个图像的类型
    • exif_read_data - 从一个图片文件中读取 EXIF 头信息
    • exif_tagname - 获取指定索引的头名称
    • exif_thumbnail - 检索图像的嵌入式缩略图
    • exit - 输出一个消息并且退出当前脚本
    • exp - 计算 e 的指数
    • expect_expectl - Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
    • expect_popen - Execute command via Bourne shell, and open the PTY stream to the process
    • explode - 使用一个字符串分割另一个字符串
    • expm1 - 返回 exp($num) - 1，甚至当 number 的值接近零也能计算出准确结果
    • expression - Bind prepared statement variables as parameters
    • Expression::__construct - Expression constructor
    • extension_loaded - 检查一个扩展是否已经加载
    • extract - 从数组中将变量导入到当前的符号表
    • ezmlm_hash - 计算 EZMLM 所需的散列值
  • f
    • FANNConnection::getFromNeuron - 返回开始连接的神经元
    • FANNConnection::getToNeuron - 返回终止神经元的位置
    • FANNConnection::getWeight - 返回连接权重。
    • FANNConnection::setWeight - 设置连接权重。
    • FANNConnection::__construct - 连接构造器
    • fann_cascadetrain_on_data - 在整个数据集上训练，使用一段时间的 Cascade2 训练算法。
    • fann_cascadetrain_on_file - 读取文件并在整个数据集上训练，使用 Cascade2 训练算法训练一段时间
    • fann_clear_scaling_params - 清除缩放参数
    • fann_copy - 创建一个 fann 结构体的副本。
    • fann_create_from_file - 从配置文件中构建一个反向传播神经网络。
    • fann_create_shortcut - 创建一个含快捷连接而非全连接的标准反向传播神经网络。
    • fann_create_shortcut_array - 创建一个含快捷连接而非全连接的标准反向传播神经网络。
    • fann_create_sparse - 创建一个标准的反向传播神经网络，该网络不是全连接。
    • fann_create_sparse_array - 创建一个标准的反向传播神经网络，该网络使用一个表示每层大小的数组来构造，但是并不是全连接的。
    • fann_create_standard - 创建标准的全连接反向传播神经网络。
    • fann_create_standard_array - 创建一个全连接的反向传播神经网络，该网络使用一个表示每层大小的数组来构造。
    • fann_create_train - 创建一个空的训练数据结构。
    • fann_create_train_from_callback - 从用户提供的函数创建训练数据结构。
    • fann_descale_input - 在获取基于先前计算的参数之后，在输入向量中缩小数据
    • fann_descale_output - 在获取基于先前计算的参数之后，在输出向量中缩小数据
    • fann_descale_train - 基于先前计算的参数来缩小输入和输出数据
    • fann_destroy - 销毁整个网络并且适当地释放所有的关联内存。
    • fann_destroy_train - 销毁训练数据。
    • fann_duplicate_train_data - 返回 fann 训练数据精确的副本。
    • fann_get_activation_function - 返回激励函数
    • fann_get_activation_steepness - 为提供的神经和网络层数返回激活陡度
    • fann_get_bias_array - 获取网络中每一层的偏差数
    • fann_get_bit_fail - 失败位的数量
    • fann_get_bit_fail_limit - 返回训练期间使用的误差限制
    • fann_get_cascade_activation_functions - 返回级联激活函数
    • fann_get_cascade_activation_functions_count - 返回级联激活函数的数量
    • fann_get_cascade_activation_steepnesses - 返回级联激活陡度
    • fann_get_cascade_activation_steepnesses_count - 激活陡度的数量
    • fann_get_cascade_candidate_change_fraction - 返回级联候选变化分数
    • fann_get_cascade_candidate_limit - 返回候选限度
    • fann_get_cascade_candidate_stagnation_epochs - 返回层叠候选停滞周期的数量
    • fann_get_cascade_max_cand_epochs - 返回候选周期的最大值
    • fann_get_cascade_max_out_epochs - 返回输出周期的最大值
    • fann_get_cascade_min_cand_epochs - 返回最小的候选周期
    • fann_get_cascade_min_out_epochs - 返回最小输出周期
    • fann_get_cascade_num_candidates - 返回训练期间使用的候选数量
    • fann_get_cascade_num_candidate_groups - 返回候选组的数量
    • fann_get_cascade_output_change_fraction - 返回级联输出变化分数
    • fann_get_cascade_output_stagnation_epochs - 返回级联输出停滞周期的数量
    • fann_get_cascade_weight_multiplier - 返回权重因子
    • fann_get_connection_array - 获取网络中的连接。
    • fann_get_connection_rate - 获取当网络创建时连接的使用率。
    • fann_get_errno - 返回最后一个错误数字。
    • fann_get_errstr - 返回最后的错误字符串。
    • fann_get_layer_array - 获取网络中每层的神经元数量。
    • fann_get_learning_momentum - 返回学习动量
    • fann_get_learning_rate - 返回学习速率
    • fann_get_MSE - 从网络中读取均方误差。
    • fann_get_network_type - 获取所创建的神经网络类型。
    • fann_get_num_input - 获取输入神经元的数量。
    • fann_get_num_layers - 获取神经网络的层数。
    • fann_get_num_output - 获取输出神经元的数量。
    • fann_get_quickprop_decay - 返回衰退值，用于在 quickprop 训练迭代时衰减权重
    • fann_get_quickprop_mu - 返回放大系数
    • fann_get_rprop_decrease_factor - 返回 RPROP 训练期间的衰减系数
    • fann_get_rprop_delta_max - 返回最大步长
    • fann_get_rprop_delta_min - 返回最小步长
    • fann_get_rprop_delta_zero - 返回初始步长
    • fann_get_rprop_increase_factor - 返回 RPROP 训练的递增系数
    • fann_get_sarprop_step_error_shift - 返回 sarprop 步值的误差偏移
    • fann_get_sarprop_step_error_threshold_factor - 返回 sarprop 算法步值的误差阈值系数
    • fann_get_sarprop_temperature - 返回 sarprop 算法温度
    • fann_get_sarprop_weight_decay_shift - 返回 sarprop 算法权重衰减变化值
    • fann_get_total_connections - 获取整个网络中所有的连接数。
    • fann_get_total_neurons - 获取整个网络中神经元的数量。
    • fann_get_training_algorithm - 返回训练算法。
    • fann_get_train_error_function - 返回训练中使用的错误函数。
    • fann_get_train_stop_function - 返回训练中使用的停止函数。
    • fann_init_weights - 使用 Widrow 和 Nguyen 算法初始化权重。
    • fann_length_train_data - 返回训练数据中训练模式的数量。
    • fann_merge_train_data - 合并训练数据。
    • fann_num_input_train_data - 返回训练数据中每个训练模式输入的数量。
    • fann_num_output_train_data - 返回训练数据中每个训练模式输出的数量。
    • fann_print_error - 打印错误字符串
    • fann_randomize_weights - 给每个连接赋一个介于 min_weight 和 max_weight 之间的随机权重。
    • fann_read_train_from_file - 读取存储训练数据的文件。
    • fann_reset_errno - 重置最后的错误代码。
    • fann_reset_errstr - 重置最后的错误字符串。
    • fann_reset_MSE - 重置网络中的均方误差。
    • fann_run - 将通过神经网络运行输入。
    • fann_save - 将整个网络保存至配置文件。
    • fann_save_train - 将训练结构体保存至文件。
    • fann_scale_input - 在以前计算参数的基础上，在训练之前放大输入向量中的数据
    • fann_scale_input_train_data - 在训练数据中缩放输入至指定范围
    • fann_scale_output - 在以前计算参数的基础上，在训练之前放大输出向量中的数据
    • fann_scale_output_train_data - 在训练数据中缩放输出至指定范围
    • fann_scale_train - 在以前计算参数的基础上，缩放输入和输出数据
    • fann_scale_train_data - 在训练数据中缩放输入和输出到指定的范围
    • fann_set_activation_function - 为已应用的神经元和层设置激活函数
    • fann_set_activation_function_hidden - 为所有隐藏层设置激活函数
    • fann_set_activation_function_layer - 为已应用的层中所有的神经元设置激活函数
    • fann_set_activation_function_output - 为输出层设置激活函数
    • fann_set_activation_steepness - 为提供的神经元和层设置激活陡度
    • fann_set_activation_steepness_hidden - 为所有隐藏层中所有的神经元设置激活函数陡度
    • fann_set_activation_steepness_layer - 为提供的层中所有的神经元设置激活陡度
    • fann_set_activation_steepness_output - 在输出层中设置激活陡度
    • fann_set_bit_fail_limit - 设置训练期间使用的误差
    • fann_set_callback - 设置训练期间使用的回调函数。
    • fann_set_cascade_activation_functions - 设置级联候选激活函数的数组
    • fann_set_cascade_activation_steepnesses - 设置级联候选激活陡度的数组。
    • fann_set_cascade_candidate_change_fraction - 设置级联候选更改分数
    • fann_set_cascade_candidate_limit - 设置候选限度
    • fann_set_cascade_candidate_stagnation_epochs - 设置级联候选停止周期数
    • fann_set_cascade_max_cand_epochs - 设置最大候选周期数
    • fann_set_cascade_max_out_epochs - 设置最大输出周期
    • fann_set_cascade_min_cand_epochs - 设置最小候选周期
    • fann_set_cascade_min_out_epochs - 设置最小输出周期
    • fann_set_cascade_num_candidate_groups - 设置候选组数量
    • fann_set_cascade_output_change_fraction - 设置级联输出改变分数
    • fann_set_cascade_output_stagnation_epochs - 设置级联输出停滞周期的值
    • fann_set_cascade_weight_multiplier - 设置权重因子
    • fann_set_error_log - 设置错误记录保存的位置。
    • fann_set_input_scaling_params - 根据训练数据计算将来使用的输入比例参数
    • fann_set_learning_momentum - 设置学习动量。
    • fann_set_learning_rate - 设置学习速率。
    • fann_set_output_scaling_params - 根据训练数据计算将来使用的输出缩放参数
    • fann_set_quickprop_decay - 设置quickprop算法衰减因子
    • fann_set_quickprop_mu - 设置 quickprop 算法放大因子
    • fann_set_rprop_decrease_factor - 使用 RPROP 算法训练时，设置下降因子
    • fann_set_rprop_delta_max - 设置最大步长
    • fann_set_rprop_delta_min - 设置最小步长
    • fann_set_rprop_delta_zero - 设置初始步长
    • fann_set_rprop_increase_factor - 使用 RPROP 算法训练时，设置增长因子
    • fann_set_sarprop_step_error_shift - 设置 sarprop 算法的步误差偏移量
    • fann_set_sarprop_step_error_threshold_factor - 设置 sarprop 算法的步误差阈值因子
    • fann_set_sarprop_temperature - 设置 sarprop 算法的温度
    • fann_set_sarprop_weight_decay_shift - 设置 sarprop 算法的权重衰减偏移值
    • fann_set_scaling_params - 根据训练数据计算输入和输出缩放参数以供将来使用
    • fann_set_training_algorithm - 设置训练算法。
    • fann_set_train_error_function - 设置训练期间使用的错误函数。
    • fann_set_train_stop_function - 设置训练期间使用的停止函数。
    • fann_set_weight - 在网络中设置一个连接。
    • fann_set_weight_array - 在网络中设置一个连接。
    • fann_shuffle_train_data - 打算训练数据，使顺序随机。
    • fann_subset_train_data - 返回一个训练数据子集的副本。
    • fann_test - 使用一组输入和一组期望的输出来测试。
    • fann_test_data - 使用训练数据来测试并且计算出 MSE
    • fann_train - 使用一个输入集和一个期望的输出集来迭代训练一次。
    • fann_train_epoch - 使用一组训练数据训练一个周期。
    • fann_train_on_data - 在整个数据集上训练一段时间。
    • fann_train_on_file - 在从某个文件读取的整个数据集上训练一段时间。
    • fastcgi_finish_request - 冲刷(flush)所有响应的数据给客户端
    • fbird_add_user - 别名 ibase_add_user
    • fbird_affected_rows - 别名 ibase_affected_rows
    • fbird_backup - 别名 ibase_backup
    • fbird_blob_add - 别名 ibase_blob_add
    • fbird_blob_cancel - Cancel creating blob
    • fbird_blob_close - 别名 ibase_blob_close
    • fbird_blob_create - 别名 ibase_blob_create
    • fbird_blob_echo - 别名 ibase_blob_echo
    • fbird_blob_get - 别名 ibase_blob_get
    • fbird_blob_import - 别名 ibase_blob_import
    • fbird_blob_info - 别名 ibase_blob_info
    • fbird_blob_open - 别名 ibase_blob_open
    • fbird_close - 别名 ibase_close
    • fbird_commit - 别名 ibase_commit
    • fbird_commit_ret - 别名 ibase_commit_ret
    • fbird_connect - 别名 ibase_connect
    • fbird_db_info - 别名 ibase_db_info
    • fbird_delete_user - 别名 ibase_delete_user
    • fbird_drop_db - 别名 ibase_drop_db
    • fbird_errcode - 别名 ibase_errcode
    • fbird_errmsg - 别名 ibase_errmsg
    • fbird_execute - 别名 ibase_execute
    • fbird_fetch_assoc - 别名 ibase_fetch_assoc
    • fbird_fetch_object - 别名 ibase_fetch_object
    • fbird_fetch_row - 别名 ibase_fetch_row
    • fbird_field_info - 别名 ibase_field_info
    • fbird_free_event_handler - 别名 ibase_free_event_handler
    • fbird_free_query - 别名 ibase_free_query
    • fbird_free_result - 别名 ibase_free_result
    • fbird_gen_id - 别名 ibase_gen_id
    • fbird_maintain_db - 别名 ibase_maintain_db
    • fbird_modify_user - 别名 ibase_modify_user
    • fbird_name_result - 别名 ibase_name_result
    • fbird_num_fields - 别名 ibase_num_fields
    • fbird_num_params - 别名 ibase_num_params
    • fbird_param_info - 别名 ibase_param_info
    • fbird_pconnect - 别名 ibase_pconnect
    • fbird_prepare - 别名 ibase_prepare
    • fbird_query - 别名 ibase_query
    • fbird_restore - 别名 ibase_restore
    • fbird_rollback - 别名 ibase_rollback
    • fbird_rollback_ret - 别名 ibase_rollback_ret
    • fbird_server_info - 别名 ibase_server_info
    • fbird_service_attach - 别名 ibase_service_attach
    • fbird_service_detach - 别名 ibase_service_detach
    • fbird_set_event_handler - 别名 ibase_set_event_handler
    • fbird_trans - 别名 ibase_trans
    • fbird_wait_event - 别名 ibase_wait_event
    • fclose - 关闭一个已打开的文件指针
    • fdatasync - 同步文件数据（不包含元数据）
    • fdf_add_doc_javascript - Adds javascript code to the FDF document
    • fdf_add_template - Adds a template into the FDF document
    • fdf_close - Close an FDF document
    • fdf_create - Create a new FDF document
    • fdf_enum_values - Call a user defined function for each document value
    • fdf_errno - Return error code for last fdf operation
    • fdf_error - Return error description for FDF error code
    • fdf_get_ap - Get the appearance of a field
    • fdf_get_attachment - Extracts uploaded file embedded in the FDF
    • fdf_get_encoding - Get the value of the /Encoding key
    • fdf_get_file - Get the value of the /F key
    • fdf_get_flags - Gets the flags of a field
    • fdf_get_opt - Gets a value from the opt array of a field
    • fdf_get_status - Get the value of the /STATUS key
    • fdf_get_value - Get the value of a field
    • fdf_get_version - Gets version number for FDF API or file
    • fdf_header - Sets FDF-specific output headers
    • fdf_next_field_name - Get the next field name
    • fdf_open - Open a FDF document
    • fdf_open_string - Read a FDF document from a string
    • fdf_remove_item - Sets target frame for form
    • fdf_save - Save a FDF document
    • fdf_save_string - Returns the FDF document as a string
    • fdf_set_ap - Set the appearance of a field
    • fdf_set_encoding - Sets FDF character encoding
    • fdf_set_file - Set PDF document to display FDF data in
    • fdf_set_flags - Sets a flag of a field
    • fdf_set_javascript_action - Sets an javascript action of a field
    • fdf_set_on_import_javascript - Adds javascript code to be executed when Acrobat opens the FDF
    • fdf_set_opt - Sets an option of a field
    • fdf_set_status - Set the value of the /STATUS key
    • fdf_set_submit_form_action - Sets a submit form action of a field
    • fdf_set_target_frame - Set target frame for form display
    • fdf_set_value - Set the value of a field
    • fdf_set_version - Sets version number for a FDF file
    • fdiv - Divides two numbers, according to IEEE 754
    • feof - 测试文件指针是否到了文件结束的位置
    • FFI::addr - Creates an unmanaged pointer to C data
    • FFI::alignof - Gets the alignment
    • FFI::arrayType - Dynamically constructs a new C array type
    • FFI::cast - Performs a C type cast
    • FFI::cdef - Creates a new FFI object
    • FFI::free - Releases an unmanaged data structure
    • FFI::isNull - Checks whether a FFI\CData is a null pointer
    • FFI::load - Loads C declarations from a C header file
    • FFI::memcmp - Compares memory areas
    • FFI::memcpy - Copies one memory area to another
    • FFI::memset - Fills a memory area
    • FFI::new - Creates a C data structure
    • FFI::scope - Instantiates an FFI object with C declarations parsed during preloading
    • FFI::sizeof - Gets the size of C data or types
    • FFI::string - Creates a PHP string from a memory area
    • FFI::type - Creates an FFI\CType object from a C declaration
    • FFI::typeof - Gets the FFI\CType of FFI\CData
    • FFI\CType::getAlignment - Description
    • FFI\CType::getArrayElementType - Description
    • FFI\CType::getArrayLength - Description
    • FFI\CType::getAttributes - Description
    • FFI\CType::getEnumKind - Description
    • FFI\CType::getFuncABI - Description
    • FFI\CType::getFuncParameterCount - Description
    • FFI\CType::getFuncParameterType - Description
    • FFI\CType::getFuncReturnType - Description
    • FFI\CType::getKind - Description
    • FFI\CType::getName - Description
    • FFI\CType::getPointerType - Description
    • FFI\CType::getSize - Description
    • FFI\CType::getStructFieldNames - Description
    • FFI\CType::getStructFieldOffset - Description
    • FFI\CType::getStructFieldType - Description
    • fflush - 将缓冲内容输出到文件
    • fgetc - 从文件指针中读取字符
    • fgetcsv - 从文件指针中读入一行并解析 CSV 字段
    • fgets - 从文件指针中读取一行
    • fgetss - 从文件指针中读取一行并过滤掉 HTML 标记
    • Fiber::getCurrent - 获取当前正在执行的 Fiber 实例
    • Fiber::getReturn - 获取 Fiber 的返回值
    • Fiber::isRunning - 确认 fiber 是否正在运行
    • Fiber::isStarted - 确定 fiber 是否启动
    • Fiber::isSuspended - 确认 fiber 是否挂起
    • Fiber::isTerminated - 确认 fiber 是否终止
    • Fiber::resume - 使用值恢复 fiber 的执行
    • Fiber::start - 启动 fiber 的执行
    • Fiber::suspend - 暂停当前 fiber 的执行
    • Fiber::throw - 用一个异常来恢复 fiber 的执行
    • Fiber::__construct - 创建新的 Fiber 实例
    • FiberError::__construct - 不允许直接实例化的构造函数
    • file - 把整个文件读入一个数组中
    • fileatime - 取得文件的上次访问时间
    • filectime - 取得文件的 inode 修改时间
    • filegroup - 取得文件的组
    • fileinode - 取得文件的 inode
    • filemtime - 取得文件修改时间
    • fileowner - 取得文件的所有者
    • fileperms - 获取文件权限
    • filesize - 取得文件大小
    • FilesystemIterator::current - The current file
    • FilesystemIterator::getFlags - Get the handling flags
    • FilesystemIterator::key - Retrieve the key for the current file
    • FilesystemIterator::next - Move to the next file
    • FilesystemIterator::rewind - Rewinds back to the beginning
    • FilesystemIterator::setFlags - Sets handling flags
    • FilesystemIterator::__construct - Constructs a new filesystem iterator
    • filetype - 取得文件类型
    • file_exists - 检查文件或目录是否存在
    • file_get_contents - 将整个文件读入一个字符串
    • file_put_contents - 将数据写入文件
    • FilterIterator::accept - Check whether the current element of the iterator is acceptable
    • FilterIterator::current - Get the current element value
    • FilterIterator::key - Get the current key
    • FilterIterator::next - Move the iterator forward
    • FilterIterator::rewind - Rewind the iterator
    • FilterIterator::valid - Check whether the current element is valid
    • FilterIterator::__construct - Construct a filterIterator
    • filter_has_var - 检测是否存在指定类型的变量
    • filter_id - 返回与某个特定名称的过滤器相关联的id
    • filter_input - 通过名称获取特定的外部变量，并且可以通过过滤器处理它
    • filter_input_array - 获取一系列外部变量，并且可以通过过滤器处理它们
    • filter_list - 返回所支持的过滤器列表
    • filter_var - 使用特定的过滤器过滤一个变量
    • filter_var_array - 获取多个变量并且过滤它们
    • finfo::buffer - 别名 finfo_buffer()
    • finfo::file - 别名 finfo_file()
    • finfo::set_flags - 别名 finfo_set_flags()
    • finfo::__construct - 别名 finfo_open
    • finfo_buffer - 返回一个字符串缓冲区的信息
    • finfo_close - 关闭 finfo 实例
    • finfo_file - 返回一个文件的信息
    • finfo_open - 创建新 finfo 实例
    • finfo_set_flags - 设置 libmagic 配置选项
    • floatval - 获取变量的浮点值
    • flock - 可移植的协同文件锁定
    • floor - 舍去法取整
    • flush - 冲刷系统输出缓冲区
    • fmod - 返回除法的浮点数余数
    • fnmatch - 用模式匹配文件名
    • fopen - 打开文件或者 URL
    • forward_static_call - 调用静态方法
    • forward_static_call_array - 调用静态方法且参数作为数组传递
    • fpassthru - 输出文件指针处的所有剩余数据
    • fpm_get_status - 返回当前 FPM 池状态
    • fprintf - 将格式化后的字符串写入到流
    • fputcsv - 将行格式化为 CSV 并写入文件指针
    • fputs - fwrite 的别名
    • fread - 读取文件（可安全用于二进制文件）
    • frenchtojd - 从法国共和历日期转换为儒略日数
    • fscanf - 从文件中格式化输入
    • fseek - 在文件指针中定位
    • fsockopen - 打开 Internet 或者 Unix 套接字连接
    • fstat - 通过已打开的文件指针取得文件信息
    • fsync - 同步文件变更（包括元数据）
    • ftell - 返回文件指针读/写的位置
    • ftok - Convert a pathname and a project identifier to a System V IPC key
    • ftp_alloc - 为要上传的文件分配空间
    • ftp_append - 将文件内容追加到 FTP 服务器上的指定文件
    • ftp_cdup - 切换到当前目录的父目录
    • ftp_chdir - 在 FTP 服务器上改变当前目录
    • ftp_chmod - 设置 FTP 服务器上的文件权限
    • ftp_close - 关闭 FTP 连接
    • ftp_connect - 建立新 FTP 连接
    • ftp_delete - 删除 FTP 服务器上的文件
    • ftp_exec - 在 FTP 服务器运行指定的命令
    • ftp_fget - 从 FTP 服务器上下载文件并保存到本地已打开的文件中
    • ftp_fput - 上传已打开的文件到 FTP 服务器
    • ftp_get - 从 FTP 服务器上下载文件
    • ftp_get_option - 返回当前 FTP 连接的各种不同的选项设置
    • ftp_login - 登录 FTP 服务器
    • ftp_mdtm - 返回指定文件的最后修改时间
    • ftp_mkdir - 建立新目录
    • ftp_mlsd - 返回指定目录中的文件列表
    • ftp_nb_continue - 连续获取／发送文件（以不分块的方式 non-blocking）
    • ftp_nb_fget - 从 FTP 服务器获取文件并写入到一个打开的文件（非阻塞）
    • ftp_nb_fput - 将文件存储到 FTP 服务器 （非阻塞）
    • ftp_nb_get - 从 FTP 服务器上获取文件并写入本地文件（non-blocking）
    • ftp_nb_put - 存储一个文件至 FTP 服务器（non-blocking）
    • ftp_nlist - 返回给定目录的文件列表
    • ftp_pasv - 返回当前 FTP 被动模式是否打开
    • ftp_put - 上传文件到 FTP 服务器
    • ftp_pwd - 返回当前目录名
    • ftp_quit - ftp_close 的 别名
    • ftp_raw - 向 FTP 服务器发送命令
    • ftp_rawlist - 返回指定目录下文件的详细列表
    • ftp_rename - 更改 FTP 服务器上的文件或目录名
    • ftp_rmdir - 删除目录
    • ftp_set_option - 设置各种 FTP 运行时选项
    • ftp_site - 向服务器发送 SITE 命令
    • ftp_size - 返回指定文件的大小
    • ftp_ssl_connect - 打开安全 SSL-FTP 连接
    • ftp_systype - 返回远程 FTP 服务器的操作系统类型
    • ftruncate - 将文件截断到指定的长度
    • function_exists - 如果给定的函数已经被定义就返回 true
    • func_get_arg - 返回参数列表的某一项
    • func_get_args - 返回一个包含函数参数列表的数组
    • func_num_args - 返回传递给函数的参数数量
    • fwrite - 写入文件（可安全用于二进制文件）
  • g
    • gc_collect_cycles - 强制收集所有现存的垃圾循环周期
    • gc_disable - 停用循环引用收集器
    • gc_enable - 激活循环引用收集器
    • gc_enabled - 返回循环引用计数器的状态
    • gc_mem_caches - Reclaims memory used by the Zend Engine memory manager
    • gc_status - 获取有关垃圾回收的信息
    • gd_info - 取得当前安装的 GD 库的信息
    • GearmanClient::addOptions - Add client options
    • GearmanClient::addServer - Add a job server to the client
    • GearmanClient::addServers - Add a list of job servers to the client
    • GearmanClient::addTask - Add a task to be run in parallel
    • GearmanClient::addTaskBackground - Add a background task to be run in parallel
    • GearmanClient::addTaskHigh - Add a high priority task to run in parallel
    • GearmanClient::addTaskHighBackground - Add a high priority background task to be run in parallel
    • GearmanClient::addTaskLow - Add a low priority task to run in parallel
    • GearmanClient::addTaskLowBackground - Add a low priority background task to be run in parallel
    • GearmanClient::addTaskStatus - Add a task to get status
    • GearmanClient::clearCallbacks - Clear all task callback functions
    • GearmanClient::clone - Create a copy of a GearmanClient object
    • GearmanClient::context - Get the application context
    • GearmanClient::data - Get the application data (deprecated)
    • GearmanClient::do - Run a single task and return a result [deprecated]
    • GearmanClient::doBackground - Run a task in the background
    • GearmanClient::doHigh - Run a single high priority task
    • GearmanClient::doHighBackground - Run a high priority task in the background
    • GearmanClient::doJobHandle - Get the job handle for the running task
    • GearmanClient::doLow - Run a single low priority task
    • GearmanClient::doLowBackground - Run a low priority task in the background
    • GearmanClient::doNormal - Run a single task and return a result
    • GearmanClient::doStatus - Get the status for the running task
    • GearmanClient::echo - Send data to all job servers to see if they echo it back [deprecated]
    • GearmanClient::error - Returns an error string for the last error encountered
    • GearmanClient::getErrno - Get an errno value
    • GearmanClient::jobStatus - Get the status of a background job
    • GearmanClient::ping - Send data to all job servers to see if they echo it back
    • GearmanClient::removeOptions - Remove client options
    • GearmanClient::returnCode - Get the last Gearman return code
    • GearmanClient::runTasks - Run a list of tasks in parallel
    • GearmanClient::setClientCallback - Callback function when there is a data packet for a task (deprecated)
    • GearmanClient::setCompleteCallback - Set a function to be called on task completion
    • GearmanClient::setContext - Set application context
    • GearmanClient::setCreatedCallback - Set a callback for when a task is queued
    • GearmanClient::setData - Set application data (deprecated)
    • GearmanClient::setDataCallback - Callback function when there is a data packet for a task
    • GearmanClient::setExceptionCallback - Set a callback for worker exceptions
    • GearmanClient::setFailCallback - Set callback for job failure
    • GearmanClient::setOptions - Set client options
    • GearmanClient::setStatusCallback - Set a callback for collecting task status
    • GearmanClient::setTimeout - Set socket I/O activity timeout
    • GearmanClient::setWarningCallback - Set a callback for worker warnings
    • GearmanClient::setWorkloadCallback - Set a callback for accepting incremental data updates
    • GearmanClient::timeout - Get current socket I/O activity timeout value
    • GearmanClient::wait - Wait for I/O activity on all connections in a client
    • GearmanClient::__construct - Create a GearmanClient instance
    • GearmanJob::complete - Send the result and complete status (deprecated)
    • GearmanJob::data - Send data for a running job (deprecated)
    • GearmanJob::exception - Send exception for running job (deprecated)
    • GearmanJob::fail - Send fail status (deprecated)
    • GearmanJob::functionName - Get function name
    • GearmanJob::handle - Get the job handle
    • GearmanJob::returnCode - Get last return code
    • GearmanJob::sendComplete - Send the result and complete status
    • GearmanJob::sendData - Send data for a running job
    • GearmanJob::sendException - Send exception for running job (exception)
    • GearmanJob::sendFail - Send fail status
    • GearmanJob::sendStatus - Send status
    • GearmanJob::sendWarning - Send a warning
    • GearmanJob::setReturn - Set a return value
    • GearmanJob::status - Send status (deprecated)
    • GearmanJob::unique - Get the unique identifier
    • GearmanJob::warning - Send a warning (deprecated)
    • GearmanJob::workload - Get workload
    • GearmanJob::workloadSize - Get size of work load
    • GearmanJob::__construct - Create a GearmanJob instance
    • GearmanTask::create - Create a task (deprecated)
    • GearmanTask::data - Get data returned for a task
    • GearmanTask::dataSize - Get the size of returned data
    • GearmanTask::function - Get associated function name (deprecated)
    • GearmanTask::functionName - Get associated function name
    • GearmanTask::isKnown - Determine if task is known
    • GearmanTask::isRunning - Test whether the task is currently running
    • GearmanTask::jobHandle - Get the job handle
    • GearmanTask::recvData - Read work or result data into a buffer for a task
    • GearmanTask::returnCode - Get the last return code
    • GearmanTask::sendData - Send data for a task (deprecated)
    • GearmanTask::sendWorkload - Send data for a task
    • GearmanTask::taskDenominator - Get completion percentage denominator
    • GearmanTask::taskNumerator - Get completion percentage numerator
    • GearmanTask::unique - Get the unique identifier for a task
    • GearmanTask::uuid - Get the unique identifier for a task (deprecated)
    • GearmanTask::__construct - Create a GearmanTask instance
    • GearmanWorker::addFunction - Register and add callback function
    • GearmanWorker::addOptions - Add worker options
    • GearmanWorker::addServer - Add a job server
    • GearmanWorker::addServers - Add job servers
    • GearmanWorker::clone - Create a copy of the worker
    • GearmanWorker::echo - Test job server response
    • GearmanWorker::error - Get the last error encountered
    • GearmanWorker::getErrno - Get errno
    • GearmanWorker::options - Get worker options
    • GearmanWorker::register - Register a function with the job server
    • GearmanWorker::removeOptions - Remove worker options
    • GearmanWorker::returnCode - Get last Gearman return code
    • GearmanWorker::setId - Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers
    • GearmanWorker::setOptions - Set worker options
    • GearmanWorker::setTimeout - Set socket I/O activity timeout
    • GearmanWorker::timeout - Get socket I/O activity timeout
    • GearmanWorker::unregister - Unregister a function name with the job servers
    • GearmanWorker::unregisterAll - Unregister all function names with the job servers
    • GearmanWorker::wait - Wait for activity from one of the job servers
    • GearmanWorker::work - Wait for and perform jobs
    • GearmanWorker::__construct - Create a GearmanWorker instance
    • Gender\Gender::connect - Connect to an external name dictionary
    • Gender\Gender::country - Get textual country representation
    • Gender\Gender::get - Get gender of a name
    • Gender\Gender::isNick - Check if the name0 is an alias of the name1
    • Gender\Gender::similarNames - Get similar names
    • Gender\Gender::__construct - Construct the Gender object
    • Generator::current - 返回当前产生的值
    • Generator::getReturn - 获取生成器的返回值
    • Generator::key - 返回当前产生的键
    • Generator::next - 生成器继续执行
    • Generator::rewind - 重置迭代器
    • Generator::send - 向生成器中传入一个值
    • Generator::throw - 向生成器中抛入一个异常
    • Generator::valid - 检查迭代器是否被关闭
    • Generator::__wakeup - 序列化回调
    • geoip_asnum_by_name - 获取自治系统号(ASN)
    • geoip_continent_code_by_name - 获取七大洲的大写字母简称
    • geoip_country_code3_by_name - 获取三个字母组成的国家简称
    • geoip_country_code_by_name - 获取国家代码
    • geoip_country_name_by_name - 获取国家的全称
    • geoip_database_info - 获取 GeoIP 数据库的信息
    • geoip_db_avail - GeoIP 数据库是否可用
    • geoip_db_filename - 返回 GeoIP 数据库相对应的文件名
    • geoip_db_get_all_info - 返回所有 GeoIP 数据库类型的详细信息
    • geoip_domain_by_name - 获取二级域名
    • geoip_id_by_name - 获取网络连接类型
    • geoip_isp_by_name - 获取 ISP (网络服务提供商)的名称
    • geoip_netspeedcell_by_name - 获取网络连接速度
    • geoip_org_by_name - 获取机构的名称
    • geoip_record_by_name - 返回 GeoIP 数据库中详细的城市信息
    • geoip_region_by_name - 获取国家和地区代码
    • geoip_region_name_by_code - 返回给定的国家和地区代码组合所对应的地区名称
    • geoip_setup_custom_directory - 自定义 GeoIP 数据库的目录
    • geoip_time_zone_by_country_and_region - 返回国家和地区的时区
    • getallheaders - 获取全部 HTTP 请求头信息
    • getcwd - 取得当前工作目录
    • getdate - 获取日期/时间信息
    • getenv - 获取单个或者全部环境变量
    • gethostbyaddr - 获取指定 IP 地址对应的 Internet 主机名
    • gethostbyname - 返回主机名对应的 IPv4地址。
    • gethostbynamel - 获取互联网主机名对应的 IPv4 地址列表
    • gethostname - 获取主机名
    • getimagesize - 取得图像大小
    • getimagesizefromstring - 从字符串中获取图像尺寸信息
    • getlastmod - 获取页面最后修改的时间
    • getmxrr - 获取 Internet 主机名对应的 MX 记录
    • getmygid - 获取当前 PHP 脚本拥有者的 GID
    • getmyinode - 获取当前脚本的索引节点（inode）
    • getmypid - 获取 PHP 进程的 ID
    • getmyuid - 获取 PHP 脚本所有者的 UID
    • getopt - 从命令行参数列表中获取选项
    • getprotobyname - Get protocol number associated with protocol name
    • getprotobynumber - Get protocol name associated with protocol number
    • getrandmax - 显示随机数最大的可能值
    • getrusage - 获取当前资源使用状况
    • getservbyname - 获取互联网服务协议对应的端口
    • getservbyport - Get Internet service which corresponds to port and protocol
    • getSession - Connect to a MySQL server
    • gettext - Lookup a message in the current domain
    • gettimeofday - 取得当前时间
    • gettype - 获取变量的类型
    • get_browser - 获取浏览器具有的功能
    • get_called_class - 后期静态绑定（"Late Static Binding"）类的名称
    • get_cfg_var - 获取 PHP 配置选项的值
    • get_class - 返回对象的类名
    • get_class_methods - 返回由类的方法名组成的数组
    • get_class_vars - 获取类的默认属性
    • get_current_user - 获取当前 PHP 脚本所有者名称
    • get_debug_type - 以适合调试的方式获取变量的类型名称
    • get_declared_classes - 返回由已定义类的名字所组成的数组
    • get_declared_interfaces - 返回一个数组包含所有已声明的接口
    • get_declared_traits - 返回所有已定义的 traits 的数组
    • get_defined_constants - 返回所有常量的关联数组，键是常量名，值是常量值
    • get_defined_functions - 返回所有已定义函数的数组
    • get_defined_vars - 返回由所有已定义变量所组成的数组
    • get_extension_funcs - 返回模块函数名称的数组
    • get_headers - 取得服务器响应 HTTP 请求所发送的所有标头
    • get_html_translation_table - 返回使用 htmlspecialchars 和 htmlentities 后的转换表
    • get_included_files - 返回被 include 和 require 文件名的 array
    • get_include_path - 获取当前的 include_path 配置选项
    • get_loaded_extensions - 返回所有编译并加载模块名的 array
    • get_magic_quotes_gpc - 获取当前 magic_quotes_gpc 的配置选项设置
    • get_magic_quotes_runtime - 获取当前 magic_quotes_runtime 配置选项的激活状态
    • get_mangled_object_vars - 返回将对象属性混在一起的数组
    • get_meta_tags - 从一个文件中提取所有的 meta 标签 content 属性，返回一个数组
    • get_object_vars - 获取指定对象的属性
    • get_parent_class - 检索对象或者类的父级类名
    • get_required_files - 别名 get_included_files
    • get_resources - Returns active resources
    • get_resource_id - 返回给定资源的整数标识符
    • get_resource_type - 返回资源类型
    • glob - 寻找与模式匹配的文件路径
    • GlobIterator::count - Get the number of directories and files
    • GlobIterator::__construct - Construct a directory using glob
    • Gmagick::addimage - Adds new image to Gmagick object image list
    • Gmagick::addnoiseimage - Adds random noise to the image
    • Gmagick::annotateimage - Annotates an image with text
    • Gmagick::blurimage - Adds blur filter to image
    • Gmagick::borderimage - Surrounds the image with a border
    • Gmagick::charcoalimage - Simulates a charcoal drawing
    • Gmagick::chopimage - Removes a region of an image and trims
    • Gmagick::clear - Clears all resources associated to Gmagick object
    • Gmagick::commentimage - Adds a comment to your image
    • Gmagick::compositeimage - Composite one image onto another
    • Gmagick::cropimage - Extracts a region of the image
    • Gmagick::cropthumbnailimage - Creates a crop thumbnail
    • Gmagick::current - The current purpose
    • Gmagick::cyclecolormapimage - Displaces an image's colormap
    • Gmagick::deconstructimages - Returns certain pixel differences between images
    • Gmagick::despeckleimage - The despeckleimage purpose
    • Gmagick::destroy - The destroy purpose
    • Gmagick::drawimage - Renders the GmagickDraw object on the current image
    • Gmagick::edgeimage - Enhance edges within the image
    • Gmagick::embossimage - Returns a grayscale image with a three-dimensional effect
    • Gmagick::enhanceimage - Improves the quality of a noisy image
    • Gmagick::equalizeimage - Equalizes the image histogram
    • Gmagick::flipimage - Creates a vertical mirror image
    • Gmagick::flopimage - Creates a horizontal mirror image
    • Gmagick::frameimage - Adds a simulated three-dimensional border
    • Gmagick::gammaimage - Gamma-corrects an image
    • Gmagick::getcopyright - Returns the GraphicsMagick API copyright as a string
    • Gmagick::getfilename - The filename associated with an image sequence
    • Gmagick::getimagebackgroundcolor - Returns the image background color
    • Gmagick::getimageblueprimary - Returns the chromaticy blue primary point
    • Gmagick::getimagebordercolor - Returns the image border color
    • Gmagick::getimagechanneldepth - Gets the depth for a particular image channel
    • Gmagick::getimagecolors - Returns the color of the specified colormap index
    • Gmagick::getimagecolorspace - Gets the image colorspace
    • Gmagick::getimagecompose - Returns the composite operator associated with the image
    • Gmagick::getimagedelay - Gets the image delay
    • Gmagick::getimagedepth - Gets the depth of the image
    • Gmagick::getimagedispose - Gets the image disposal method
    • Gmagick::getimageextrema - Gets the extrema for the image
    • Gmagick::getimagefilename - Returns the filename of a particular image in a sequence
    • Gmagick::getimageformat - Returns the format of a particular image in a sequence
    • Gmagick::getimagegamma - Gets the image gamma
    • Gmagick::getimagegreenprimary - Returns the chromaticy green primary point
    • Gmagick::getimageheight - Returns the image height
    • Gmagick::getimagehistogram - Gets the image histogram
    • Gmagick::getimageindex - Gets the index of the current active image
    • Gmagick::getimageinterlacescheme - Gets the image interlace scheme
    • Gmagick::getimageiterations - Gets the image iterations
    • Gmagick::getimagematte - Check if the image has a matte channel
    • Gmagick::getimagemattecolor - Returns the image matte color
    • Gmagick::getimageprofile - Returns the named image profile
    • Gmagick::getimageredprimary - Returns the chromaticity red primary point
    • Gmagick::getimagerenderingintent - Gets the image rendering intent
    • Gmagick::getimageresolution - Gets the image X and Y resolution
    • Gmagick::getimagescene - Gets the image scene
    • Gmagick::getimagesignature - Generates an SHA-256 message digest
    • Gmagick::getimagetype - Gets the potential image type
    • Gmagick::getimageunits - Gets the image units of resolution
    • Gmagick::getimagewhitepoint - Returns the chromaticity white point
    • Gmagick::getimagewidth - Returns the width of the image
    • Gmagick::getpackagename - Returns the GraphicsMagick package name
    • Gmagick::getquantumdepth - Returns the Gmagick quantum depth as a string
    • Gmagick::getreleasedate - Returns the GraphicsMagick release date as a string
    • Gmagick::getsamplingfactors - Gets the horizontal and vertical sampling factor
    • Gmagick::getsize - Returns the size associated with the Gmagick object
    • Gmagick::getversion - Returns the GraphicsMagick API version
    • Gmagick::hasnextimage - Checks if the object has more images
    • Gmagick::haspreviousimage - Checks if the object has a previous image
    • Gmagick::implodeimage - Creates a new image as a copy
    • Gmagick::labelimage - Adds a label to an image
    • Gmagick::levelimage - Adjusts the levels of an image
    • Gmagick::magnifyimage - Scales an image proportionally 2x
    • Gmagick::mapimage - Replaces the colors of an image with the closest color from a reference image
    • Gmagick::medianfilterimage - Applies a digital filter
    • Gmagick::minifyimage - Scales an image proportionally to half its size
    • Gmagick::modulateimage - Control the brightness, saturation, and hue
    • Gmagick::motionblurimage - Simulates motion blur
    • Gmagick::newimage - Creates a new image
    • Gmagick::nextimage - Moves to the next image
    • Gmagick::normalizeimage - Enhances the contrast of a color image
    • Gmagick::oilpaintimage - Simulates an oil painting
    • Gmagick::previousimage - Move to the previous image in the object
    • Gmagick::profileimage - Adds or removes a profile from an image
    • Gmagick::quantizeimage - Analyzes the colors within a reference image
    • Gmagick::quantizeimages - The quantizeimages purpose
    • Gmagick::queryfontmetrics - Returns an array representing the font metrics
    • Gmagick::queryfonts - Returns the configured fonts
    • Gmagick::queryformats - Returns formats supported by Gmagick
    • Gmagick::radialblurimage - Radial blurs an image
    • Gmagick::raiseimage - Creates a simulated 3d button-like effect
    • Gmagick::read - Reads image from filename
    • Gmagick::readimage - Reads image from filename
    • Gmagick::readimageblob - Reads image from a binary string
    • Gmagick::readimagefile - The readimagefile purpose
    • Gmagick::reducenoiseimage - Smooths the contours of an image
    • Gmagick::removeimage - Removes an image from the image list
    • Gmagick::removeimageprofile - Removes the named image profile and returns it
    • Gmagick::resampleimage - Resample image to desired resolution
    • Gmagick::resizeimage - Scales an image
    • Gmagick::rollimage - Offsets an image
    • Gmagick::rotateimage - Rotates an image
    • Gmagick::scaleimage - Scales the size of an image
    • Gmagick::separateimagechannel - Separates a channel from the image
    • Gmagick::setCompressionQuality - Sets the object's default compression quality
    • Gmagick::setfilename - Sets the filename before you read or write the image
    • Gmagick::setimagebackgroundcolor - Sets the image background color
    • Gmagick::setimageblueprimary - Sets the image chromaticity blue primary point
    • Gmagick::setimagebordercolor - Sets the image border color
    • Gmagick::setimagechanneldepth - Sets the depth of a particular image channel
    • Gmagick::setimagecolorspace - Sets the image colorspace
    • Gmagick::setimagecompose - Sets the image composite operator
    • Gmagick::setimagedelay - Sets the image delay
    • Gmagick::setimagedepth - Sets the image depth
    • Gmagick::setimagedispose - Sets the image disposal method
    • Gmagick::setimagefilename - Sets the filename of a particular image in a sequence
    • Gmagick::setimageformat - Sets the format of a particular image
    • Gmagick::setimagegamma - Sets the image gamma
    • Gmagick::setimagegreenprimary - Sets the image chromaticity green primary point
    • Gmagick::setimageindex - Set the iterator to the position in the image list specified with the index parameter
    • Gmagick::setimageinterlacescheme - Sets the interlace scheme of the image
    • Gmagick::setimageiterations - Sets the image iterations
    • Gmagick::setimageprofile - Adds a named profile to the Gmagick object
    • Gmagick::setimageredprimary - Sets the image chromaticity red primary point
    • Gmagick::setimagerenderingintent - Sets the image rendering intent
    • Gmagick::setimageresolution - Sets the image resolution
    • Gmagick::setimagescene - Sets the image scene
    • Gmagick::setimagetype - Sets the image type
    • Gmagick::setimageunits - Sets the image units of resolution
    • Gmagick::setimagewhitepoint - Sets the image chromaticity white point
    • Gmagick::setsamplingfactors - Sets the image sampling factors
    • Gmagick::setsize - Sets the size of the Gmagick object
    • Gmagick::shearimage - Creating a parallelogram
    • Gmagick::solarizeimage - Applies a solarizing effect to the image
    • Gmagick::spreadimage - Randomly displaces each pixel in a block
    • Gmagick::stripimage - Strips an image of all profiles and comments
    • Gmagick::swirlimage - Swirls the pixels about the center of the image
    • Gmagick::thumbnailimage - Changes the size of an image
    • Gmagick::trimimage - Remove edges from the image
    • Gmagick::write - 别名 Gmagick::writeimage
    • Gmagick::writeimage - Writes an image to the specified filename
    • Gmagick::__construct - The Gmagick constructor
    • GmagickDraw::annotate - Draws text on the image
    • GmagickDraw::arc - Draws an arc
    • GmagickDraw::bezier - Draws a bezier curve
    • GmagickDraw::ellipse - Draws an ellipse on the image
    • GmagickDraw::getfillcolor - Returns the fill color
    • GmagickDraw::getfillopacity - Returns the opacity used when drawing
    • GmagickDraw::getfont - Returns the font
    • GmagickDraw::getfontsize - Returns the font pointsize
    • GmagickDraw::getfontstyle - Returns the font style
    • GmagickDraw::getfontweight - Returns the font weight
    • GmagickDraw::getstrokecolor - Returns the color used for stroking object outlines
    • GmagickDraw::getstrokeopacity - Returns the opacity of stroked object outlines
    • GmagickDraw::getstrokewidth - Returns the width of the stroke used to draw object outlines
    • GmagickDraw::gettextdecoration - Returns the text decoration
    • GmagickDraw::gettextencoding - Returns the code set used for text annotations
    • GmagickDraw::line - Draws a line
    • GmagickDraw::point - Draws a point
    • GmagickDraw::polygon - Draws a polygon
    • GmagickDraw::polyline - Draws a polyline
    • GmagickDraw::rectangle - Draws a rectangle
    • GmagickDraw::rotate - Applies the specified rotation to the current coordinate space
    • GmagickDraw::roundrectangle - Draws a rounded rectangle
    • GmagickDraw::scale - Adjusts the scaling factor
    • GmagickDraw::setfillcolor - Sets the fill color to be used for drawing filled objects
    • GmagickDraw::setfillopacity - The setfillopacity purpose
    • GmagickDraw::setfont - Sets the fully-specified font to use when annotating with text
    • GmagickDraw::setfontsize - Sets the font pointsize to use when annotating with text
    • GmagickDraw::setfontstyle - Sets the font style to use when annotating with text
    • GmagickDraw::setfontweight - Sets the font weight
    • GmagickDraw::setstrokecolor - Sets the color used for stroking object outlines
    • GmagickDraw::setstrokeopacity - Specifies the opacity of stroked object outlines
    • GmagickDraw::setstrokewidth - Sets the width of the stroke used to draw object outlines
    • GmagickDraw::settextdecoration - Specifies a decoration
    • GmagickDraw::settextencoding - Specifies the text code set
    • GmagickPixel::getcolor - Returns the color
    • GmagickPixel::getcolorcount - Returns the color count associated with this color
    • GmagickPixel::getcolorvalue - Gets the normalized value of the provided color channel
    • GmagickPixel::setcolor - Sets the color
    • GmagickPixel::setcolorvalue - Sets the normalized value of one of the channels
    • GmagickPixel::__construct - The GmagickPixel constructor
    • gmdate - 格式化 GMT/UTC 日期／时间
    • gmmktime - 取得 GMT 日期的 UNIX 时间戳
    • GMP::__construct - Create GMP number
    • GMP::__serialize - Serializes the GMP object
    • GMP::__unserialize - Deserializes the data parameter into a GMP object
    • gmp_abs - Absolute value
    • gmp_add - Add numbers
    • gmp_and - Bitwise AND
    • gmp_binomial - Calculates binomial coefficient
    • gmp_clrbit - Clear bit
    • gmp_cmp - Compare numbers
    • gmp_com - Calculates one's complement
    • gmp_div - 别名 gmp_div_q
    • gmp_divexact - Exact division of numbers
    • gmp_div_q - Divide numbers
    • gmp_div_qr - Divide numbers and get quotient and remainder
    • gmp_div_r - Remainder of the division of numbers
    • gmp_export - Export to a binary string
    • gmp_fact - Factorial
    • gmp_gcd - Calculate GCD
    • gmp_gcdext - Calculate GCD and multipliers
    • gmp_hamdist - Hamming distance
    • gmp_import - Import from a binary string
    • gmp_init - Create GMP number
    • gmp_intval - Convert GMP number to integer
    • gmp_invert - Inverse by modulo
    • gmp_jacobi - Jacobi symbol
    • gmp_kronecker - Kronecker symbol
    • gmp_lcm - Calculate LCM
    • gmp_legendre - Legendre symbol
    • gmp_mod - Modulo operation
    • gmp_mul - Multiply numbers
    • gmp_neg - Negate number
    • gmp_nextprime - Find next prime number
    • gmp_or - Bitwise OR
    • gmp_perfect_power - Perfect power check
    • gmp_perfect_square - Perfect square check
    • gmp_popcount - Population count
    • gmp_pow - Raise number into power
    • gmp_powm - Raise number into power with modulo
    • gmp_prob_prime - Check if number is "probably prime"
    • gmp_random - Random number
    • gmp_random_bits - Random number
    • gmp_random_range - Get a uniformly selected integer
    • gmp_random_seed - Sets the RNG seed
    • gmp_root - Take the integer part of nth root
    • gmp_rootrem - Take the integer part and remainder of nth root
    • gmp_scan0 - Scan for 0
    • gmp_scan1 - Scan for 1
    • gmp_setbit - Set bit
    • gmp_sign - Sign of number
    • gmp_sqrt - Calculate square root
    • gmp_sqrtrem - Square root with remainder
    • gmp_strval - Convert GMP number to string
    • gmp_sub - Subtract numbers
    • gmp_testbit - Tests if a bit is set
    • gmp_xor - Bitwise XOR
    • gmstrftime - 根据区域设置格式化 GMT/UTC 时间/日期
    • gnupg_adddecryptkey - Add a key for decryption
    • gnupg_addencryptkey - Add a key for encryption
    • gnupg_addsignkey - Add a key for signing
    • gnupg_cleardecryptkeys - Removes all keys which were set for decryption before
    • gnupg_clearencryptkeys - Removes all keys which were set for encryption before
    • gnupg_clearsignkeys - Removes all keys which were set for signing before
    • gnupg_decrypt - Decrypts a given text
    • gnupg_decryptverify - Decrypts and verifies a given text
    • gnupg_deletekey - Delete a key from the keyring
    • gnupg_encrypt - Encrypts a given text
    • gnupg_encryptsign - Encrypts and signs a given text
    • gnupg_export - Exports a key
    • gnupg_getengineinfo - Returns the engine info
    • gnupg_geterror - Returns the errortext, if a function fails
    • gnupg_geterrorinfo - Returns the error info
    • gnupg_getprotocol - Returns the currently active protocol for all operations
    • gnupg_gettrustlist - Search the trust items
    • gnupg_import - Imports a key
    • gnupg_init - Initialize a connection
    • gnupg_keyinfo - Returns an array with information about all keys that matches the given pattern
    • gnupg_listsignatures - List key signatures
    • gnupg_setarmor - Toggle armored output
    • gnupg_seterrormode - Sets the mode for error_reporting
    • gnupg_setsignmode - Sets the mode for signing
    • gnupg_sign - Signs a given text
    • gnupg_verify - Verifies a signed text
    • grapheme_extract - Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8
    • grapheme_stripos - Find position (in grapheme units) of first occurrence of a case-insensitive string
    • grapheme_stristr - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
    • grapheme_strlen - Get string length in grapheme units
    • grapheme_strpos - Find position (in grapheme units) of first occurrence of a string
    • grapheme_strripos - Find position (in grapheme units) of last occurrence of a case-insensitive string
    • grapheme_strrpos - Find position (in grapheme units) of last occurrence of a string
    • grapheme_strstr - Returns part of haystack string from the first occurrence of needle to the end of haystack
    • grapheme_substr - Return part of a string
    • gregoriantojd - 将公历日期转为儒略日数
    • gzclose - Close an open gz-file pointer
    • gzcompress - Compress a string
    • gzdecode - Decodes a gzip compressed string
    • gzdeflate - Deflate a string
    • gzencode - Create a gzip compressed string
    • gzeof - Test for EOF on a gz-file pointer
    • gzfile - Read entire gz-file into an array
    • gzgetc - Get character from gz-file pointer
    • gzgets - Get line from file pointer
    • gzgetss - Get line from gz-file pointer and strip HTML tags
    • gzinflate - Inflate a deflated string
    • gzopen - Open gz-file
    • gzpassthru - Output all remaining data on a gz-file pointer
    • gzputs - 别名 gzwrite
    • gzread - Binary-safe gz-file read
    • gzrewind - Rewind the position of a gz-file pointer
    • gzseek - Seek on a gz-file pointer
    • gztell - Tell gz-file pointer read/write position
    • gzuncompress - Uncompress a compressed string
    • gzwrite - Binary-safe gz-file write
  • h
    • hash - 生成散列值（消息摘要）
    • HashContext::__construct - 私有构造方法以禁止直接实例化
    • HashContext::__serialize - 序列化 HashContext 对象
    • HashContext::__unserialize - 反序列化 data 参数为 HashContext 对象
    • hash_algos - 返回已注册的散列算法列表
    • hash_copy - 拷贝哈希运算上下文
    • hash_equals - 可防止时序攻击的字符串比较
    • hash_file - 给指定文件的内容生成散列值
    • hash_final - 结束增量散列且返回摘要结果
    • hash_hkdf - Generate a HKDF key derivation of a supplied key input
    • hash_hmac - 使用 HMAC 方法生成带有密钥的散列值
    • hash_hmac_algos - 返回适用于 hash_hmac 的已注册散列算法列表
    • hash_hmac_file - 使用 HMAC 方法和给定文件的内容生成带密钥的散列值
    • hash_init - 初始化增量散列运算上下文
    • hash_pbkdf2 - 生成所提供密码的 PBKDF2 密钥导出
    • hash_update - 向活跃的哈希运算上下文中填充数据
    • hash_update_file - 从文件向活跃的散列运算上下文中填充数据
    • hash_update_stream - 从打开的流向活跃的散列运算上下文中填充数据
    • header - 发送原生 HTTP 头
    • headers_list - 返回已发送的 HTTP 响应头（或准备发送的）
    • headers_sent - 检测消息头是否已经发送
    • header_register_callback - 调用一个 header 函数
    • header_remove - 删除之前设置的 HTTP 头
    • hebrev - 将逻辑顺序希伯来文（logical-Hebrew）转换为视觉顺序希伯来文（visual-Hebrew）
    • hebrevc - 将逻辑顺序希伯来文（logical-Hebrew）转换为视觉顺序希伯来文（visual-Hebrew），并且转换换行符
    • hex2bin - 转换十六进制字符串为二进制字符串
    • hexdec - 十六进制转换为十进制
    • highlight_file - 语法高亮一个文件
    • highlight_string - 字符串的语法高亮
    • hrtime - 获取系统的高精度时间
    • HRTime\PerformanceCounter::getFrequency - Timer frequency in ticks per second
    • HRTime\PerformanceCounter::getTicks - Current ticks from the system
    • HRTime\PerformanceCounter::getTicksSince - Ticks elapsed since the given value
    • HRTime\StopWatch::getElapsedTicks - Get elapsed ticks for all intervals
    • HRTime\StopWatch::getElapsedTime - Get elapsed time for all intervals
    • HRTime\StopWatch::getLastElapsedTicks - Get elapsed ticks for the last interval
    • HRTime\StopWatch::getLastElapsedTime - Get elapsed time for the last interval
    • HRTime\StopWatch::isRunning - 确认测量是否在运行
    • HRTime\StopWatch::start - Start time measurement
    • HRTime\StopWatch::stop - Stop time measurement
    • htmlentities - 将字符转换为 HTML 转义字符
    • htmlspecialchars - 将特殊字符转换为 HTML 实体
    • htmlspecialchars_decode - 将特殊的 HTML 实体转换回普通字符
    • html_entity_decode - Convert HTML entities to their corresponding characters
    • http_build_query - 生成 URL-encode 之后的请求字符串
    • http_response_code - 获取/设置响应的 HTTP 状态码
    • hypot - 计算直角三角形的斜边长度
  • i
    • ibase_add_user - Add a user to a security database
    • ibase_affected_rows - Return the number of rows that were affected by the previous query
    • ibase_backup - Initiates a backup task in the service manager and returns immediately
    • ibase_blob_add - Add data into a newly created blob
    • ibase_blob_cancel - Cancel creating blob
    • ibase_blob_close - Close blob
    • ibase_blob_create - Create a new blob for adding data
    • ibase_blob_echo - Output blob contents to browser
    • ibase_blob_get - Get len bytes data from open blob
    • ibase_blob_import - Create blob, copy file in it, and close it
    • ibase_blob_info - Return blob length and other useful info
    • ibase_blob_open - Open blob for retrieving data parts
    • ibase_close - Close a connection to an InterBase database
    • ibase_commit - Commit a transaction
    • ibase_commit_ret - Commit a transaction without closing it
    • ibase_connect - Open a connection to a database
    • ibase_db_info - Request statistics about a database
    • ibase_delete_user - Delete a user from a security database
    • ibase_drop_db - Drops a database
    • ibase_errcode - Return an error code
    • ibase_errmsg - Return error messages
    • ibase_execute - Execute a previously prepared query
    • ibase_fetch_assoc - Fetch a result row from a query as an associative array
    • ibase_fetch_object - Get an object from a InterBase database
    • ibase_fetch_row - Fetch a row from an InterBase database
    • ibase_field_info - Get information about a field
    • ibase_free_event_handler - Cancels a registered event handler
    • ibase_free_query - Free memory allocated by a prepared query
    • ibase_free_result - Free a result set
    • ibase_gen_id - Increments the named generator and returns its new value
    • ibase_maintain_db - Execute a maintenance command on the database server
    • ibase_modify_user - Modify a user to a security database
    • ibase_name_result - Assigns a name to a result set
    • ibase_num_fields - Get the number of fields in a result set
    • ibase_num_params - Return the number of parameters in a prepared query
    • ibase_param_info - Return information about a parameter in a prepared query
    • ibase_pconnect - Open a persistent connection to an InterBase database
    • ibase_prepare - Prepare a query for later binding of parameter placeholders and execution
    • ibase_query - Execute a query on an InterBase database
    • ibase_restore - Initiates a restore task in the service manager and returns immediately
    • ibase_rollback - Roll back a transaction
    • ibase_rollback_ret - Roll back a transaction without closing it
    • ibase_server_info - Request information about a database server
    • ibase_service_attach - Connect to the service manager
    • ibase_service_detach - Disconnect from the service manager
    • ibase_set_event_handler - Register a callback function to be called when events are posted
    • ibase_trans - Begin a transaction
    • ibase_wait_event - Wait for an event to be posted by the database
    • iconv - 将字符串从一个字符编码转换到另一个字符编码
    • iconv_get_encoding - 获取 iconv 扩展的内部配置变量
    • iconv_mime_decode - 解码一个MIME头字段
    • iconv_mime_decode_headers - 一次性解码多个 MIME 头字段
    • iconv_mime_encode - Composes a MIME header field
    • iconv_set_encoding - 为字符编码转换设定当前设置
    • iconv_strlen - 返回字符串的字符数统计
    • iconv_strpos - Finds position of first occurrence of a needle within a haystack
    • iconv_strrpos - Finds the last occurrence of a needle within a haystack
    • iconv_substr - 截取字符串的部分
    • idate - 将本地日期/时间格式化为整数
    • idn_to_ascii - 将域名转换为 IDNA ASCII 格式
    • idn_to_utf8 - 将域名从 IDNA ASCII 转换为 Unicode
    • igbinary_serialize - Generates a compact, storable binary representation of a value
    • igbinary_unserialize - Creates a PHP value from a stored representation from igbinary_serialize
    • ignore_user_abort - 设置客户端断开连接时是否中断脚本的执行
    • image2wbmp - 输出图象到浏览器或文件。
    • imageaffine - 返回经过仿射变换后的图像，剪切区域可选
    • imageaffinematrixconcat - Concatenate two affine transformation matrices
    • imageaffinematrixget - Get an affine transformation matrix
    • imagealphablending - 设定图像的混色模式
    • imageantialias - 是否使用抗锯齿（antialias）功能
    • imagearc - 画弧线
    • imageavif - 输出图象到浏览器或文件。
    • imagebmp - Output a BMP image to browser or file
    • imagechar - 水平地绘制一个字符
    • imagecharup - 垂直地绘制一个字符
    • imagecolorallocate - 为图像分配颜色
    • imagecolorallocatealpha - 为图像分配颜色
    • imagecolorat - 取得某像素的颜色索引值
    • imagecolorclosest - 取得与指定的颜色最接近的颜色索引值
    • imagecolorclosestalpha - 获取最接近指定颜色 + alpha 的颜色索引
    • imagecolorclosesthwb - 取得与给定颜色最接近的色度的黑白色的索引
    • imagecolordeallocate - 取消图像颜色的分配
    • imagecolorexact - 取得指定颜色的索引值
    • imagecolorexactalpha - 取得指定的颜色加透明度的索引值
    • imagecolormatch - 使一个图像中调色板版本的颜色与真彩色版本更能匹配
    • imagecolorresolve - 取得指定颜色的索引值或有可能得到的最接近的替代值
    • imagecolorresolvealpha - 取得指定颜色 + alpha 或其最接近的替代值
    • imagecolorset - 给指定调色板索引设定颜色
    • imagecolorsforindex - 获取索引的颜色
    • imagecolorstotal - 取得图像调色板中的颜色数量
    • imagecolortransparent - 将颜色定义为透明
    • imageconvolution - 用系数 div 和 offset 申请一个 3x3 的卷积矩阵
    • imagecopy - 拷贝图像的一部分
    • imagecopymerge - 拷贝并合并图像的一部分
    • imagecopymergegray - 用灰度复制并合并图像的一部分
    • imagecopyresampled - 重采样拷贝部分图像并调整大小
    • imagecopyresized - 拷贝部分图像并调整大小
    • imagecreate - 创建新的基于调色板的图像
    • imagecreatefromavif - 由文件或 URL 创建一个新图象。
    • imagecreatefrombmp - 由文件或 URL 创建一个新图象。
    • imagecreatefromgd - 从 GD 文件或 URL 新建一图像
    • imagecreatefromgd2 - 从 GD2 文件或 URL 新建一图像
    • imagecreatefromgd2part - 从指定的 GD2 文件或 URL 的部分创建新图像
    • imagecreatefromgif - 由文件或 URL 创建一个新图象。
    • imagecreatefromjpeg - 由文件或 URL 创建一个新图象。
    • imagecreatefrompng - 由文件或 URL 创建一个新图象。
    • imagecreatefromstring - 从字符串的图像流中新建图像
    • imagecreatefromtga - 由文件或 URL 创建一个新图象。
    • imagecreatefromwbmp - 由文件或 URL 创建一个新图象。
    • imagecreatefromwebp - 由文件或 URL 创建一个新图象。
    • imagecreatefromxbm - 由文件或 URL 创建一个新图象。
    • imagecreatefromxpm - 由文件或 URL 创建一个新图象。
    • imagecreatetruecolor - 新建真彩色图像
    • imagecrop - Crop an image to the given rectangle
    • imagecropauto - Crop an image automatically using one of the available modes
    • imagedashedline - 绘制虚线
    • imagedestroy - 销毁图像
    • imageellipse - 画椭圆
    • imagefill - 漫水填充
    • imagefilledarc - 绘制部分弧形并填充
    • imagefilledellipse - 绘制椭圆并填充
    • imagefilledpolygon - 绘制多边形并填充
    • imagefilledrectangle - 绘制矩形并填充
    • imagefilltoborder - 漫水填充特定颜色
    • imagefilter - 对图像使用过滤器
    • imageflip - Flips an image using a given mode
    • imagefontheight - 获取字体高度
    • imagefontwidth - 获取字体宽度
    • imageftbbox - 通过 freetype2 使用字体给出文本的边界框
    • imagefttext - 使用 FreeType 2 字体将文本写入图像
    • imagegammacorrect - 对 GD 图像应用伽玛校正
    • imagegd - 将 GD 图像输出到浏览器或文件
    • imagegd2 - 将 GD2 图像输出到浏览器或文件
    • imagegetclip - Get the clipping rectangle
    • imagegetinterpolation - Get the interpolation method
    • imagegif - 输出图象到浏览器或文件。
    • imagegrabscreen - Captures the whole screen
    • imagegrabwindow - Captures a window
    • imageinterlace - 启用或禁用隔行扫描
    • imageistruecolor - 检查图像是否为真彩色图像
    • imagejpeg - 输出图象到浏览器或文件。
    • imagelayereffect - 设定 alpha 混合标志以使用分层效果
    • imageline - 绘制直线
    • imageloadfont - 载入新字体
    • imageopenpolygon - Draws an open polygon
    • imagepalettecopy - 将调色板从一个图像复制到另一个
    • imagepalettetotruecolor - Converts a palette based image to true color
    • imagepng - 将 PNG 图像输出到浏览器或文件
    • imagepolygon - 绘制多边形
    • imagerectangle - 绘制矩形
    • imageresolution - Get or set the resolution of the image
    • imagerotate - 用给定角度旋转图像
    • imagesavealpha - 保存图像时是否保留完整的 alpha 通道信息
    • imagescale - Scale an image using the given new width and height
    • imagesetbrush - 为线条设置笔刷图像
    • imagesetclip - Set the clipping rectangle
    • imagesetinterpolation - Set the interpolation method
    • imagesetpixel - 设置单个像素
    • imagesetstyle - 设定线条的样式
    • imagesetthickness - 设定画线的粗细
    • imagesettile - 设置要填充的平铺图像
    • imagestring - 水平绘制字符串
    • imagestringup - 垂直绘制字符串
    • imagesx - 取得图像宽度
    • imagesy - 取得图像高度
    • imagetruecolortopalette - 将真彩色图像转换为调色板图像
    • imagettfbbox - 取得使用 TrueType 字体的文本的边界框
    • imagettftext - 用 TrueType 字体向图像写入文本
    • imagetypes - 返回 PHP 内置支持的图像类型
    • imagewbmp - 输出图象到浏览器或文件。
    • imagewebp - 将 WebP 格式的图像输出到浏览器或文件
    • imagexbm - 输出 XBM 图像到浏览器或文件
    • image_type_to_extension - 取得图像类型的文件后缀
    • image_type_to_mime_type - 取得 getimagesize、exif_read_data、exif_thumbnail、exif_imagetype 所返回的图像类型的 MIME 类型
    • Imagick::adaptiveBlurImage - Adds adaptive blur filter to image
    • Imagick::adaptiveResizeImage - Adaptively resize image with data dependent triangulation
    • Imagick::adaptiveSharpenImage - Adaptively sharpen the image
    • Imagick::adaptiveThresholdImage - Selects a threshold for each pixel based on a range of intensity
    • Imagick::addImage - Adds new image to Imagick object image list
    • Imagick::addNoiseImage - Adds random noise to the image
    • Imagick::affineTransformImage - Transforms an image
    • Imagick::animateImages - Animates an image or images
    • Imagick::annotateImage - Annotates an image with text
    • Imagick::appendImages - Append a set of images
    • Imagick::autoLevelImage - Adjusts the levels of a particular image channel
    • Imagick::averageImages - Average a set of images
    • Imagick::blackThresholdImage - Forces all pixels below the threshold into black
    • Imagick::blueShiftImage - Mutes the colors of the image
    • Imagick::blurImage - Adds blur filter to image
    • Imagick::borderImage - Surrounds the image with a border
    • Imagick::brightnessContrastImage - Change the brightness and/or contrast of an image
    • Imagick::charcoalImage - Simulates a charcoal drawing
    • Imagick::chopImage - Removes a region of an image and trims
    • Imagick::clampImage - Restricts the color range from 0 to the quantum depth.
    • Imagick::clear - Clears all resources associated to Imagick object
    • Imagick::clipImage - Clips along the first path from the 8BIM profile
    • Imagick::clipImagePath - Clips along the named paths from the 8BIM profile, if present
    • Imagick::clipPathImage - Clips along the named paths from the 8BIM profile
    • Imagick::clone - Makes an exact copy of the Imagick object
    • Imagick::clutImage - Replaces colors in the image
    • Imagick::coalesceImages - Composites a set of images
    • Imagick::colorFloodfillImage - Changes the color value of any pixel that matches target
    • Imagick::colorizeImage - Blends the fill color with the image
    • Imagick::colorMatrixImage - Apply color transformation to an image
    • Imagick::combineImages - Combines one or more images into a single image
    • Imagick::commentImage - Adds a comment to your image
    • Imagick::compareImageChannels - Returns the difference in one or more images
    • Imagick::compareImageLayers - Returns the maximum bounding region between images
    • Imagick::compareImages - Compares an image to a reconstructed image
    • Imagick::compositeImage - 把一张图合并到一张图
    • Imagick::contrastImage - Change the contrast of the image
    • Imagick::contrastStretchImage - Enhances the contrast of a color image
    • Imagick::convolveImage - Applies a custom convolution kernel to the image
    • Imagick::count - Get the number of images
    • Imagick::cropImage - 截图图片的一块区域
    • Imagick::cropThumbnailImage - 创建缩略图
    • Imagick::current - Returns a reference to the current Imagick object
    • Imagick::cycleColormapImage - Displaces an image's colormap
    • Imagick::decipherImage - Deciphers an image
    • Imagick::deconstructImages - Returns certain pixel differences between images
    • Imagick::deleteImageArtifact - Delete image artifact
    • Imagick::deleteImageProperty - Deletes an image property
    • Imagick::deskewImage - Removes skew from the image
    • Imagick::despeckleImage - Reduces the speckle noise in an image
    • Imagick::destroy - Destroys the Imagick object
    • Imagick::displayImage - Displays an image
    • Imagick::displayImages - Displays an image or image sequence
    • Imagick::distortImage - Distorts an image using various distortion methods
    • Imagick::drawImage - 把 ImagickDraw 对象渲染到当前图片上
    • Imagick::edgeImage - Enhance edges within the image
    • Imagick::embossImage - Returns a grayscale image with a three-dimensional effect
    • Imagick::encipherImage - Enciphers an image
    • Imagick::enhanceImage - Improves the quality of a noisy image
    • Imagick::equalizeImage - Equalizes the image histogram
    • Imagick::evaluateImage - Applies an expression to an image
    • Imagick::exportImagePixels - Exports raw image pixels
    • Imagick::extentImage - Set image size
    • Imagick::filter - Applies a custom convolution kernel to the image
    • Imagick::flattenImages - Merges a sequence of images
    • Imagick::flipImage - Creates a vertical mirror image
    • Imagick::floodFillPaintImage - Changes the color value of any pixel that matches target
    • Imagick::flopImage - Creates a horizontal mirror image
    • Imagick::forwardFourierTransformImage - Implements the discrete Fourier transform (DFT)
    • Imagick::frameImage - Adds a simulated three-dimensional border
    • Imagick::functionImage - Applies a function on the image
    • Imagick::fxImage - Evaluate expression for each pixel in the image
    • Imagick::gammaImage - Gamma-corrects an image
    • Imagick::gaussianBlurImage - Blurs an image
    • Imagick::getColorspace - Gets the colorspace
    • Imagick::getCompression - Gets the object compression type
    • Imagick::getCompressionQuality - Gets the object compression quality
    • Imagick::getCopyright - Returns the ImageMagick API copyright as a string
    • Imagick::getFilename - The filename associated with an image sequence
    • Imagick::getFont - Gets font
    • Imagick::getFormat - Returns the format of the Imagick object
    • Imagick::getGravity - Gets the gravity
    • Imagick::getHomeURL - Returns the ImageMagick home URL
    • Imagick::getImage - Returns a new Imagick object
    • Imagick::getImageAlphaChannel - 检查图像是否有 alpha 通道
    • Imagick::getImageArtifact - Get image artifact
    • Imagick::getImageAttribute - Returns a named attribute
    • Imagick::getImageBackgroundColor - Returns the image background color
    • Imagick::getImageBlob - Returns the image sequence as a blob
    • Imagick::getImageBluePrimary - Returns the chromaticy blue primary point
    • Imagick::getImageBorderColor - Returns the image border color
    • Imagick::getImageChannelDepth - Gets the depth for a particular image channel
    • Imagick::getImageChannelDistortion - Compares image channels of an image to a reconstructed image
    • Imagick::getImageChannelDistortions - Gets channel distortions
    • Imagick::getImageChannelExtrema - Gets the extrema for one or more image channels
    • Imagick::getImageChannelKurtosis - The getImageChannelKurtosis purpose
    • Imagick::getImageChannelMean - Gets the mean and standard deviation
    • Imagick::getImageChannelRange - Gets channel range
    • Imagick::getImageChannelStatistics - Returns statistics for each channel in the image
    • Imagick::getImageClipMask - Gets image clip mask
    • Imagick::getImageColormapColor - Returns the color of the specified colormap index
    • Imagick::getImageColors - Gets the number of unique colors in the image
    • Imagick::getImageColorspace - Gets the image colorspace
    • Imagick::getImageCompose - Returns the composite operator associated with the image
    • Imagick::getImageCompression - Gets the current image's compression type
    • Imagick::getImageCompressionQuality - Gets the current image's compression quality
    • Imagick::getImageDelay - Gets the image delay
    • Imagick::getImageDepth - Gets the image depth
    • Imagick::getImageDispose - Gets the image disposal method
    • Imagick::getImageDistortion - Compares an image to a reconstructed image
    • Imagick::getImageExtrema - Gets the extrema for the image
    • Imagick::getImageFilename - Returns the filename of a particular image in a sequence
    • Imagick::getImageFormat - Returns the format of a particular image in a sequence
    • Imagick::getImageGamma - Gets the image gamma
    • Imagick::getImageGeometry - Gets the width and height as an associative array
    • Imagick::getImageGravity - Gets the image gravity
    • Imagick::getImageGreenPrimary - Returns the chromaticy green primary point
    • Imagick::getImageHeight - Returns the image height
    • Imagick::getImageHistogram - Gets the image histogram
    • Imagick::getImageIndex - Gets the index of the current active image
    • Imagick::getImageInterlaceScheme - Gets the image interlace scheme
    • Imagick::getImageInterpolateMethod - Returns the interpolation method
    • Imagick::getImageIterations - Gets the image iterations
    • Imagick::getImageLength - Returns the image length in bytes
    • Imagick::getImageMatte - Return if the image has a matte channel
    • Imagick::getImageMatteColor - Returns the image matte color
    • Imagick::getImageMimeType - Returns the image mime-type
    • Imagick::getImageOrientation - Gets the image orientation
    • Imagick::getImagePage - Returns the page geometry
    • Imagick::getImagePixelColor - Returns the color of the specified pixel
    • Imagick::getImageProfile - Returns the named image profile
    • Imagick::getImageProfiles - Returns the image profiles
    • Imagick::getImageProperties - Returns the image properties
    • Imagick::getImageProperty - Returns the named image property
    • Imagick::getImageRedPrimary - Returns the chromaticity red primary point
    • Imagick::getImageRegion - Extracts a region of the image
    • Imagick::getImageRenderingIntent - Gets the image rendering intent
    • Imagick::getImageResolution - 获取图像的x,y轴分辨率
    • Imagick::getImagesBlob - Returns all image sequences as a blob
    • Imagick::getImageScene - Gets the image scene
    • Imagick::getImageSignature - Generates an SHA-256 message digest
    • Imagick::getImageSize - Returns the image length in bytes
    • Imagick::getImageTicksPerSecond - Gets the image ticks-per-second
    • Imagick::getImageTotalInkDensity - Gets the image total ink density
    • Imagick::getImageType - Gets the potential image type
    • Imagick::getImageUnits - 获取图像的分辨率单位
    • Imagick::getImageVirtualPixelMethod - Returns the virtual pixel method
    • Imagick::getImageWhitePoint - Returns the chromaticity white point
    • Imagick::getImageWidth - Returns the image width
    • Imagick::getInterlaceScheme - Gets the object interlace scheme
    • Imagick::getIteratorIndex - Gets the index of the current active image
    • Imagick::getNumberImages - Returns the number of images in the object
    • Imagick::getOption - Returns a value associated with the specified key
    • Imagick::getPackageName - Returns the ImageMagick package name
    • Imagick::getPage - Returns the page geometry
    • Imagick::getPixelIterator - Returns a MagickPixelIterator
    • Imagick::getPixelRegionIterator - Get an ImagickPixelIterator for an image section
    • Imagick::getPointSize - Gets point size
    • Imagick::getQuantum - Returns the ImageMagick quantum range
    • Imagick::getQuantumDepth - Gets the quantum depth
    • Imagick::getQuantumRange - Returns the Imagick quantum range
    • Imagick::getRegistry - Get a StringRegistry entry
    • Imagick::getReleaseDate - Returns the ImageMagick release date
    • Imagick::getResource - Returns the specified resource's memory usage
    • Imagick::getResourceLimit - Returns the specified resource limit
    • Imagick::getSamplingFactors - Gets the horizontal and vertical sampling factor
    • Imagick::getSize - Returns the size associated with the Imagick object
    • Imagick::getSizeOffset - Returns the size offset
    • Imagick::getVersion - Returns the ImageMagick API version
    • Imagick::haldClutImage - Replaces colors in the image
    • Imagick::hasNextImage - Checks if the object has more images
    • Imagick::hasPreviousImage - Checks if the object has a previous image
    • Imagick::identifyFormat - Formats a string with image details
    • Imagick::identifyImage - Identifies an image and fetches attributes
    • Imagick::implodeImage - Creates a new image as a copy
    • Imagick::importImagePixels - Imports image pixels
    • Imagick::inverseFourierTransformImage - Implements the inverse discrete Fourier transform (DFT)
    • Imagick::labelImage - Adds a label to an image
    • Imagick::levelImage - Adjusts the levels of an image
    • Imagick::linearStretchImage - Stretches with saturation the image intensity
    • Imagick::liquidRescaleImage - Animates an image or images
    • Imagick::listRegistry - List all the registry settings
    • Imagick::magnifyImage - Scales an image proportionally 2x
    • Imagick::mapImage - Replaces the colors of an image with the closest color from a reference image
    • Imagick::matteFloodfillImage - Changes the transparency value of a color
    • Imagick::medianFilterImage - Applies a digital filter
    • Imagick::mergeImageLayers - Merges image layers
    • Imagick::minifyImage - Scales an image proportionally to half its size
    • Imagick::modulateImage - Control the brightness, saturation, and hue
    • Imagick::montageImage - Creates a composite image
    • Imagick::morphImages - Method morphs a set of images
    • Imagick::morphology - Applies a user supplied kernel to the image according to the given morphology method.
    • Imagick::mosaicImages - Forms a mosaic from images
    • Imagick::motionBlurImage - Simulates motion blur
    • Imagick::negateImage - Negates the colors in the reference image
    • Imagick::newImage - 创建一张图片
    • Imagick::newPseudoImage - Creates a new image
    • Imagick::nextImage - Moves to the next image
    • Imagick::normalizeImage - Enhances the contrast of a color image
    • Imagick::oilPaintImage - Simulates an oil painting
    • Imagick::opaquePaintImage - Changes the color value of any pixel that matches target
    • Imagick::optimizeImageLayers - Removes repeated portions of images to optimize
    • Imagick::orderedPosterizeImage - Performs an ordered dither
    • Imagick::paintFloodfillImage - Changes the color value of any pixel that matches target
    • Imagick::paintOpaqueImage - Change any pixel that matches color
    • Imagick::paintTransparentImage - Changes any pixel that matches color with the color defined by fill
    • Imagick::pingImage - Fetch basic attributes about the image
    • Imagick::pingImageBlob - Quickly fetch attributes
    • Imagick::pingImageFile - Get basic image attributes in a lightweight manner
    • Imagick::polaroidImage - Simulates a Polaroid picture
    • Imagick::posterizeImage - Reduces the image to a limited number of color level
    • Imagick::previewImages - Quickly pin-point appropriate parameters for image processing
    • Imagick::previousImage - Move to the previous image in the object
    • Imagick::profileImage - Adds or removes a profile from an image
    • Imagick::quantizeImage - Analyzes the colors within a reference image
    • Imagick::quantizeImages - Analyzes the colors within a sequence of images
    • Imagick::queryFontMetrics - Returns an array representing the font metrics
    • Imagick::queryFonts - Returns the configured fonts
    • Imagick::queryFormats - Returns formats supported by Imagick
    • Imagick::radialBlurImage - Radial blurs an image
    • Imagick::raiseImage - Creates a simulated 3d button-like effect
    • Imagick::randomThresholdImage - Creates a high-contrast, two-color image
    • Imagick::readImage - Reads image from filename
    • Imagick::readImageBlob - 从二进制字符串里读取图片
    • Imagick::readImageFile - Reads image from open filehandle
    • Imagick::readimages - Reads image from an array of filenames
    • Imagick::recolorImage - Recolors image
    • Imagick::reduceNoiseImage - Smooths the contours of an image
    • Imagick::remapImage - Remaps image colors
    • Imagick::removeImage - Removes an image from the image list
    • Imagick::removeImageProfile - Removes the named image profile and returns it
    • Imagick::render - Renders all preceding drawing commands
    • Imagick::resampleImage - Resample image to desired resolution
    • Imagick::resetImagePage - Reset image page
    • Imagick::resizeImage - Scales an image
    • Imagick::rollImage - Offsets an image
    • Imagick::rotateImage - Rotates an image
    • Imagick::rotationalBlurImage - Rotational blurs an image
    • Imagick::roundCorners - Rounds image corners
    • Imagick::sampleImage - Scales an image with pixel sampling
    • Imagick::scaleImage - Scales the size of an image
    • Imagick::segmentImage - Segments an image
    • Imagick::selectiveBlurImage - Selectively blur an image within a contrast threshold
    • Imagick::separateImageChannel - Separates a channel from the image
    • Imagick::sepiaToneImage - Sepia tones an image
    • Imagick::setBackgroundColor - Sets the object's default background color
    • Imagick::setColorspace - Set colorspace
    • Imagick::setCompression - Sets the object's default compression type
    • Imagick::setCompressionQuality - Sets the object's default compression quality
    • Imagick::setFilename - Sets the filename before you read or write the image
    • Imagick::setFirstIterator - Sets the Imagick iterator to the first image
    • Imagick::setFont - Sets font
    • Imagick::setFormat - Sets the format of the Imagick object
    • Imagick::setGravity - Sets the gravity
    • Imagick::setImage - Replaces image in the object
    • Imagick::setImageAlphaChannel - Sets image alpha channel
    • Imagick::setImageArtifact - Set image artifact
    • Imagick::setImageAttribute - Sets an image attribute
    • Imagick::setImageBackgroundColor - Sets the image background color
    • Imagick::setImageBias - Sets the image bias for any method that convolves an image
    • Imagick::setImageBiasQuantum - Sets the image bias
    • Imagick::setImageBluePrimary - Sets the image chromaticity blue primary point
    • Imagick::setImageBorderColor - Sets the image border color
    • Imagick::setImageChannelDepth - Sets the depth of a particular image channel
    • Imagick::setImageClipMask - Sets image clip mask
    • Imagick::setImageColormapColor - Sets the color of the specified colormap index
    • Imagick::setImageColorspace - Sets the image colorspace
    • Imagick::setImageCompose - Sets the image composite operator
    • Imagick::setImageCompression - 设置图片压缩的类型
    • Imagick::setImageCompressionQuality - 设置图片压缩的质量
    • Imagick::setImageDelay - Sets the image delay
    • Imagick::setImageDepth - Sets the image depth
    • Imagick::setImageDispose - Sets the image disposal method
    • Imagick::setImageExtent - Sets the image size
    • Imagick::setImageFilename - Sets the filename of a particular image
    • Imagick::setImageFormat - 为图片设置指定的格式
    • Imagick::setImageGamma - Sets the image gamma
    • Imagick::setImageGravity - Sets the image gravity
    • Imagick::setImageGreenPrimary - Sets the image chromaticity green primary point
    • Imagick::setImageIndex - Set the iterator position
    • Imagick::setImageInterlaceScheme - Sets the image compression
    • Imagick::setImageInterpolateMethod - Sets the image interpolate pixel method
    • Imagick::setImageIterations - Sets the image iterations
    • Imagick::setImageMatte - Sets the image matte channel
    • Imagick::setImageMatteColor - Sets the image matte color
    • Imagick::setImageOpacity - Sets the image opacity level
    • Imagick::setImageOrientation - Sets the image orientation
    • Imagick::setImagePage - Sets the page geometry of the image
    • Imagick::setImageProfile - Adds a named profile to the Imagick object
    • Imagick::setImageProperty - Sets an image property
    • Imagick::setImageRedPrimary - Sets the image chromaticity red primary point
    • Imagick::setImageRenderingIntent - Sets the image rendering intent
    • Imagick::setImageResolution - Sets the image resolution
    • Imagick::setImageScene - Sets the image scene
    • Imagick::setImageTicksPerSecond - Sets the image ticks-per-second
    • Imagick::setImageType - Sets the image type
    • Imagick::setImageUnits - Sets the image units of resolution
    • Imagick::setImageVirtualPixelMethod - Sets the image virtual pixel method
    • Imagick::setImageWhitePoint - Sets the image chromaticity white point
    • Imagick::setInterlaceScheme - Sets the image compression
    • Imagick::setIteratorIndex - Set the iterator position
    • Imagick::setLastIterator - Sets the Imagick iterator to the last image
    • Imagick::setOption - Set an option
    • Imagick::setPage - Sets the page geometry of the Imagick object
    • Imagick::setPointSize - Sets point size
    • Imagick::setProgressMonitor - Set a callback to be called during processing
    • Imagick::setRegistry - Sets the ImageMagick registry entry named key to value
    • Imagick::setResolution - Sets the image resolution
    • Imagick::setResourceLimit - Sets the limit for a particular resource
    • Imagick::setSamplingFactors - Sets the image sampling factors
    • Imagick::setSize - Sets the size of the Imagick object
    • Imagick::setSizeOffset - Sets the size and offset of the Imagick object
    • Imagick::setType - Sets the image type attribute
    • Imagick::shadeImage - Creates a 3D effect
    • Imagick::shadowImage - Simulates an image shadow
    • Imagick::sharpenImage - Sharpens an image
    • Imagick::shaveImage - Shaves pixels from the image edges
    • Imagick::shearImage - Creating a parallelogram
    • Imagick::sigmoidalContrastImage - Adjusts the contrast of an image
    • Imagick::sketchImage - Simulates a pencil sketch
    • Imagick::smushImages - Takes all images from the current image pointer to the end of the image list and smushs them
    • Imagick::solarizeImage - Applies a solarizing effect to the image
    • Imagick::sparseColorImage - Interpolates colors
    • Imagick::spliceImage - Splices a solid color into the image
    • Imagick::spreadImage - Randomly displaces each pixel in a block
    • Imagick::statisticImage - Modifies image using a statistics function
    • Imagick::steganoImage - Hides a digital watermark within the image
    • Imagick::stereoImage - Composites two images
    • Imagick::stripImage - 去掉图片的所有配置和设置
    • Imagick::subImageMatch - Searches for a subimage in the current image and returns a similarity image
    • Imagick::swirlImage - Swirls the pixels about the center of the image
    • Imagick::textureImage - Repeatedly tiles the texture image
    • Imagick::thresholdImage - Changes the value of individual pixels based on a threshold
    • Imagick::thumbnailImage - Changes the size of an image
    • Imagick::tintImage - Applies a color vector to each pixel in the image
    • Imagick::transformImage - Convenience method for setting crop size and the image geometry
    • Imagick::transformImageColorspace - Transforms an image to a new colorspace
    • Imagick::transparentPaintImage - Paints pixels transparent
    • Imagick::transposeImage - Creates a vertical mirror image
    • Imagick::transverseImage - Creates a horizontal mirror image
    • Imagick::trimImage - Remove edges from the image
    • Imagick::uniqueImageColors - Discards all but one of any pixel color
    • Imagick::unsharpMaskImage - Sharpens an image
    • Imagick::valid - Checks if the current item is valid
    • Imagick::vignetteImage - Adds vignette filter to the image
    • Imagick::waveImage - Applies wave filter to the image
    • Imagick::whiteThresholdImage - Force all pixels above the threshold into white
    • Imagick::writeImage - 把图片写入指定的文件
    • Imagick::writeImageFile - Writes an image to a filehandle
    • Imagick::writeImages - Writes an image or image sequence
    • Imagick::writeImagesFile - Writes frames to a filehandle
    • Imagick::__construct - The Imagick constructor
    • Imagick::__toString - Returns the image as a string
    • ImagickDraw::affine - Adjusts the current affine transformation matrix
    • ImagickDraw::annotation - Draws text on the image
    • ImagickDraw::arc - Draws an arc
    • ImagickDraw::bezier - Draws a bezier curve
    • ImagickDraw::circle - Draws a circle
    • ImagickDraw::clear - Clears the ImagickDraw
    • ImagickDraw::clone - Makes an exact copy of the specified ImagickDraw object
    • ImagickDraw::color - Draws color on image
    • ImagickDraw::comment - Adds a comment
    • ImagickDraw::composite - Composites an image onto the current image
    • ImagickDraw::destroy - Frees all associated resources
    • ImagickDraw::ellipse - Draws an ellipse on the image
    • ImagickDraw::getClipPath - Obtains the current clipping path ID
    • ImagickDraw::getClipRule - Returns the current polygon fill rule
    • ImagickDraw::getClipUnits - Returns the interpretation of clip path units
    • ImagickDraw::getFillColor - Returns the fill color
    • ImagickDraw::getFillOpacity - Returns the opacity used when drawing
    • ImagickDraw::getFillRule - Returns the fill rule
    • ImagickDraw::getFont - Returns the font
    • ImagickDraw::getFontFamily - Returns the font family
    • ImagickDraw::getFontSize - Returns the font pointsize
    • ImagickDraw::getFontStretch - Gets the font stretch to use when annotating with text
    • ImagickDraw::getFontStyle - Returns the font style
    • ImagickDraw::getFontWeight - Returns the font weight
    • ImagickDraw::getGravity - Returns the text placement gravity
    • ImagickDraw::getStrokeAntialias - Returns the current stroke antialias setting
    • ImagickDraw::getStrokeColor - Returns the color used for stroking object outlines
    • ImagickDraw::getStrokeDashArray - Returns an array representing the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::getStrokeDashOffset - Returns the offset into the dash pattern to start the dash
    • ImagickDraw::getStrokeLineCap - Returns the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::getStrokeLineJoin - Returns the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::getStrokeMiterLimit - Returns the stroke miter limit
    • ImagickDraw::getStrokeOpacity - Returns the opacity of stroked object outlines
    • ImagickDraw::getStrokeWidth - Returns the width of the stroke used to draw object outlines
    • ImagickDraw::getTextAlignment - Returns the text alignment
    • ImagickDraw::getTextAntialias - Returns the current text antialias setting
    • ImagickDraw::getTextDecoration - Returns the text decoration
    • ImagickDraw::getTextEncoding - Returns the code set used for text annotations
    • ImagickDraw::getTextInterlineSpacing - Gets the text interword spacing
    • ImagickDraw::getTextInterwordSpacing - Gets the text interword spacing
    • ImagickDraw::getTextKerning - Gets the text kerning
    • ImagickDraw::getTextUnderColor - Returns the text under color
    • ImagickDraw::getVectorGraphics - Returns a string containing vector graphics
    • ImagickDraw::line - Draws a line
    • ImagickDraw::matte - Paints on the image's opacity channel
    • ImagickDraw::pathClose - Adds a path element to the current path
    • ImagickDraw::pathCurveToAbsolute - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierRelative - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToRelative - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothAbsolute - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothRelative - Draws a cubic Bezier curve
    • ImagickDraw::pathEllipticArcAbsolute - Draws an elliptical arc
    • ImagickDraw::pathEllipticArcRelative - Draws an elliptical arc
    • ImagickDraw::pathFinish - Terminates the current path
    • ImagickDraw::pathLineToAbsolute - Draws a line path
    • ImagickDraw::pathLineToHorizontalAbsolute - Draws a horizontal line path
    • ImagickDraw::pathLineToHorizontalRelative - Draws a horizontal line
    • ImagickDraw::pathLineToRelative - Draws a line path
    • ImagickDraw::pathLineToVerticalAbsolute - Draws a vertical line
    • ImagickDraw::pathLineToVerticalRelative - Draws a vertical line path
    • ImagickDraw::pathMoveToAbsolute - Starts a new sub-path
    • ImagickDraw::pathMoveToRelative - Starts a new sub-path
    • ImagickDraw::pathStart - Declares the start of a path drawing list
    • ImagickDraw::point - Draws a point
    • ImagickDraw::polygon - Draws a polygon
    • ImagickDraw::polyline - Draws a polyline
    • ImagickDraw::pop - Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
    • ImagickDraw::popClipPath - Terminates a clip path definition
    • ImagickDraw::popDefs - Terminates a definition list
    • ImagickDraw::popPattern - Terminates a pattern definition
    • ImagickDraw::push - Clones the current ImagickDraw and pushes it to the stack
    • ImagickDraw::pushClipPath - Starts a clip path definition
    • ImagickDraw::pushDefs - Indicates that following commands create named elements for early processing
    • ImagickDraw::pushPattern - Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
    • ImagickDraw::rectangle - Draws a rectangle
    • ImagickDraw::render - Renders all preceding drawing commands onto the image
    • ImagickDraw::resetVectorGraphics - Resets the vector graphics
    • ImagickDraw::rotate - Applies the specified rotation to the current coordinate space
    • ImagickDraw::roundRectangle - Draws a rounded rectangle
    • ImagickDraw::scale - Adjusts the scaling factor
    • ImagickDraw::setClipPath - Associates a named clipping path with the image
    • ImagickDraw::setClipRule - Set the polygon fill rule to be used by the clipping path
    • ImagickDraw::setClipUnits - Sets the interpretation of clip path units
    • ImagickDraw::setFillAlpha - Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillColor - Sets the fill color to be used for drawing filled objects
    • ImagickDraw::setFillOpacity - Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillPatternURL - Sets the URL to use as a fill pattern for filling objects
    • ImagickDraw::setFillRule - Sets the fill rule to use while drawing polygons
    • ImagickDraw::setFont - Sets the fully-specified font to use when annotating with text
    • ImagickDraw::setFontFamily - Sets the font family to use when annotating with text
    • ImagickDraw::setFontSize - Sets the font pointsize to use when annotating with text
    • ImagickDraw::setFontStretch - Sets the font stretch to use when annotating with text
    • ImagickDraw::setFontStyle - Sets the font style to use when annotating with text
    • ImagickDraw::setFontWeight - Sets the font weight
    • ImagickDraw::setGravity - Sets the text placement gravity
    • ImagickDraw::setResolution - Sets the resolution
    • ImagickDraw::setStrokeAlpha - Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokeAntialias - Controls whether stroked outlines are antialiased
    • ImagickDraw::setStrokeColor - Sets the color used for stroking object outlines
    • ImagickDraw::setStrokeDashArray - Specifies the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::setStrokeDashOffset - Specifies the offset into the dash pattern to start the dash
    • ImagickDraw::setStrokeLineCap - Specifies the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::setStrokeLineJoin - Specifies the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::setStrokeMiterLimit - Specifies the miter limit
    • ImagickDraw::setStrokeOpacity - Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokePatternURL - Sets the pattern used for stroking object outlines
    • ImagickDraw::setStrokeWidth - Sets the width of the stroke used to draw object outlines
    • ImagickDraw::setTextAlignment - Specifies a text alignment
    • ImagickDraw::setTextAntialias - Controls whether text is antialiased
    • ImagickDraw::setTextDecoration - Specifies a decoration
    • ImagickDraw::setTextEncoding - Specifies the text code set
    • ImagickDraw::setTextInterlineSpacing - Sets the text interline spacing
    • ImagickDraw::setTextInterwordSpacing - Sets the text interword spacing
    • ImagickDraw::setTextKerning - Sets the text kerning
    • ImagickDraw::setTextUnderColor - Specifies the color of a background rectangle
    • ImagickDraw::setVectorGraphics - Sets the vector graphics
    • ImagickDraw::setViewbox - Sets the overall canvas size
    • ImagickDraw::skewX - Skews the current coordinate system in the horizontal direction
    • ImagickDraw::skewY - Skews the current coordinate system in the vertical direction
    • ImagickDraw::translate - Applies a translation to the current coordinate system
    • ImagickDraw::__construct - The ImagickDraw constructor
    • ImagickKernel::addKernel - Attach another kernel to a kernel list
    • ImagickKernel::addUnityKernel - Adds a Unity Kernel to the kernel list
    • ImagickKernel::fromBuiltIn - Create a kernel from a builtin in kernel
    • ImagickKernel::fromMatrix - Create a kernel from a 2d matrix of values
    • ImagickKernel::getMatrix - Get the 2d matrix of values used in this kernel
    • ImagickKernel::scale - Scales a kernel list by the given amount
    • ImagickKernel::separate - Separates a linked set of kernels and returns an array of ImagickKernels
    • ImagickPixel::clear - Clears resources associated with this object
    • ImagickPixel::destroy - Deallocates resources associated with this object
    • ImagickPixel::getColor - Returns the color
    • ImagickPixel::getColorAsString - Returns the color as a string
    • ImagickPixel::getColorCount - Returns the color count associated with this color
    • ImagickPixel::getColorQuantum - Returns the color of the pixel in an array as Quantum values
    • ImagickPixel::getColorValue - Gets the normalized value of the provided color channel
    • ImagickPixel::getColorValueQuantum - Gets the quantum value of a color in the ImagickPixel
    • ImagickPixel::getHSL - Returns the normalized HSL color of the ImagickPixel object
    • ImagickPixel::getIndex - Gets the colormap index of the pixel wand
    • ImagickPixel::isPixelSimilar - Check the distance between this color and another
    • ImagickPixel::isPixelSimilarQuantum - Returns whether two colors differ by less than the specified distance
    • ImagickPixel::isSimilar - Check the distance between this color and another
    • ImagickPixel::setColor - Sets the color
    • ImagickPixel::setColorCount - Sets the color count associated with this color
    • ImagickPixel::setColorValue - Sets the normalized value of one of the channels
    • ImagickPixel::setColorValueQuantum - Sets the quantum value of a color element of the ImagickPixel
    • ImagickPixel::setHSL - Sets the normalized HSL color
    • ImagickPixel::setIndex - Sets the colormap index of the pixel wand
    • ImagickPixel::__construct - The ImagickPixel constructor
    • ImagickPixelIterator::clear - Clear resources associated with a PixelIterator
    • ImagickPixelIterator::destroy - Deallocates resources associated with a PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow - Returns the current row of ImagickPixel objects
    • ImagickPixelIterator::getIteratorRow - Returns the current pixel iterator row
    • ImagickPixelIterator::getNextIteratorRow - Returns the next row of the pixel iterator
    • ImagickPixelIterator::getPreviousIteratorRow - Returns the previous row
    • ImagickPixelIterator::newPixelIterator - Returns a new pixel iterator
    • ImagickPixelIterator::newPixelRegionIterator - Returns a new pixel iterator
    • ImagickPixelIterator::resetIterator - Resets the pixel iterator
    • ImagickPixelIterator::setIteratorFirstRow - Sets the pixel iterator to the first pixel row
    • ImagickPixelIterator::setIteratorLastRow - Sets the pixel iterator to the last pixel row
    • ImagickPixelIterator::setIteratorRow - Set the pixel iterator row
    • ImagickPixelIterator::syncIterator - Syncs the pixel iterator
    • ImagickPixelIterator::__construct - The ImagickPixelIterator constructor
    • imap_8bit - Convert an 8bit string to a quoted-printable string
    • imap_alerts - Returns all IMAP alert messages that have occurred
    • imap_append - Append a string message to a specified mailbox
    • imap_base64 - Decode BASE64 encoded text
    • imap_binary - Convert an 8bit string to a base64 string
    • imap_body - Read the message body
    • imap_bodystruct - Read the structure of a specified body section of a specific message
    • imap_check - Check current mailbox
    • imap_clearflag_full - Clears flags on messages
    • imap_close - Close an IMAP stream
    • imap_create - 别名 imap_createmailbox
    • imap_createmailbox - Create a new mailbox
    • imap_delete - Mark a message for deletion from current mailbox
    • imap_deletemailbox - Delete a mailbox
    • imap_errors - Returns all of the IMAP errors that have occurred
    • imap_expunge - Delete all messages marked for deletion
    • imap_fetchbody - Fetch a particular section of the body of the message
    • imap_fetchheader - Returns header for a message
    • imap_fetchmime - Fetch MIME headers for a particular section of the message
    • imap_fetchstructure - Read the structure of a particular message
    • imap_fetchtext - 别名 imap_body
    • imap_fetch_overview - Read an overview of the information in the headers of the given message
    • imap_gc - Clears IMAP cache
    • imap_getacl - Gets the ACL for a given mailbox
    • imap_getmailboxes - Read the list of mailboxes, returning detailed information on each one
    • imap_getsubscribed - List all the subscribed mailboxes
    • imap_get_quota - Retrieve the quota level settings, and usage statics per mailbox
    • imap_get_quotaroot - Retrieve the quota settings per user
    • imap_header - 别名 imap_headerinfo
    • imap_headerinfo - Read the header of the message
    • imap_headers - Returns headers for all messages in a mailbox
    • imap_is_open - Check if the IMAP stream is still valid
    • imap_last_error - Gets the last IMAP error that occurred during this page request
    • imap_list - Read the list of mailboxes
    • imap_listmailbox - 别名 imap_list
    • imap_listscan - Returns the list of mailboxes that matches the given text
    • imap_listsubscribed - 别名 imap_lsub
    • imap_lsub - List all the subscribed mailboxes
    • imap_mail - Send an email message
    • imap_mailboxmsginfo - Get information about the current mailbox
    • imap_mail_compose - Create a MIME message based on given envelope and body sections
    • imap_mail_copy - Copy specified messages to a mailbox
    • imap_mail_move - Move specified messages to a mailbox
    • imap_mime_header_decode - Decode MIME header elements
    • imap_msgno - Gets the message sequence number for the given UID
    • imap_mutf7_to_utf8 - Decode a modified UTF-7 string to UTF-8
    • imap_num_msg - Gets the number of messages in the current mailbox
    • imap_num_recent - Gets the number of recent messages in current mailbox
    • imap_open - Open an IMAP stream to a mailbox
    • imap_ping - Check if the IMAP stream is still active
    • imap_qprint - Convert a quoted-printable string to an 8 bit string
    • imap_rename - 别名 imap_renamemailbox
    • imap_renamemailbox - Rename an old mailbox to new mailbox
    • imap_reopen - Reopen IMAP stream to new mailbox
    • imap_rfc822_parse_adrlist - Parses an address string
    • imap_rfc822_parse_headers - Parse mail headers from a string
    • imap_rfc822_write_address - Returns a properly formatted email address given the mailbox, host, and personal info
    • imap_savebody - Save a specific body section to a file
    • imap_scan - 别名 imap_listscan
    • imap_scanmailbox - 别名 imap_listscan
    • imap_search - This function returns an array of messages matching the given search criteria
    • imap_setacl - Sets the ACL for a given mailbox
    • imap_setflag_full - Sets flags on messages
    • imap_set_quota - Sets a quota for a given mailbox
    • imap_sort - Gets and sort messages
    • imap_status - Returns status information on a mailbox
    • imap_subscribe - Subscribe to a mailbox
    • imap_thread - Returns a tree of threaded message
    • imap_timeout - Set or fetch imap timeout
    • imap_uid - This function returns the UID for the given message sequence number
    • imap_undelete - Unmark the message which is marked deleted
    • imap_unsubscribe - Unsubscribe from a mailbox
    • imap_utf7_decode - Decodes a modified UTF-7 encoded string
    • imap_utf7_encode - Converts ISO-8859-1 string to modified UTF-7 text
    • imap_utf8 - Converts MIME-encoded text to UTF-8
    • imap_utf8_to_mutf7 - Encode a UTF-8 string to modified UTF-7
    • implode - 用字符串连接数组元素
    • inet_ntop - Converts a packed internet address to a human readable representation
    • inet_pton - Converts a human readable IP address to its packed in_addr representation
    • InfiniteIterator::next - Moves the inner Iterator forward or rewinds it
    • InfiniteIterator::__construct - Constructs an InfiniteIterator
    • inflate_add - Incrementally inflate encoded data
    • inflate_get_read_len - Get number of bytes read so far
    • inflate_get_status - Get decompression status
    • inflate_init - Initialize an incremental inflate context
    • ini_alter - 别名 ini_set
    • ini_get - 获取一个配置选项的值
    • ini_get_all - 获取所有配置选项
    • ini_parse_quantity - Get interpreted size from ini shorthand syntax
    • ini_restore - 恢复配置选项的值
    • ini_set - 为一个配置选项设置值
    • inotify_add_watch - 添加监听到已初始化的 inotify 实例
    • inotify_init - 初始化 inotify 实例
    • inotify_queue_len - 如果有待处理事件，返回大于零的数字
    • inotify_read - 从 inotify 实例读取事件
    • inotify_rm_watch - 移除 inotify 实例的监听
    • intdiv - 对除法结果取整
    • interface_exists - 检查接口是否已被定义
    • InternalIterator::current - 返回当前元素
    • InternalIterator::key - 返回当前元素的键
    • InternalIterator::next - 向前移动到下一个元素
    • InternalIterator::rewind - 迭代器返回到第一个元素
    • InternalIterator::valid - 检测当前位置是否有效
    • InternalIterator::__construct - 禁止直接实例化私有构造方法
    • IntlBreakIterator::createCharacterInstance - Create break iterator for boundaries of combining character sequences
    • IntlBreakIterator::createCodePointInstance - Create break iterator for boundaries of code points
    • IntlBreakIterator::createLineInstance - Create break iterator for logically possible line breaks
    • IntlBreakIterator::createSentenceInstance - Create break iterator for sentence breaks
    • IntlBreakIterator::createTitleInstance - Create break iterator for title-casing breaks
    • IntlBreakIterator::createWordInstance - Create break iterator for word breaks
    • IntlBreakIterator::current - Get index of current position
    • IntlBreakIterator::first - Set position to the first character in the text
    • IntlBreakIterator::following - Advance the iterator to the first boundary following specified offset
    • IntlBreakIterator::getErrorCode - Get last error code on the object
    • IntlBreakIterator::getErrorMessage - Get last error message on the object
    • IntlBreakIterator::getLocale - Get the locale associated with the object
    • IntlBreakIterator::getPartsIterator - Create iterator for navigating fragments between boundaries
    • IntlBreakIterator::getText - Get the text being scanned
    • IntlBreakIterator::isBoundary - Tell whether an offset is a boundary?s offset
    • IntlBreakIterator::last - Set the iterator position to index beyond the last character
    • IntlBreakIterator::next - Advance the iterator the next boundary
    • IntlBreakIterator::preceding - Set the iterator position to the first boundary before an offset
    • IntlBreakIterator::previous - Set the iterator position to the boundary immediately before the current
    • IntlBreakIterator::setText - Set the text being scanned
    • IntlBreakIterator::__construct - Private constructor for disallowing instantiation
    • IntlCalendar::add - Add a (signed) amount of time to a field
    • IntlCalendar::after - Whether this object?s time is after that of the passed object
    • IntlCalendar::before - Whether this object?s time is before that of the passed object
    • IntlCalendar::clear - Clear a field or all fields
    • IntlCalendar::createInstance - Create a new IntlCalendar
    • IntlCalendar::equals - Compare time of two IntlCalendar objects for equality
    • IntlCalendar::fieldDifference - Calculate difference between given time and this object?s time
    • IntlCalendar::fromDateTime - Create an IntlCalendar from a DateTime object or string
    • IntlCalendar::get - Get the value for a field
    • IntlCalendar::getActualMaximum - The maximum value for a field, considering the object?s current time
    • IntlCalendar::getActualMinimum - The minimum value for a field, considering the object?s current time
    • IntlCalendar::getAvailableLocales - Get array of locales for which there is data
    • IntlCalendar::getDayOfWeekType - Tell whether a day is a weekday, weekend or a day that has a transition between the two
    • IntlCalendar::getErrorCode - Get last error code on the object
    • IntlCalendar::getErrorMessage - Get last error message on the object
    • IntlCalendar::getFirstDayOfWeek - Get the first day of the week for the calendar?s locale
    • IntlCalendar::getGreatestMinimum - Get the largest local minimum value for a field
    • IntlCalendar::getKeywordValuesForLocale - Get set of locale keyword values
    • IntlCalendar::getLeastMaximum - Get the smallest local maximum for a field
    • IntlCalendar::getLocale - Get the locale associated with the object
    • IntlCalendar::getMaximum - Get the global maximum value for a field
    • IntlCalendar::getMinimalDaysInFirstWeek - Get minimal number of days the first week in a year or month can have
    • IntlCalendar::getMinimum - Get the global minimum value for a field
    • IntlCalendar::getNow - Get number representing the current time
    • IntlCalendar::getRepeatedWallTimeOption - Get behavior for handling repeating wall time
    • IntlCalendar::getSkippedWallTimeOption - Get behavior for handling skipped wall time
    • IntlCalendar::getTime - Get time currently represented by the object
    • IntlCalendar::getTimeZone - Get the object?s timezone
    • IntlCalendar::getType - Get the calendar type
    • IntlCalendar::getWeekendTransition - Get time of the day at which weekend begins or ends
    • IntlCalendar::inDaylightTime - Whether the object?s time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo - Whether another calendar is equal but for a different time
    • IntlCalendar::isLenient - Whether date/time interpretation is in lenient mode
    • IntlCalendar::isSet - Whether a field is set
    • IntlCalendar::isWeekend - Whether a certain date/time is in the weekend
    • IntlCalendar::roll - Add value to field without carrying into more significant fields
    • IntlCalendar::set - Set a time field or several common fields at once
    • IntlCalendar::setDate - Set a date fields
    • IntlCalendar::setDateTime - Set a date and time fields
    • IntlCalendar::setFirstDayOfWeek - Set the day on which the week is deemed to start
    • IntlCalendar::setLenient - Set whether date/time interpretation is to be lenient
    • IntlCalendar::setMinimalDaysInFirstWeek - Set minimal number of days the first week in a year or month can have
    • IntlCalendar::setRepeatedWallTimeOption - Set behavior for handling repeating wall times at negative timezone offset transitions
    • IntlCalendar::setSkippedWallTimeOption - Set behavior for handling skipped wall times at positive timezone offset transitions
    • IntlCalendar::setTime - Set the calendar time in milliseconds since the epoch
    • IntlCalendar::setTimeZone - Set the timezone used by this calendar
    • IntlCalendar::toDateTime - Convert an IntlCalendar into a DateTime object
    • IntlCalendar::__construct - Private constructor for disallowing instantiation
    • IntlChar::charAge - Get the "age" of the code point
    • IntlChar::charDigitValue - Get the decimal digit value of a decimal digit character
    • IntlChar::charDirection - Get bidirectional category value for a code point
    • IntlChar::charFromName - Find Unicode character by name and return its code point value
    • IntlChar::charMirror - Get the "mirror-image" character for a code point
    • IntlChar::charName - Retrieve the name of a Unicode character
    • IntlChar::charType - Get the general category value for a code point
    • IntlChar::chr - Return Unicode character by code point value
    • IntlChar::digit - Get the decimal digit value of a code point for a given radix
    • IntlChar::enumCharNames - Enumerate all assigned Unicode characters within a range
    • IntlChar::enumCharTypes - Enumerate all code points with their Unicode general categories
    • IntlChar::foldCase - Perform case folding on a code point
    • IntlChar::forDigit - Get character representation for a given digit and radix
    • IntlChar::getBidiPairedBracket - Get the paired bracket character for a code point
    • IntlChar::getBlockCode - Get the Unicode allocation block containing a code point
    • IntlChar::getCombiningClass - Get the combining class of a code point
    • IntlChar::getFC_NFKC_Closure - Get the FC_NFKC_Closure property for a code point
    • IntlChar::getIntPropertyMaxValue - Get the max value for a Unicode property
    • IntlChar::getIntPropertyMinValue - Get the min value for a Unicode property
    • IntlChar::getIntPropertyValue - Get the value for a Unicode property for a code point
    • IntlChar::getNumericValue - Get the numeric value for a Unicode code point
    • IntlChar::getPropertyEnum - Get the property constant value for a given property name
    • IntlChar::getPropertyName - Get the Unicode name for a property
    • IntlChar::getPropertyValueEnum - Get the property value for a given value name
    • IntlChar::getPropertyValueName - Get the Unicode name for a property value
    • IntlChar::getUnicodeVersion - Get the Unicode version
    • IntlChar::hasBinaryProperty - Check a binary Unicode property for a code point
    • IntlChar::isalnum - Check if code point is an alphanumeric character
    • IntlChar::isalpha - Check if code point is a letter character
    • IntlChar::isbase - Check if code point is a base character
    • IntlChar::isblank - Check if code point is a "blank" or "horizontal space" character
    • IntlChar::iscntrl - Check if code point is a control character
    • IntlChar::isdefined - Check whether the code point is defined
    • IntlChar::isdigit - Check if code point is a digit character
    • IntlChar::isgraph - Check if code point is a graphic character
    • IntlChar::isIDIgnorable - Check if code point is an ignorable character
    • IntlChar::isIDPart - Check if code point is permissible in an identifier
    • IntlChar::isIDStart - Check if code point is permissible as the first character in an identifier
    • IntlChar::isISOControl - Check if code point is an ISO control code
    • IntlChar::isJavaIDPart - Check if code point is permissible in a Java identifier
    • IntlChar::isJavaIDStart - Check if code point is permissible as the first character in a Java identifier
    • IntlChar::isJavaSpaceChar - Check if code point is a space character according to Java
    • IntlChar::islower - Check if code point is a lowercase letter
    • IntlChar::isMirrored - Check if code point has the Bidi_Mirrored property
    • IntlChar::isprint - Check if code point is a printable character
    • IntlChar::ispunct - Check if code point is punctuation character
    • IntlChar::isspace - Check if code point is a space character
    • IntlChar::istitle - Check if code point is a titlecase letter
    • IntlChar::isUAlphabetic - Check if code point has the Alphabetic Unicode property
    • IntlChar::isULowercase - Check if code point has the Lowercase Unicode property
    • IntlChar::isupper - Check if code point has the general category "Lu" (uppercase letter)
    • IntlChar::isUUppercase - Check if code point has the Uppercase Unicode property
    • IntlChar::isUWhiteSpace - Check if code point has the White_Space Unicode property
    • IntlChar::isWhitespace - Check if code point is a whitespace character according to ICU
    • IntlChar::isxdigit - Check if code point is a hexadecimal digit
    • IntlChar::ord - Return Unicode code point value of character
    • IntlChar::tolower - Make Unicode character lowercase
    • IntlChar::totitle - Make Unicode character titlecase
    • IntlChar::toupper - Make Unicode character uppercase
    • IntlCodePointBreakIterator::getLastCodePoint - Get last code point passed over after advancing or receding the iterator
    • IntlDateFormatter::create - Create a date formatter
    • IntlDateFormatter::format - Format the date/time value as a string
    • IntlDateFormatter::formatObject - Formats an object
    • IntlDateFormatter::getCalendar - Get the calendar type used for the IntlDateFormatter
    • IntlDateFormatter::getCalendarObject - Get copy of formatter?s calendar object
    • IntlDateFormatter::getDateType - Get the datetype used for the IntlDateFormatter
    • IntlDateFormatter::getErrorCode - Get the error code from last operation
    • IntlDateFormatter::getErrorMessage - Get the error text from the last operation
    • IntlDateFormatter::getLocale - Get the locale used by formatter
    • IntlDateFormatter::getPattern - Get the pattern used for the IntlDateFormatter
    • IntlDateFormatter::getTimeType - Get the timetype used for the IntlDateFormatter
    • IntlDateFormatter::getTimeZone - Get formatter?s timezone
    • IntlDateFormatter::getTimeZoneId - Get the timezone-id used for the IntlDateFormatter
    • IntlDateFormatter::isLenient - Get the lenient used for the IntlDateFormatter
    • IntlDateFormatter::localtime - Parse string to a field-based time value
    • IntlDateFormatter::parse - Parse string to a timestamp value
    • IntlDateFormatter::setCalendar - Sets the calendar type used by the formatter
    • IntlDateFormatter::setLenient - Set the leniency of the parser
    • IntlDateFormatter::setPattern - Set the pattern used for the IntlDateFormatter
    • IntlDateFormatter::setTimeZone - Sets formatter?s timezone
    • IntlDatePatternGenerator::create - Creates a new IntlDatePatternGenerator instance
    • IntlDatePatternGenerator::getBestPattern - Determines the most suitable date/time format
    • IntlGregorianCalendar::createFromDate - Create a new IntlGregorianCalendar instance from date
    • IntlGregorianCalendar::createFromDateTime - Create a new IntlGregorianCalendar instance from date and time
    • IntlGregorianCalendar::getGregorianChange - Get the Gregorian Calendar change date
    • IntlGregorianCalendar::isLeapYear - Determine if the given year is a leap year
    • IntlGregorianCalendar::setGregorianChange - Set the Gregorian Calendar the change date
    • IntlGregorianCalendar::__construct - Create the Gregorian Calendar class
    • IntlIterator::current - Get the current element
    • IntlIterator::key - Get the current key
    • IntlIterator::next - Move forward to the next element
    • IntlIterator::rewind - Rewind the iterator to the first element
    • IntlIterator::valid - Check if current position is valid
    • IntlPartsIterator::getBreakIterator - Get IntlBreakIterator backing this parts iterator
    • IntlRuleBasedBreakIterator::getBinaryRules - Get the binary form of compiled rules
    • IntlRuleBasedBreakIterator::getRules - Get the rule set used to create this object
    • IntlRuleBasedBreakIterator::getRuleStatus - Get the largest status value from the break rules that determined the current break position
    • IntlRuleBasedBreakIterator::getRuleStatusVec - Get the status values from the break rules that determined the current break position
    • IntlRuleBasedBreakIterator::__construct - Create iterator from ruleset
    • IntlTimeZone::countEquivalentIDs - Get the number of IDs in the equivalency group that includes the given ID
    • IntlTimeZone::createDefault - Create a new copy of the default timezone for this host
    • IntlTimeZone::createEnumeration - Get an enumeration over time zone IDs associated with the given country or offset
    • IntlTimeZone::createTimeZone - Create a timezone object for the given ID
    • IntlTimeZone::createTimeZoneIDEnumeration - Get an enumeration over system time zone IDs with the given filter conditions
    • IntlTimeZone::fromDateTimeZone - Create a timezone object from DateTimeZone
    • IntlTimeZone::getCanonicalID - Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
    • IntlTimeZone::getDisplayName - Get a name of this time zone suitable for presentation to the user
    • IntlTimeZone::getDSTSavings - Get the amount of time to be added to local standard time to get local wall clock time
    • IntlTimeZone::getEquivalentID - Get an ID in the equivalency group that includes the given ID
    • IntlTimeZone::getErrorCode - Get last error code on the object
    • IntlTimeZone::getErrorMessage - Get last error message on the object
    • IntlTimeZone::getGMT - Create GMT (UTC) timezone
    • IntlTimeZone::getID - Get timezone ID
    • IntlTimeZone::getIDForWindowsID - Translate a Windows timezone into a system timezone
    • IntlTimeZone::getOffset - Get the time zone raw and GMT offset for the given moment in time
    • IntlTimeZone::getRawOffset - Get the raw GMT offset (before taking daylight savings time into account
    • IntlTimeZone::getRegion - Get the region code associated with the given system time zone ID
    • IntlTimeZone::getTZDataVersion - Get the timezone data version currently used by ICU
    • IntlTimeZone::getUnknown - Get the "unknown" time zone
    • IntlTimeZone::getWindowsID - Translate a system timezone into a Windows timezone
    • IntlTimeZone::hasSameRules - Check if this zone has the same rules and offset as another zone
    • IntlTimeZone::toDateTimeZone - Convert to DateTimeZone object
    • IntlTimeZone::useDaylightTime - Check if this time zone uses daylight savings time
    • IntlTimeZone::__construct - Private constructor to disallow direct instantiation
    • intl_error_name - Get symbolic name for a given error code
    • intl_get_error_code - Get the last error code
    • intl_get_error_message - Get description of the last error
    • intl_is_failure - Check whether the given error code indicates failure
    • intval - 获取变量的整数值
    • in_array - 检查数组中是否存在某个值
    • ip2long - 将 IPV4 的字符串互联网协议转换成长整型数字
    • iptcembed - 嵌入二进制 IPTC 数据到 JPEG 图像中
    • iptcparse - 将二进制 IPTC 块解析为单个标签
    • isset - 检测变量是否已声明并且其值不为 null
    • is_a - 检查对象是否属于一个给定的类型或子类型。
    • is_array - 检测变量是否是数组
    • is_bool - 检测变量是否是布尔值
    • is_callable - 验证值是否可以在当前范围内作为函数调用。
    • is_countable - 验证变量内容是否为可数值
    • is_dir - 判断给定文件名是否是一个目录
    • is_double - 别名 is_float
    • is_executable - 判断给定文件名是否可执行
    • is_file - 判断给定文件名是否为一个正常的文件
    • is_finite - 判断浮点数是否是有效的有限值
    • is_float - 检测变量是否是浮点型
    • is_infinite - 判断浮点数是否为无限值
    • is_int - 检测变量是否是整数
    • is_integer - 别名 is_int
    • is_iterable - 验证变量的内容是否为可迭代值
    • is_link - 判断给定文件名是否为一个符号连接
    • is_long - 别名 is_int
    • is_nan - 判断浮点数是否是否为 NAN
    • is_null - 检测变量是否是 null
    • is_numeric - 检测变量是否是数字或数字字符串
    • is_object - 检测变量是否是对象
    • is_readable - 判断给定文件名是否可读
    • is_real - 别名 is_float
    • is_resource - 查找变量是否为资源
    • is_scalar - 查找变量是否是标量
    • is_soap_fault - Checks if a SOAP call has failed
    • is_string - 检测变量的类型是否是字符串
    • is_subclass_of - 检查对象是否继承或者实现（implement）此类
    • is_tainted - Checks whether a string is tainted
    • is_uploaded_file - 判断文件是否是通过 HTTP POST 上传的
    • is_writable - 判断给定的文件名是否可写
    • is_writeable - is_writable 的别名
    • Iterator::current - 返回当前元素
    • Iterator::key - 返回当前元素的键
    • Iterator::next - 向前移动到下一个元素
    • Iterator::rewind - 返回到迭代器的第一个元素
    • Iterator::valid - 检查当前位置是否有效
    • IteratorAggregate::getIterator - 获取一个外部迭代器
    • IteratorIterator::current - Get the current value
    • IteratorIterator::getInnerIterator - Get the inner iterator
    • IteratorIterator::key - Get the key of the current element
    • IteratorIterator::next - Forward to the next element
    • IteratorIterator::rewind - Rewind to the first element
    • IteratorIterator::valid - Checks if the current element is valid
    • IteratorIterator::__construct - Create an iterator from anything that is traversable
    • iterator_apply - 为迭代器中每个元素调用函数
    • iterator_count - 计算迭代器中元素的个数
    • iterator_to_array - 复制迭代器中的元素到数组
  • j
    • jddayofweek - 返回星期几
    • jdmonthname - 返回月份名称
    • jdtofrench - 从儒略日数转换为法国共和历
    • jdtogregorian - 将儒略日数转换为公历日期
    • jdtojewish - 将儒略日数转换为犹太历日期
    • jdtojulian - 将儒略日数转换为儒略历日期
    • jdtounix - 将儒略日数转换为 Unix 时间戳
    • jewishtojd - 将犹太历日期转换为儒略日数
    • join - 别名 implode
    • jpeg2wbmp - 将 JPEG 图像文件转换为 WBMP 图像文件
    • JsonSerializable::jsonSerialize - 指定需要被序列化成 JSON 的数据
    • json_decode - 对 JSON 格式的字符串进行解码
    • json_encode - 对变量进行 JSON 编码
    • json_last_error - 返回最后发生的错误
    • json_last_error_msg - 返回最后一次调用 json_encode() 或 json_decode() 时产生的错误信息
    • json_validate - 检查一个字符串是否包含有效的JSON
    • juliantojd - 儒略日期转为儒略日数
  • k
    • key - 从关联数组中取得键名
    • key_exists - 别名 array_key_exists
    • krsort - 对数组按照键名逆向排序
    • ksort - 对数组根据键名升序排序
  • l
    • lcfirst - 使字符串的第一个字符小写
    • lcg_value - 组合线性同余发生器
    • lchgrp - 修改符号链接的所有组
    • lchown - 修改符号链接的所有者
    • ldap_8859_to_t61 - Translate 8859 characters to t61 characters
    • ldap_add - Add entries to LDAP directory
    • ldap_add_ext - Add entries to LDAP directory
    • ldap_bind - 绑定 LDAP 目录
    • ldap_bind_ext - Bind to LDAP directory
    • ldap_close - 别名 ldap_unbind
    • ldap_compare - Compare value of attribute found in entry specified with DN
    • ldap_connect - Connect to an LDAP server
    • ldap_connect_wallet - Connect to an LDAP server
    • ldap_control_paged_result - Send LDAP pagination control
    • ldap_control_paged_result_response - Retrieve the LDAP pagination cookie
    • ldap_count_entries - Count the number of entries in a search
    • ldap_count_references - Counts the number of references in a search result
    • ldap_delete - Delete an entry from a directory
    • ldap_delete_ext - Delete an entry from a directory
    • ldap_dn2ufn - Convert DN to User Friendly Naming format
    • ldap_err2str - Convert LDAP error number into string error message
    • ldap_errno - Return the LDAP error number of the last LDAP command
    • ldap_error - Return the LDAP error message of the last LDAP command
    • ldap_escape - Escape a string for use in an LDAP filter or DN
    • ldap_exop - Performs an extended operation
    • ldap_exop_passwd - PASSWD extended operation helper
    • ldap_exop_refresh - Refresh extended operation helper
    • ldap_exop_sync - Performs an extended operation
    • ldap_exop_whoami - WHOAMI extended operation helper
    • ldap_explode_dn - Splits DN into its component parts
    • ldap_first_attribute - Return first attribute
    • ldap_first_entry - Return first result id
    • ldap_first_reference - Return first reference
    • ldap_free_result - Free result memory
    • ldap_get_attributes - Get attributes from a search result entry
    • ldap_get_dn - Get the DN of a result entry
    • ldap_get_entries - Get all result entries
    • ldap_get_option - Get the current value for given option
    • ldap_get_values - Get all values from a result entry
    • ldap_get_values_len - Get all binary values from a result entry
    • ldap_list - Single-level search
    • ldap_modify - 别名 ldap_mod_replace
    • ldap_modify_batch - Batch and execute modifications on an LDAP entry
    • ldap_mod_add - Add attribute values to current attributes
    • ldap_mod_add_ext - Add attribute values to current attributes
    • ldap_mod_del - Delete attribute values from current attributes
    • ldap_mod_del_ext - Delete attribute values from current attributes
    • ldap_mod_replace - Replace attribute values with new ones
    • ldap_mod_replace_ext - Replace attribute values with new ones
    • ldap_next_attribute - Get the next attribute in result
    • ldap_next_entry - Get next result entry
    • ldap_next_reference - Get next reference
    • ldap_parse_exop - Parse result object from an LDAP extended operation
    • ldap_parse_reference - Extract information from reference entry
    • ldap_parse_result - Extract information from result
    • ldap_read - Read an entry
    • ldap_rename - Modify the name of an entry
    • ldap_rename_ext - Modify the name of an entry
    • ldap_sasl_bind - Bind to LDAP directory using SASL
    • ldap_search - Search LDAP tree
    • ldap_set_option - Set the value of the given option
    • ldap_set_rebind_proc - Set a callback function to do re-binds on referral chasing
    • ldap_sort - Sort LDAP result entries on the client side
    • ldap_start_tls - Start TLS
    • ldap_t61_to_8859 - Translate t61 characters to 8859 characters
    • ldap_unbind - Unbind from LDAP directory
    • levenshtein - 计算两个字符串之间的 Levenshtein 距离
    • libxml_clear_errors - Clear libxml error buffer
    • libxml_disable_entity_loader - Disable the ability to load external entities
    • libxml_get_errors - Retrieve array of errors
    • libxml_get_external_entity_loader - Get the current external entity loader
    • libxml_get_last_error - Retrieve last error from libxml
    • libxml_set_external_entity_loader - Changes the default external entity loader
    • libxml_set_streams_context - Set the streams context for the next libxml document load or write
    • libxml_use_internal_errors - Disable libxml errors and allow user to fetch error information as needed
    • LimitIterator::current - Get current element
    • LimitIterator::getPosition - Return the current position
    • LimitIterator::key - Get current key
    • LimitIterator::next - Move the iterator forward
    • LimitIterator::rewind - Rewind the iterator to the specified starting offset
    • LimitIterator::seek - Seek to the given position
    • LimitIterator::valid - Check whether the current element is valid
    • LimitIterator::__construct - Construct a LimitIterator
    • link - 建立一个硬连接
    • linkinfo - 获取一个连接的信息
    • list - 把数组中的值赋给一组变量
    • Locale::acceptFromHttp - Tries to find out best available locale based on HTTP "Accept-Language" header
    • Locale::canonicalize - Canonicalize the locale string
    • Locale::composeLocale - Returns a correctly ordered and delimited locale ID
    • Locale::filterMatches - Checks if a language tag filter matches with locale
    • Locale::getAllVariants - Gets the variants for the input locale
    • Locale::getDefault - Gets the default locale value from the INTL global 'default_locale'
    • Locale::getDisplayLanguage - Returns an appropriately localized display name for language of the inputlocale
    • Locale::getDisplayName - Returns an appropriately localized display name for the input locale
    • Locale::getDisplayRegion - Returns an appropriately localized display name for region of the input locale
    • Locale::getDisplayScript - Returns an appropriately localized display name for script of the input locale
    • Locale::getDisplayVariant - Returns an appropriately localized display name for variants of the input locale
    • Locale::getKeywords - Gets the keywords for the input locale
    • Locale::getPrimaryLanguage - Gets the primary language for the input locale
    • Locale::getRegion - Gets the region for the input locale
    • Locale::getScript - Gets the script for the input locale
    • Locale::lookup - Searches the language tag list for the best match to the language
    • Locale::parseLocale - Returns a key-value array of locale ID subtag elements
    • Locale::setDefault - Sets the default runtime locale
    • localeconv - Get numeric formatting information
    • localtime - 取得本地时间
    • log - 自然对数
    • log1p - 返回 log(1 + number)，甚至当 number 的值接近零也能计算出准确结果
    • log10 - 以 10 为底的对数
    • long2ip - 将长整型转化为字符串形式带点的互联网标准格式地址（IPV4）
    • lstat - 给出一个文件或符号连接的信息
    • ltrim - 删除字符串开头的空白字符（或其他字符）
    • Lua::assign - 将一个php变量赋值给Lua
    • Lua::call - 调用Lua函数
    • Lua::eval - 将字符串当做Lua代码执行
    • Lua::getVersion - 获取Lua版本
    • Lua::include - 解析Lua脚本文件
    • Lua::registerCallback - 向Lua中注册php函数
    • Lua::__construct - Lua 构造方法
    • LuaClosure::__invoke - 调用 luaclosure
    • LuaSandbox::callFunction - Call a function in a Lua global variable
    • LuaSandbox::disableProfiler - Disable the profiler
    • LuaSandbox::enableProfiler - Enable the profiler.
    • LuaSandbox::getCPUUsage - Fetch the current CPU time usage of the Lua environment
    • LuaSandbox::getMemoryUsage - Fetch the current memory usage of the Lua environment
    • LuaSandbox::getPeakMemoryUsage - Fetch the peak memory usage of the Lua environment
    • LuaSandbox::getProfilerFunctionReport - Fetch profiler data
    • LuaSandbox::getVersionInfo - Return the versions of LuaSandbox and Lua
    • LuaSandbox::loadBinary - Load a precompiled binary chunk into the Lua environment
    • LuaSandbox::loadString - Load Lua code into the Lua environment
    • LuaSandbox::pauseUsageTimer - Pause the CPU usage timer
    • LuaSandbox::registerLibrary - Register a set of PHP functions as a Lua library
    • LuaSandbox::setCPULimit - Set the CPU time limit for the Lua environment
    • LuaSandbox::setMemoryLimit - Set the memory limit for the Lua environment
    • LuaSandbox::unpauseUsageTimer - Unpause the timer paused by LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction - Wrap a PHP callable in a LuaSandboxFunction
    • LuaSandboxFunction::call - Call a Lua function
    • LuaSandboxFunction::dump - Dump the function as a binary blob
    • LuaSandboxFunction::__construct - Unused
    • lzf_compress - LZF compression
    • lzf_decompress - LZF decompression
    • lzf_optimized_for - Determines what LZF extension was optimized for
  • m
    • mail - 发送邮件
    • mailparse_determine_best_xfer_encoding - Gets the best way of encoding
    • mailparse_msg_create - Create a mime mail resource
    • mailparse_msg_extract_part - Extracts/decodes a message section
    • mailparse_msg_extract_part_file - Extracts/decodes a message section
    • mailparse_msg_extract_whole_part_file - Extracts a message section including headers without decoding the transfer encoding
    • mailparse_msg_free - Frees a MIME resource
    • mailparse_msg_get_part - Returns a handle on a given section in a mimemessage
    • mailparse_msg_get_part_data - Returns an associative array of info about the message
    • mailparse_msg_get_structure - Returns an array of mime section names in the supplied message
    • mailparse_msg_parse - Incrementally parse data into buffer
    • mailparse_msg_parse_file - Parses a file
    • mailparse_rfc822_parse_addresses - Parse RFC 822 compliant addresses
    • mailparse_stream_encode - Streams data from source file pointer, apply encoding and write to destfp
    • mailparse_uudecode_all - Scans the data from fp and extract each embedded uuencoded file
    • max - 找出最大值
    • mb_check_encoding - 检查字符串在指定的编码里是否有效
    • mb_chr - 按 Unicode 码位值返回字符
    • mb_convert_case - 对字符串进行大小写转换
    • mb_convert_encoding - 转换字符串，从一个字符编码到另一个字符编码
    • mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
    • mb_convert_variables - 转换一个或多个变量的字符编码
    • mb_decode_mimeheader - 解码 MIME 头字段中的字符串
    • mb_decode_numericentity - 根据 HTML 数字字符串解码成字符
    • mb_detect_encoding - 检测字符的编码
    • mb_detect_order - 设置/获取 字符编码的检测顺序
    • mb_encode_mimeheader - 为 MIME 头编码字符串
    • mb_encode_numericentity - Encode character to HTML numeric string reference
    • mb_encoding_aliases - Get aliases of a known encoding type
    • mb_ereg - Regular expression match with multibyte support
    • mb_eregi - Regular expression match ignoring case with multibyte support
    • mb_eregi_replace - Replace regular expression with multibyte support ignoring case
    • mb_ereg_match - Regular expression match for multibyte string
    • mb_ereg_replace - Replace regular expression with multibyte support
    • mb_ereg_replace_callback - Perform a regular expression search and replace with multibyte support using a callback
    • mb_ereg_search - Multibyte regular expression match for predefined multibyte string
    • mb_ereg_search_getpos - Returns start point for next regular expression match
    • mb_ereg_search_getregs - Retrieve the result from the last multibyte regular expression match
    • mb_ereg_search_init - Setup string and regular expression for a multibyte regular expression match
    • mb_ereg_search_pos - Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string
    • mb_ereg_search_regs - Returns the matched part of a multibyte regular expression
    • mb_ereg_search_setpos - Set start point of next regular expression match
    • mb_get_info - 获取 mbstring 的内部设置
    • mb_http_input - 检测 HTTP 输入字符编码
    • mb_http_output - 设置/获取 HTTP 输出字符编码
    • mb_internal_encoding - 设置/获取内部字符编码
    • mb_language - 设置/获取当前的语言
    • mb_list_encodings - 返回所有支持编码的数组
    • mb_ord - 获取字符的 Unicode 码位值
    • mb_output_handler - 在输出缓冲中转换字符编码的回调函数
    • mb_parse_str - 解析 GET/POST/COOKIE 数据并设置全局变量
    • mb_preferred_mime_name - 获取 MIME 字符串
    • mb_regex_encoding - Set/Get character encoding for multibyte regex
    • mb_regex_set_options - Set/Get the default options for mbregex functions
    • mb_scrub - Replace ill-formed byte sequences with the substitute character
    • mb_send_mail - 发送编码过的邮件
    • mb_split - 使用正则表达式分割多字节字符串
    • mb_strcut - 获取字符的一部分
    • mb_strimwidth - 获取按指定宽度截断的字符串
    • mb_stripos - 大小写不敏感地查找字符串在另一个字符串中首次出现的位置
    • mb_stristr - 大小写不敏感地查找字符串在另一个字符串里的首次出现
    • mb_strlen - 获取字符串的长度
    • mb_strpos - 查找字符串在另一个字符串中首次出现的位置
    • mb_strrchr - 查找指定字符在另一个字符串中最后一次的出现
    • mb_strrichr - 大小写不敏感地查找指定字符在另一个字符串中最后一次的出现
    • mb_strripos - 大小写不敏感地在字符串中查找一个字符串最后出现的位置
    • mb_strrpos - 查找字符串在一个字符串中最后出现的位置
    • mb_strstr - 查找字符串在另一个字符串里的首次出现
    • mb_strtolower - 使字符串小写
    • mb_strtoupper - 使字符串大写
    • mb_strwidth - 返回字符串的宽度
    • mb_str_pad - Pad a multibyte string to a certain length with another multibyte string
    • mb_str_split - 指定多字节字符串，返回其字符数组
    • mb_substitute_character - 设置/获取替代字符
    • mb_substr - 获取部分字符串
    • mb_substr_count - 统计字符串出现的次数
    • mcrypt_create_iv - 从随机源创建初始向量
    • mcrypt_decrypt - 使用给定参数解密密文
    • mcrypt_encrypt - 使用给定参数加密明文
    • mcrypt_enc_get_algorithms_name - 返回打开的算法名称
    • mcrypt_enc_get_block_size - 返回打开的算法的分组大小
    • mcrypt_enc_get_iv_size - 返回打开的算法的初始向量大小
    • mcrypt_enc_get_key_size - 返回打开的模式所能支持的最长密钥
    • mcrypt_enc_get_modes_name - 返回打开的模式的名称
    • mcrypt_enc_get_supported_key_sizes - 以数组方式返回打开的算法所支持的密钥长度
    • mcrypt_enc_is_block_algorithm - 检测打开模式的算法是否为分组算法
    • mcrypt_enc_is_block_algorithm_mode - 检测打开的模式是否支持分组加密
    • mcrypt_enc_is_block_mode - 检测打开的模式是否以分组方式输出
    • mcrypt_enc_self_test - 在打开的模块上进行自检
    • mcrypt_generic - 加密数据
    • mcrypt_generic_deinit - 对加密模块进行清理工作
    • mcrypt_generic_init - 初始化加密所需的缓冲区
    • mcrypt_get_block_size - 获得加密算法的分组大小
    • mcrypt_get_cipher_name - 获取加密算法名称
    • mcrypt_get_iv_size - 返回指定算法/模式组合的初始向量大小
    • mcrypt_get_key_size - 获取指定加密算法的密钥大小
    • mcrypt_list_algorithms - 获取支持的加密算法
    • mcrypt_list_modes - 获取所支持的模式
    • mcrypt_module_close - 关闭加密模块
    • mcrypt_module_get_algo_block_size - 返回指定算法的分组大小
    • mcrypt_module_get_algo_key_size - 获取打开模式所支持的最大密钥大小
    • mcrypt_module_get_supported_key_sizes - 以数组形式返回打开的算法所支持的密钥大小
    • mcrypt_module_is_block_algorithm - 检测指定算法是否为分组加密算法
    • mcrypt_module_is_block_algorithm_mode - 返回指定模块是否是分组加密模式
    • mcrypt_module_is_block_mode - 检测指定模式是否以分组方式输出
    • mcrypt_module_open - 打开算法和模式对应的模块
    • mcrypt_module_self_test - 在指定模块上执行自检
    • md5 - 计算字符串的 MD5 散列值
    • md5_file - 计算指定文件的 MD5 散列值
    • mdecrypt_generic - 解密数据
    • Memcache::add - 增加一个条目到缓存服务器
    • Memcache::addServer - 向连接池中添加一个memcache服务器
    • Memcache::close - 关闭memcache连接
    • Memcache::connect - 打开一个memcached服务端连接
    • Memcache::decrement - 减小元素的值
    • Memcache::delete - 从服务端删除一个元素
    • Memcache::flush - 清洗（删除）已经存储的所有的元素
    • Memcache::get - 从服务端检回一个元素
    • Memcache::getExtendedStats - 缓存服务器池中所有服务器统计信息
    • Memcache::getServerStatus - 用于获取一个服务器的在线/离线状态
    • Memcache::getStats - 获取服务器统计信息
    • Memcache::getVersion - 返回服务器版本信息
    • Memcache::increment - 增加一个元素的值
    • Memcache::pconnect - 打开一个到服务器的持久化连接
    • Memcache::replace - 替换已经存在的元素的值
    • Memcache::set - 存储数据到服务器
    • Memcache::setCompressThreshold - 开启大值自动压缩
    • Memcache::setServerParams - 运行时修改服务器参数和状态
    • Memcached::add - 向新 key 添加元素
    • Memcached::addByKey - 在特定服务器上向新 key 添加元素
    • Memcached::addServer - 向服务器池增加服务器
    • Memcached::addServers - 向服务器池中增加多台服务器
    • Memcached::append - 向已存在元素追加数据
    • Memcached::appendByKey - 向指定服务器上已存在元素追加数据
    • Memcached::cas - 比较并交换值
    • Memcached::casByKey - 在指定服务器上比较并交换值
    • Memcached::decrement - 减小数值元素的值
    • Memcached::decrementByKey - Decrement numeric item's value, stored on a specific server
    • Memcached::delete - 删除元素
    • Memcached::deleteByKey - 从指定的服务器删除元素
    • Memcached::deleteMulti - Delete multiple items
    • Memcached::deleteMultiByKey - Delete multiple items from a specific server
    • Memcached::fetch - 读取下一个结果
    • Memcached::fetchAll - 读取所有剩余结果
    • Memcached::flush - 作废缓存中的所有元素
    • Memcached::get - 检索元素
    • Memcached::getAllKeys - Gets the keys stored on all the servers
    • Memcached::getByKey - 从特定的服务器检索元素
    • Memcached::getDelayed - 请求多个元素
    • Memcached::getDelayedByKey - 从指定的服务器上请求多个元素
    • Memcached::getMulti - 检索多个元素
    • Memcached::getMultiByKey - 从特定服务器检索多个元素
    • Memcached::getOption - 获取 Memcached 的选项值
    • Memcached::getResultCode - 返回最后一次操作的结果代码
    • Memcached::getResultMessage - 返回最后一次操作的结果描述消息
    • Memcached::getServerByKey - 获取一个 key 所映射的服务器信息
    • Memcached::getServerList - 获取服务器池中的服务器列表
    • Memcached::getStats - 获取服务器池的统计信息
    • Memcached::getVersion - 获取服务器池中所有服务器的版本信息
    • Memcached::increment - 增加数值元素的值
    • Memcached::incrementByKey - Increment numeric item's value, stored on a specific server
    • Memcached::isPersistent - Check if a persitent connection to memcache is being used
    • Memcached::isPristine - Check if the instance was recently created
    • Memcached::prepend - 向一个已存在的元素前面追加数据
    • Memcached::prependByKey - 在指定服务器上追加数据到已存在的元素
    • Memcached::quit - 关闭所有打开的链接
    • Memcached::replace - 替换已存在 key 下的元素
    • Memcached::replaceByKey - 在指定服务器上，替换已存在 key 下的元素
    • Memcached::resetServerList - Clears all servers from the server list
    • Memcached::set - 存储一个元素
    • Memcached::setByKey - 将元素存储到指定的服务器上
    • Memcached::setMulti - 存储多个元素
    • Memcached::setMultiByKey - 在指定服务器存储多个元素
    • Memcached::setOption - 设置一个 memcached 选项
    • Memcached::setOptions - Set Memcached options
    • Memcached::setSaslAuthData - Set the credentials to use for authentication
    • Memcached::touch - Set a new expiration on an item
    • Memcached::touchByKey - Set a new expiration on an item on a specific server
    • Memcached::__construct - 创建 Memcached 实例
    • memcache_debug - 打开/关闭调试输出
    • memory_get_peak_usage - 返回分配给 PHP 内存的峰值
    • memory_get_usage - 返回分配给 PHP 的内存量
    • memory_reset_peak_usage - Reset the peak memory usage
    • MessageFormatter::create - Constructs a new Message Formatter
    • MessageFormatter::format - Format the message
    • MessageFormatter::formatMessage - Quick format message
    • MessageFormatter::getErrorCode - Get the error code from last operation
    • MessageFormatter::getErrorMessage - Get the error text from the last operation
    • MessageFormatter::getLocale - Get the locale for which the formatter was created
    • MessageFormatter::getPattern - Get the pattern used by the formatter
    • MessageFormatter::parse - Parse input string according to pattern
    • MessageFormatter::parseMessage - Quick parse input string
    • MessageFormatter::setPattern - Set the pattern used by the formatter
    • metaphone - Calculate the metaphone key of a string
    • method_exists - 检查类的方法是否存在
    • mhash - Computes hash
    • mhash_count - Gets the highest available hash ID
    • mhash_get_block_size - Gets the block size of the specified hash
    • mhash_get_hash_name - Gets the name of the specified hash
    • mhash_keygen_s2k - Generates a key
    • microtime - 返回当前 Unix 时间戳和微秒数
    • mime_content_type - 检测文件的 MIME 类型
    • min - 找出最小值
    • mkdir - 新建目录
    • mktime - 取得一个日期的 Unix 时间戳
    • money_format - 将数字格式化成货币字符串
    • MongoDB\BSON\Binary::getData - Returns the Binary's data
    • MongoDB\BSON\Binary::getType - Returns the Binary's type
    • MongoDB\BSON\Binary::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Binary::serialize - Serialize a Binary
    • MongoDB\BSON\Binary::unserialize - Unserialize a Binary
    • MongoDB\BSON\Binary::__construct - Construct a new Binary
    • MongoDB\BSON\Binary::__toString - Returns the Binary's data
    • MongoDB\BSON\BinaryInterface::getData - Returns the BinaryInterface's data
    • MongoDB\BSON\BinaryInterface::getType - Returns the BinaryInterface's type
    • MongoDB\BSON\BinaryInterface::__toString - Returns the BinaryInterface's data
    • MongoDB\BSON\DBPointer::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\DBPointer::serialize - Serialize a DBPointer
    • MongoDB\BSON\DBPointer::unserialize - Unserialize a DBPointer
    • MongoDB\BSON\DBPointer::__construct - Construct a new DBPointer (unused)
    • MongoDB\BSON\DBPointer::__toString - Returns an empty string
    • MongoDB\BSON\Decimal128::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Decimal128::serialize - Serialize a Decimal128
    • MongoDB\BSON\Decimal128::unserialize - Unserialize a Decimal128
    • MongoDB\BSON\Decimal128::__construct - Construct a new Decimal128
    • MongoDB\BSON\Decimal128::__toString - Returns the string representation of this Decimal128
    • MongoDB\BSON\Decimal128Interface::__toString - Returns the string representation of this Decimal128Interface
    • MongoDB\BSON\Document::fromBSON - Construct a new document instance from a BSON string
    • MongoDB\BSON\Document::fromJSON - Construct a new document instance from a JSON string
    • MongoDB\BSON\Document::fromPHP - Construct a new document instance from PHP data
    • MongoDB\BSON\Document::get - Returns the value of a key in the document
    • MongoDB\BSON\Document::getIterator - Returns an iterator for the BSON document
    • MongoDB\BSON\Document::has - Returns whether a key is present in the document
    • MongoDB\BSON\Document::offsetExists - Returns whether a key is present in the document
    • MongoDB\BSON\Document::offsetGet - Returns the value of a key in the document
    • MongoDB\BSON\Document::offsetSet - Implementation of ArrayAccess
    • MongoDB\BSON\Document::offsetUnset - Implementation of ArrayAccess
    • MongoDB\BSON\Document::serialize - Serialize a Document
    • MongoDB\BSON\Document::toCanonicalExtendedJSON - Returns the Canonical Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::toPHP - Returns the PHP representation of the BSON document
    • MongoDB\BSON\Document::toRelaxedExtendedJSON - Returns the Relaxed Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::unserialize - Unserialize a BSON document
    • MongoDB\BSON\Document::__construct - Construct a new BSON document (unused)
    • MongoDB\BSON\Document::__toString - Returns the string representation of this BSON Document
    • MongoDB\BSON\fromJSON - Returns the BSON representation of a JSON value
    • MongoDB\BSON\fromPHP - Returns the BSON representation of a PHP value
    • MongoDB\BSON\Int64::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Int64::serialize - Serialize an Int64
    • MongoDB\BSON\Int64::unserialize - Unserialize an Int64
    • MongoDB\BSON\Int64::__construct - Construct a new Int64
    • MongoDB\BSON\Int64::__toString - Returns the string representation of this Int64
    • MongoDB\BSON\Iterator::current - Returns the current element
    • MongoDB\BSON\Iterator::key - Returns the key of the current element
    • MongoDB\BSON\Iterator::next - Advances the iterator to next element
    • MongoDB\BSON\Iterator::rewind - Rewinds the Iterator to the first element
    • MongoDB\BSON\Iterator::valid - Checks if current position is valid
    • MongoDB\BSON\Iterator::__construct - Construct a new BSON iterator (unused)
    • MongoDB\BSON\Javascript::getCode - Returns the Javascript's code
    • MongoDB\BSON\Javascript::getScope - Returns the Javascript's scope document
    • MongoDB\BSON\Javascript::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Javascript::serialize - Serialize a Javascript
    • MongoDB\BSON\Javascript::unserialize - Unserialize a Javascript
    • MongoDB\BSON\Javascript::__construct - Construct a new Javascript
    • MongoDB\BSON\Javascript::__toString - Returns the Javascript's code
    • MongoDB\BSON\JavascriptInterface::getCode - Returns the JavascriptInterface's code
    • MongoDB\BSON\JavascriptInterface::getScope - Returns the JavascriptInterface's scope document
    • MongoDB\BSON\JavascriptInterface::__toString - Returns the JavascriptInterface's code
    • MongoDB\BSON\MaxKey::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\MaxKey::serialize - Serialize a MaxKey
    • MongoDB\BSON\MaxKey::unserialize - Unserialize a MaxKey
    • MongoDB\BSON\MaxKey::__construct - Construct a new MaxKey
    • MongoDB\BSON\MinKey::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\MinKey::serialize - Serialize a MinKey
    • MongoDB\BSON\MinKey::unserialize - Unserialize a MinKey
    • MongoDB\BSON\MinKey::__construct - Construct a new MinKey
    • MongoDB\BSON\ObjectId::getTimestamp - Returns the timestamp component of this ObjectId
    • MongoDB\BSON\ObjectId::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\ObjectId::serialize - Serialize an ObjectId
    • MongoDB\BSON\ObjectId::unserialize - Unserialize an ObjectId
    • MongoDB\BSON\ObjectId::__construct - Construct a new ObjectId
    • MongoDB\BSON\ObjectId::__toString - Returns the hexidecimal representation of this ObjectId
    • MongoDB\BSON\ObjectIdInterface::getTimestamp - Returns the timestamp component of this ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::__toString - Returns the hexidecimal representation of this ObjectIdInterface
    • MongoDB\BSON\PackedArray::fromPHP - Construct a new BSON array instance from PHP data
    • MongoDB\BSON\PackedArray::get - Returns the value of an index in the array
    • MongoDB\BSON\PackedArray::getIterator - Returns an iterator for the BSON array
    • MongoDB\BSON\PackedArray::has - Returns whether a index is present in the array
    • MongoDB\BSON\PackedArray::offsetExists - Returns whether a index is present in the array
    • MongoDB\BSON\PackedArray::offsetGet - Returns the value of an index in the array
    • MongoDB\BSON\PackedArray::offsetSet - Implementation of ArrayAccess
    • MongoDB\BSON\PackedArray::offsetUnset - Implementation of ArrayAccess
    • MongoDB\BSON\PackedArray::serialize - Serialize a BSON array
    • MongoDB\BSON\PackedArray::toPHP - Returns the PHP representation of the BSON array
    • MongoDB\BSON\PackedArray::unserialize - Unserialize a BSON array
    • MongoDB\BSON\PackedArray::__construct - Construct a new BSON array (unused)
    • MongoDB\BSON\PackedArray::__toString - Returns the string representation of this BSON array
    • MongoDB\BSON\Persistable::bsonSerialize - Provides an array or document to serialize as BSON
    • MongoDB\BSON\Regex::getFlags - Returns the Regex's flags
    • MongoDB\BSON\Regex::getPattern - Returns the Regex's pattern
    • MongoDB\BSON\Regex::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Regex::serialize - Serialize a Regex
    • MongoDB\BSON\Regex::unserialize - Unserialize a Regex
    • MongoDB\BSON\Regex::__construct - Construct a new Regex
    • MongoDB\BSON\Regex::__toString - Returns the string representation of this Regex
    • MongoDB\BSON\RegexInterface::getFlags - Returns the RegexInterface's flags
    • MongoDB\BSON\RegexInterface::getPattern - Returns the RegexInterface's pattern
    • MongoDB\BSON\RegexInterface::__toString - Returns the string representation of this RegexInterface
    • MongoDB\BSON\Serializable::bsonSerialize - Provides an array or document to serialize as BSON
    • MongoDB\BSON\Symbol::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Symbol::serialize - Serialize a Symbol
    • MongoDB\BSON\Symbol::unserialize - Unserialize a Symbol
    • MongoDB\BSON\Symbol::__construct - Construct a new Symbol (unused)
    • MongoDB\BSON\Symbol::__toString - Returns the Symbol as a string
    • MongoDB\BSON\Timestamp::getIncrement - Returns the increment component of this Timestamp
    • MongoDB\BSON\Timestamp::getTimestamp - Returns the timestamp component of this Timestamp
    • MongoDB\BSON\Timestamp::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Timestamp::serialize - Serialize a Timestamp
    • MongoDB\BSON\Timestamp::unserialize - Unserialize a Timestamp
    • MongoDB\BSON\Timestamp::__construct - Construct a new Timestamp
    • MongoDB\BSON\Timestamp::__toString - Returns the string representation of this Timestamp
    • MongoDB\BSON\TimestampInterface::getIncrement - Returns the increment component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::getTimestamp - Returns the timestamp component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::__toString - Returns the string representation of this TimestampInterface
    • MongoDB\BSON\toCanonicalExtendedJSON - Returns the Canonical Extended JSON representation of a BSON value
    • MongoDB\BSON\toJSON - Returns the Legacy Extended JSON representation of a BSON value
    • MongoDB\BSON\toPHP - Returns the PHP representation of a BSON value
    • MongoDB\BSON\toRelaxedExtendedJSON - Returns the Relaxed Extended JSON representation of a BSON value
    • MongoDB\BSON\Undefined::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Undefined::serialize - Serialize a Undefined
    • MongoDB\BSON\Undefined::unserialize - Unserialize a Undefined
    • MongoDB\BSON\Undefined::__construct - Construct a new Undefined (unused)
    • MongoDB\BSON\Undefined::__toString - Returns an empty string
    • MongoDB\BSON\Unserializable::bsonUnserialize - Constructs the object from a BSON array or document
    • MongoDB\BSON\UTCDateTime::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\UTCDateTime::serialize - Serialize a UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime - Returns the DateTime representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTimeImmutable - Returns the DateTimeImmutable representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::unserialize - Unserialize a UTCDateTime
    • MongoDB\BSON\UTCDateTime::__construct - Construct a new UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString - Returns the string representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTimeInterface::toDateTime - Returns the DateTime representation of this UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::__toString - Returns the string representation of this UTCDateTimeInterface
    • MongoDB\Driver\BulkWrite::count - Count number of write operations in the bulk
    • MongoDB\Driver\BulkWrite::delete - Add a delete operation to the bulk
    • MongoDB\Driver\BulkWrite::insert - Add an insert operation to the bulk
    • MongoDB\Driver\BulkWrite::update - Add an update operation to the bulk
    • MongoDB\Driver\BulkWrite::__construct - Create a new BulkWrite
    • MongoDB\Driver\ClientEncryption::addKeyAltName - Adds an alternate name to a key document
    • MongoDB\Driver\ClientEncryption::createDataKey - Creates a key document
    • MongoDB\Driver\ClientEncryption::decrypt - Decrypt a value
    • MongoDB\Driver\ClientEncryption::deleteKey - Deletes a key document
    • MongoDB\Driver\ClientEncryption::encrypt - Encrypt a value
    • MongoDB\Driver\ClientEncryption::encryptExpression - Encrypts a match or aggregate expression
    • MongoDB\Driver\ClientEncryption::getKey - Gets a key document
    • MongoDB\Driver\ClientEncryption::getKeyByAltName - Gets a key document by an alternate name
    • MongoDB\Driver\ClientEncryption::getKeys - Gets all key documents
    • MongoDB\Driver\ClientEncryption::removeKeyAltName - Removes an alternate name from a key document
    • MongoDB\Driver\ClientEncryption::rewrapManyDataKey - Rewraps data keys
    • MongoDB\Driver\ClientEncryption::__construct - Create a new ClientEncryption object
    • MongoDB\Driver\Command::__construct - Create a new Command
    • MongoDB\Driver\Cursor::current - Returns the current element
    • MongoDB\Driver\Cursor::getId - Returns the ID for this cursor
    • MongoDB\Driver\Cursor::getServer - Returns the server associated with this cursor
    • MongoDB\Driver\Cursor::isDead - Checks if the cursor is exhausted or may have additional results
    • MongoDB\Driver\Cursor::key - Returns the current result's index within the cursor
    • MongoDB\Driver\Cursor::next - Advances the cursor to the next result
    • MongoDB\Driver\Cursor::rewind - Rewind the cursor to the first result
    • MongoDB\Driver\Cursor::setTypeMap - Sets a type map to use for BSON unserialization
    • MongoDB\Driver\Cursor::toArray - Returns an array containing all results for this cursor
    • MongoDB\Driver\Cursor::valid - Checks if the current position in the cursor is valid
    • MongoDB\Driver\Cursor::__construct - Create a new Cursor (not used)
    • MongoDB\Driver\CursorId::serialize - Serialize a CursorId
    • MongoDB\Driver\CursorId::unserialize - Unserialize a CursorId
    • MongoDB\Driver\CursorId::__construct - Create a new CursorId (not used)
    • MongoDB\Driver\CursorId::__toString - String representation of the cursor ID
    • MongoDB\Driver\CursorInterface::getId - Returns the ID for this cursor
    • MongoDB\Driver\CursorInterface::getServer - Returns the server associated with this cursor
    • MongoDB\Driver\CursorInterface::isDead - Checks if the cursor may have additional results
    • MongoDB\Driver\CursorInterface::setTypeMap - Sets a type map to use for BSON unserialization
    • MongoDB\Driver\CursorInterface::toArray - Returns an array containing all results for this cursor
    • MongoDB\Driver\Exception\CommandException::getResultDocument - Returns the result document for the failed command
    • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel - Returns whether an error label is associated with an exception
    • MongoDB\Driver\Exception\WriteException::getWriteResult - Returns the WriteResult for the failed write operation
    • MongoDB\Driver\Manager::addSubscriber - Registers a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::createClientEncryption - Create a new ClientEncryption object
    • MongoDB\Driver\Manager::executeBulkWrite - Execute one or more write operations
    • MongoDB\Driver\Manager::executeCommand - Execute a database command
    • MongoDB\Driver\Manager::executeQuery - Execute a database query
    • MongoDB\Driver\Manager::executeReadCommand - Execute a database command that reads
    • MongoDB\Driver\Manager::executeReadWriteCommand - Execute a database command that reads and writes
    • MongoDB\Driver\Manager::executeWriteCommand - Execute a database command that writes
    • MongoDB\Driver\Manager::getEncryptedFieldsMap - Return the encryptedFieldsMap auto encryption option for the Manager
    • MongoDB\Driver\Manager::getReadConcern - Return the ReadConcern for the Manager
    • MongoDB\Driver\Manager::getReadPreference - Return the ReadPreference for the Manager
    • MongoDB\Driver\Manager::getServers - Return the servers to which this manager is connected
    • MongoDB\Driver\Manager::getWriteConcern - Return the WriteConcern for the Manager
    • MongoDB\Driver\Manager::removeSubscriber - Unregisters a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::selectServer - Select a server matching a read preference
    • MongoDB\Driver\Manager::startSession - Start a new client session for use with this client
    • MongoDB\Driver\Manager::__construct - Create new MongoDB Manager
    • MongoDB\Driver\Monitoring\addSubscriber - Registers a monitoring event subscriber globally
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDatabaseName - Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros - Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getError - Returns the Exception associated with the failed command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply - Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand - Returns the command document
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName - Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed - Notification method for a failed command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted - Notification method for a started command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded - Notification method for a successful command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDatabaseName - Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros - Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply - Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\LogSubscriber::log - Notification method for a log message
    • MongoDB\Driver\Monitoring\removeSubscriber - Unregisters a monitoring event subscriber globally
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged - Notification method for a server description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed - Notification method for closing a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed - Notification method for a failed server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted - Notification method for a started server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded - Notification method for a successful server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening - Notification method for opening a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged - Notification method for a topology description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed - Notification method for closing the topology
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening - Notification method for opening the topology
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription - Returns the new description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription - Returns the previous description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros - Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError - Returns the Exception associated with the failed heartbeat
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros - Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply - Returns the heartbeat reply document
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription - Returns the new description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription - Returns the previous description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Query::__construct - Create a new Query
    • MongoDB\Driver\ReadConcern::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadConcern::getLevel - Returns the ReadConcern's "level" option
    • MongoDB\Driver\ReadConcern::isDefault - Checks if this is the default read concern
    • MongoDB\Driver\ReadConcern::serialize - Serialize a ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize - Unserialize a ReadConcern
    • MongoDB\Driver\ReadConcern::__construct - Create a new ReadConcern
    • MongoDB\Driver\ReadPreference::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::getHedge - Returns the ReadPreference's "hedge" option
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds - Returns the ReadPreference's "maxStalenessSeconds" option
    • MongoDB\Driver\ReadPreference::getMode - Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getModeString - Returns the ReadPreference's "mode" option as a string
    • MongoDB\Driver\ReadPreference::getTagSets - Returns the ReadPreference's "tagSets" option
    • MongoDB\Driver\ReadPreference::serialize - Serialize a ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize - Unserialize a ReadPreference
    • MongoDB\Driver\ReadPreference::__construct - Create a new ReadPreference
    • MongoDB\Driver\Server::executeBulkWrite - Execute one or more write operations on this server
    • MongoDB\Driver\Server::executeCommand - Execute a database command on this server
    • MongoDB\Driver\Server::executeQuery - Execute a database query on this server
    • MongoDB\Driver\Server::executeReadCommand - Execute a database command that reads on this server
    • MongoDB\Driver\Server::executeReadWriteCommand - Execute a database command that reads and writes on this server
    • MongoDB\Driver\Server::executeWriteCommand - Execute a database command that writes on this server
    • MongoDB\Driver\Server::getHost - Returns the hostname of this server
    • MongoDB\Driver\Server::getInfo - Returns an array of information describing this server
    • MongoDB\Driver\Server::getLatency - Returns the latency of this server in milliseconds
    • MongoDB\Driver\Server::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Server::getServerDescription - Returns a ServerDescription for this server
    • MongoDB\Driver\Server::getTags - Returns an array of tags describing this server in a replica set
    • MongoDB\Driver\Server::getType - Returns an integer denoting the type of this server
    • MongoDB\Driver\Server::isArbiter - Checks if this server is an arbiter member of a replica set
    • MongoDB\Driver\Server::isHidden - Checks if this server is a hidden member of a replica set
    • MongoDB\Driver\Server::isPassive - Checks if this server is a passive member of a replica set
    • MongoDB\Driver\Server::isPrimary - Checks if this server is a primary member of a replica set
    • MongoDB\Driver\Server::isSecondary - Checks if this server is a secondary member of a replica set
    • MongoDB\Driver\Server::__construct - Create a new Server (not used)
    • MongoDB\Driver\ServerApi::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ServerApi::serialize - Serialize a ServerApi
    • MongoDB\Driver\ServerApi::unserialize - Unserialize a ServerApi
    • MongoDB\Driver\ServerApi::__construct - Create a new ServerApi instance
    • MongoDB\Driver\ServerDescription::getHelloResponse - Returns the server's most recent "hello" response
    • MongoDB\Driver\ServerDescription::getHost - Returns the hostname of this server
    • MongoDB\Driver\ServerDescription::getLastUpdateTime - Returns the server's last update time in microseconds
    • MongoDB\Driver\ServerDescription::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\ServerDescription::getRoundTripTime - Returns the server's round trip time in milliseconds
    • MongoDB\Driver\ServerDescription::getType - Returns a string denoting the type of this server
    • MongoDB\Driver\Session::abortTransaction - Aborts a transaction
    • MongoDB\Driver\Session::advanceClusterTime - Advances the cluster time for this session
    • MongoDB\Driver\Session::advanceOperationTime - Advances the operation time for this session
    • MongoDB\Driver\Session::commitTransaction - Commits a transaction
    • MongoDB\Driver\Session::endSession - Terminates a session
    • MongoDB\Driver\Session::getClusterTime - Returns the cluster time for this session
    • MongoDB\Driver\Session::getLogicalSessionId - Returns the logical session ID for this session
    • MongoDB\Driver\Session::getOperationTime - Returns the operation time for this session
    • MongoDB\Driver\Session::getServer - Returns the server to which this session is pinned
    • MongoDB\Driver\Session::getTransactionOptions - Returns options for the currently running transaction
    • MongoDB\Driver\Session::getTransactionState - Returns the current transaction state for this session
    • MongoDB\Driver\Session::isDirty - Returns whether the session has been marked as dirty
    • MongoDB\Driver\Session::isInTransaction - Returns whether a multi-document transaction is in progress
    • MongoDB\Driver\Session::startTransaction - Starts a transaction
    • MongoDB\Driver\Session::__construct - Create a new Session (not used)
    • MongoDB\Driver\TopologyDescription::getServers - Returns the servers in the topology
    • MongoDB\Driver\TopologyDescription::getType - Returns a string denoting the type of this topology
    • MongoDB\Driver\TopologyDescription::hasReadableServer - Returns whether the topology has a readable server
    • MongoDB\Driver\TopologyDescription::hasWritableServer - Returns whether the topology has a writable server
    • MongoDB\Driver\WriteConcern::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\WriteConcern::getJournal - Returns the WriteConcern's "journal" option
    • MongoDB\Driver\WriteConcern::getW - Returns the WriteConcern's "w" option
    • MongoDB\Driver\WriteConcern::getWtimeout - Returns the WriteConcern's "wtimeout" option
    • MongoDB\Driver\WriteConcern::isDefault - Checks if this is the default write concern
    • MongoDB\Driver\WriteConcern::serialize - Serialize a WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize - Unserialize a WriteConcern
    • MongoDB\Driver\WriteConcern::__construct - Create a new WriteConcern
    • MongoDB\Driver\WriteConcernError::getCode - Returns the WriteConcernError's error code
    • MongoDB\Driver\WriteConcernError::getInfo - Returns metadata document for the WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage - Returns the WriteConcernError's error message
    • MongoDB\Driver\WriteError::getCode - Returns the WriteError's error code
    • MongoDB\Driver\WriteError::getIndex - Returns the index of the write operation corresponding to this WriteError
    • MongoDB\Driver\WriteError::getInfo - Returns metadata document for the WriteError
    • MongoDB\Driver\WriteError::getMessage - Returns the WriteError's error message
    • MongoDB\Driver\WriteResult::getDeletedCount - Returns the number of documents deleted
    • MongoDB\Driver\WriteResult::getInsertedCount - Returns the number of documents inserted (excluding upserts)
    • MongoDB\Driver\WriteResult::getMatchedCount - Returns the number of documents selected for update
    • MongoDB\Driver\WriteResult::getModifiedCount - Returns the number of existing documents updated
    • MongoDB\Driver\WriteResult::getServer - Returns the server associated with this write result
    • MongoDB\Driver\WriteResult::getUpsertedCount - Returns the number of documents inserted by an upsert
    • MongoDB\Driver\WriteResult::getUpsertedIds - Returns an array of identifiers for upserted documents
    • MongoDB\Driver\WriteResult::getWriteConcernError - Returns any write concern error that occurred
    • MongoDB\Driver\WriteResult::getWriteErrors - Returns any write errors that occurred
    • MongoDB\Driver\WriteResult::isAcknowledged - Returns whether the write was acknowledged
    • move_uploaded_file - 将上传的文件移动到新位置
    • mqseries_back - MQSeries MQBACK
    • mqseries_begin - MQseries MQBEGIN
    • mqseries_close - MQSeries MQCLOSE
    • mqseries_cmit - MQSeries MQCMIT
    • mqseries_conn - MQSeries MQCONN
    • mqseries_connx - MQSeries MQCONNX
    • mqseries_disc - MQSeries MQDISC
    • mqseries_get - MQSeries MQGET
    • mqseries_inq - MQSeries MQINQ
    • mqseries_open - MQSeries MQOPEN
    • mqseries_put - MQSeries MQPUT
    • mqseries_put1 - MQSeries MQPUT1
    • mqseries_set - MQSeries MQSET
    • mqseries_strerror - Returns the error message corresponding to a result code (MQRC)
    • msg_get_queue - Create or attach to a message queue
    • msg_queue_exists - Check whether a message queue exists
    • msg_receive - Receive a message from a message queue
    • msg_remove_queue - Destroy a message queue
    • msg_send - Send a message to a message queue
    • msg_set_queue - Set information in the message queue data structure
    • msg_stat_queue - Returns information from the message queue data structure
    • mt_getrandmax - 显示随机数的最大可能值
    • mt_rand - 通过梅森旋转（Mersenne Twister）随机数生成器生成随机值
    • mt_srand - 播下一个更好的随机数发生器种子
    • MultipleIterator::attachIterator - Attaches iterator information
    • MultipleIterator::containsIterator - Checks if an iterator is attached
    • MultipleIterator::countIterators - Gets the number of attached iterator instances
    • MultipleIterator::current - Gets the registered iterator instances
    • MultipleIterator::detachIterator - Detaches an iterator
    • MultipleIterator::getFlags - Gets the flag information
    • MultipleIterator::key - Gets the registered iterator instances
    • MultipleIterator::next - Moves all attached iterator instances forward
    • MultipleIterator::rewind - Rewinds all attached iterator instances
    • MultipleIterator::setFlags - Sets flags
    • MultipleIterator::valid - Checks the validity of sub iterators
    • MultipleIterator::__construct - Constructs a new MultipleIterator
    • mysqli::$affected_rows - Gets the number of affected rows in a previous MySQL operation
    • mysqli::$client_info - 获取 MySQL 客户端信息
    • mysqli::$client_version - 作为整数返回 MySQL 客户端的版本
    • mysqli::$connect_errno - Returns the error code from last connect call
    • mysqli::$connect_error - Returns a description of the last connection error
    • mysqli::$errno - 返回最近函数调用的错误代码
    • mysqli::$error - Returns a string description of the last error
    • mysqli::$error_list - Returns a list of errors from the last command executed
    • mysqli::$field_count - Returns the number of columns for the most recent query
    • mysqli::$host_info - 返回表述使用的连接类型的字符串
    • mysqli::$info - 返回最近执行的 SQL 语句的信息
    • mysqli::$insert_id - 返回上次查询为 AUTO_INCREMENT 列生成的值
    • mysqli::$protocol_version - 返回 MySQL 协议使用的版本号
    • mysqli::$server_info - 返回 MySQL 服务器的版本号
    • mysqli::$server_version - 作为一个整数返回MySQL服务器的版本
    • mysqli::$sqlstate - 返回上一次 MySQL 操作的 SQLSTATE 错误
    • mysqli::$thread_id - 返回当前连接的线程 ID
    • mysqli::$warning_count - Returns the number of warnings from the last query for the given link
    • mysqli::autocommit - 打开或关闭本次数据库连接的自动命令提交事务模式
    • mysqli::begin_transaction - Starts a transaction
    • mysqli::change_user - Changes the user of the specified database connection
    • mysqli::character_set_name - 返回当前数据库连接的字符编码
    • mysqli::close - 关闭先前打开的数据库连接
    • mysqli::commit - 提交当前事务
    • mysqli::debug - Performs debugging operations
    • mysqli::dump_debug_info - 将调试信息输出到日志
    • mysqli::escape_string - 别名 mysqli_real_escape_string
    • mysqli::execute_query - Prepares, binds parameters, and executes SQL statement
    • mysqli::get_charset - Returns a character set object
    • mysqli::get_connection_stats - 返回客户端连接的统计数据
    • mysqli::get_warnings - Get result of SHOW WARNINGS
    • mysqli::init - 初始化 MySQLi 并返回用于 mysqli_real_connect() 的对象
    • mysqli::kill - 让服务器杀死一个 MySQL 线程
    • mysqli::more_results - 检查批量查询中是否还有查询结果
    • mysqli::multi_query - 在数据库上执行一个或多个查询
    • mysqli::next_result - 为读取 multi_query 执行之后的下一个结果集做准备
    • mysqli::options - 设置选项
    • mysqli::ping - ping 一个连接，或者如果连接处于断开状态，重新连接
    • mysqli::poll - 轮询连接
    • mysqli::prepare - 预处理执行 SQL
    • mysqli::query - 对数据库执行查询
    • mysqli::real_connect - 建立一个 MySQL 服务器连接
    • mysqli::real_escape_string - 根据当前连接的字符集，对于 SQL 语句中的特殊字符进行转义
    • mysqli::real_query - 执行一个mysql查询
    • mysqli::reap_async_query - 获取异步查询的结果
    • mysqli::refresh - 刷新
    • mysqli::release_savepoint - 从当前事务的保存点中移除一个命名保存点
    • mysqli::rollback - 回滚当前事务
    • mysqli::savepoint - 在当前事务中设置命名保存点
    • mysqli::select_db - 选择用于数据库查询的默认数据库
    • mysqli::set_charset - 设置客户端字符集
    • mysqli::set_opt - 别名 mysqli_options
    • mysqli::ssl_set - 用于使用 SSL 建立安全连接
    • mysqli::stat - 获取当前系统状态信息
    • mysqli::stmt_init - 初始化语句并返回用于 mysqli_stmt_prepare（调用）的对象
    • mysqli::store_result - 传输上次查询的结果集
    • mysqli::thread_safe - 返回是否线程安全
    • mysqli::use_result - Initiate a result set retrieval
    • mysqli::__construct - Open a new connection to the MySQL server
    • mysqli_connect - 别名 mysqli::__construct
    • mysqli_driver::$report_mode - Sets mysqli error reporting mode
    • mysqli_driver::embedded_server_end - Stop embedded server
    • mysqli_driver::embedded_server_start - Initialize and start embedded server
    • mysqli_execute - 别名 mysqli_stmt_execute
    • mysqli_get_client_stats - 返回客户端进程统计信息
    • mysqli_get_links_stats - 返回打开和缓存的链接相关信息
    • mysqli_report - 别名 mysqli_driver->report_mode
    • mysqli_result::$current_field - Get current field offset of a result pointer
    • mysqli_result::$field_count - Gets the number of fields in the result set
    • mysqli_result::$lengths - Returns the lengths of the columns of the current row in the result set
    • mysqli_result::$num_rows - Gets the number of rows in the result set
    • mysqli_result::data_seek - Adjusts the result pointer to an arbitrary row in the result
    • mysqli_result::fetch_all - Fetch all result rows as an associative array, a numeric array, or both
    • mysqli_result::fetch_array - Fetch the next row of a result set as an associative, a numeric array, or both
    • mysqli_result::fetch_assoc - Fetch the next row of a result set as an associative array
    • mysqli_result::fetch_column - Fetch a single column from the next row of a result set
    • mysqli_result::fetch_field - Returns the next field in the result set
    • mysqli_result::fetch_fields - Returns an array of objects representing the fields in a result set
    • mysqli_result::fetch_field_direct - Fetch meta-data for a single field
    • mysqli_result::fetch_object - Fetch the next row of a result set as an object
    • mysqli_result::fetch_row - Fetch the next row of a result set as an enumerated array
    • mysqli_result::field_seek - Set result pointer to a specified field offset
    • mysqli_result::free - Frees the memory associated with a result
    • mysqli_result::getIterator - Retrieve an external iterator
    • mysqli_result::__construct - Constructs a mysqli_result object
    • mysqli_sql_exception::getSqlState - Returns the SQLSTATE error code
    • mysqli_stmt::$affected_rows - Returns the total number of rows changed, deleted, inserted, or matched by the last statement executed
    • mysqli_stmt::$errno - Returns the error code for the most recent statement call
    • mysqli_stmt::$error - Returns a string description for last statement error
    • mysqli_stmt::$error_list - Returns a list of errors from the last statement executed
    • mysqli_stmt::$field_count - Returns the number of columns in the given statement
    • mysqli_stmt::$insert_id - Get the ID generated from the previous INSERT operation
    • mysqli_stmt::$num_rows - Returns the number of rows fetched from the server
    • mysqli_stmt::$param_count - Returns the number of parameters for the given statement
    • mysqli_stmt::$sqlstate - Returns SQLSTATE error from previous statement operation
    • mysqli_stmt::attr_get - Used to get the current value of a statement attribute
    • mysqli_stmt::attr_set - Used to modify the behavior of a prepared statement
    • mysqli_stmt::bind_param - Binds variables to a prepared statement as parameters
    • mysqli_stmt::bind_result - Binds variables to a prepared statement for result storage
    • mysqli_stmt::close - Closes a prepared statement
    • mysqli_stmt::data_seek - Adjusts the result pointer to an arbitrary row in the buffered result
    • mysqli_stmt::execute - Executes a prepared statement
    • mysqli_stmt::fetch - Fetch results from a prepared statement into the bound variables
    • mysqli_stmt::free_result - Frees stored result memory for the given statement handle
    • mysqli_stmt::get_result - Gets a result set from a prepared statement as a mysqli_result object
    • mysqli_stmt::get_warnings - Get result of SHOW WARNINGS
    • mysqli_stmt::more_results - Check if there are more query results from a multiple query
    • mysqli_stmt::next_result - Reads the next result from a multiple query
    • mysqli_stmt::prepare - Prepares an SQL statement for execution
    • mysqli_stmt::reset - Resets a prepared statement
    • mysqli_stmt::result_metadata - Returns result set metadata from a prepared statement
    • mysqli_stmt::send_long_data - Send data in blocks
    • mysqli_stmt::store_result - Stores a result set in an internal buffer
    • mysqli_stmt::__construct - Constructs a new mysqli_stmt object
    • mysqli_warning::next - Fetch next warning
    • mysqli_warning::__construct - Private constructor to disallow direct instantiation
    • mysql_affected_rows - 取得前一次 MySQL 操作所影响的记录行数
    • mysql_client_encoding - 返回字符集的名称
    • mysql_close - 关闭 MySQL 连接
    • mysql_connect - 打开一个到 MySQL 服务器的连接
    • mysql_create_db - 新建一个 MySQL 数据库
    • mysql_data_seek - 移动内部结果的指针
    • mysql_db_name - 取得 mysql_list_dbs 返回的结果数据
    • mysql_db_query - 选择数据库并执行查询
    • mysql_drop_db - 丢弃（删除）一个 MySQL 数据库
    • mysql_errno - 返回上一个 MySQL 操作中的错误信息的数值
    • mysql_error - 返回上一个 MySQL 操作中的错误信息的文本
    • mysql_escape_string - 转义字符串用于 mysql_query
    • mysql_fetch_array - 从结果集中取得一行作为关联数组
    • mysql_fetch_assoc - 从结果集中取得一行作为关联数组
    • mysql_fetch_field - 从结果集中取得列信息并作为对象返回
    • mysql_fetch_lengths - 取得结果集中每个输出的长度
    • mysql_fetch_object - 从结果集中取得一行作为对象返回
    • mysql_fetch_row - 从结果集中取得一行作为枚举数组
    • mysql_field_flags - 从结果中取得和指定字段关联的 flags
    • mysql_field_len - 返回指定字段的长度
    • mysql_field_name - 取得结果中指定字段的字段名
    • mysql_field_seek - 将结果指针设置为指定的字段偏移量
    • mysql_field_table - 取得指定字段所在的表名
    • mysql_field_type - 取得结果集中指定字段的类型
    • mysql_free_result - 释放结果内存
    • mysql_get_client_info - 取得 MySQL 客户端信息
    • mysql_get_host_info - 取得 MySQL 主机信息
    • mysql_get_proto_info - 取得 MySQL 协议信息
    • mysql_get_server_info - 取得 MySQL 服务器信息
    • mysql_info - 获取最近查询的有关信息
    • mysql_insert_id - 取得上一条查询生成的 ID
    • mysql_list_dbs - 列出 MySQL 服务器中可用的数据库
    • mysql_list_fields - 列出 MySQL 表字段
    • mysql_list_processes - 列出 MySQL 进程
    • mysql_list_tables - 列出 MySQL 数据库中的表
    • mysql_num_fields - 取得结果中字段的数量
    • mysql_num_rows - 获取结果中行数
    • mysql_pconnect - 打开一个到 MySQL 服务器的持久连接
    • mysql_ping - Ping 服务器连接的状态，如果没有连接则重新连接
    • mysql_query - 发送一条 MySQL 查询
    • mysql_real_escape_string - 将字符串中的特殊字符进行转义，以在 SQL 语句中使用
    • mysql_result - 取得结果数据
    • mysql_select_db - 选择 MySQL 数据库
    • mysql_set_charset - 设置客户端的字符集
    • mysql_stat - 获取当前系统状态
    • mysql_tablename - 取得表名
    • mysql_thread_id - 返回当前线程的 ID
    • mysql_unbuffered_query - 向 MySQL 发送 SQL 查询，无需获取和缓冲结果行
    • mysql_xdevapi\Client::close - Close client
  • n
    • natcasesort - 用“自然排序”算法对数组进行不区分大小写字母的排序
    • natsort - 用“自然排序”算法对数组排序
    • net_get_interfaces - 获取网络接口
    • next - 将数组中的内部指针向前移动一位
    • ngettext - Plural version of gettext
    • nl2br - 在字符串所有新行之前插入 HTML 换行标记
    • nl_langinfo - Query language and locale information
    • NoRewindIterator::current - Get the current value
    • NoRewindIterator::key - Get the current key
    • NoRewindIterator::next - Forward to the next element
    • NoRewindIterator::rewind - Prevents the rewind operation on the inner iterator
    • NoRewindIterator::valid - Validates the iterator
    • NoRewindIterator::__construct - Construct a NoRewindIterator
    • Normalizer::getRawDecomposition - Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
    • Normalizer::isNormalized - Checks if the provided string is already in the specified normalization form
    • Normalizer::normalize - Normalizes the input provided and returns the normalized string
    • NumberFormatter::create - Create a number formatter
    • NumberFormatter::format - Format a number
    • NumberFormatter::formatCurrency - Format a currency value
    • NumberFormatter::getAttribute - Get an attribute
    • NumberFormatter::getErrorCode - Get formatter's last error code
    • NumberFormatter::getErrorMessage - Get formatter's last error message
    • NumberFormatter::getLocale - Get formatter locale
    • NumberFormatter::getPattern - Get formatter pattern
    • NumberFormatter::getSymbol - Get a symbol value
    • NumberFormatter::getTextAttribute - Get a text attribute
    • NumberFormatter::parse - Parse a number
    • NumberFormatter::parseCurrency - Parse a currency number
    • NumberFormatter::setAttribute - Set an attribute
    • NumberFormatter::setPattern - Set formatter pattern
    • NumberFormatter::setSymbol - Set a symbol value
    • NumberFormatter::setTextAttribute - Set a text attribute
    • number_format - 以千位分隔符方式格式化一个数字
  • o
    • OAuth::disableDebug - 关闭详细的调试
    • OAuth::disableRedirects - 关闭重定向
    • OAuth::disableSSLChecks - 关闭 SSL 检查
    • OAuth::enableDebug - 启用详细调试
    • OAuth::enableRedirects - 启用重定向
    • OAuth::enableSSLChecks - 启用 SSL 检查
    • OAuth::fetch - 获取一个 OAuth 受保护的资源
    • OAuth::generateSignature - 生成一个签名
    • OAuth::getAccessToken - 获取一个访问令牌
    • OAuth::getCAPath - 获取 CA 信息
    • OAuth::getLastResponse - 获取最后一次的响应
    • OAuth::getLastResponseHeaders - 获取最后一次响应的头信息
    • OAuth::getLastResponseInfo - 获取关于最后一次响应的 HTTP 信息
    • OAuth::getRequestHeader - 生成 OAuth 头信息字符串签名
    • OAuth::getRequestToken - 获取一个请求令牌
    • OAuth::setAuthType - 设置授权类型
    • OAuth::setCAPath - 设置 CA 路径和信息
    • OAuth::setNonce - 为后续请求设置现时标志
    • OAuth::setRequestEngine - 设置目标请求引擎
    • OAuth::setRSACertificate - 设置 RSA 证书
    • OAuth::setSSLChecks - 调整特定的SSL请求检查
    • OAuth::setTimestamp - 设置时间戳
    • OAuth::setToken - 设置令牌和 secret
    • OAuth::setVersion - 设置 OAuth 版本
    • OAuth::__construct - 新建一个 OAuth 对象
    • OAuth::__destruct - 析构函数
    • OAuthProvider::addRequiredParameter - 添加必需的参数
    • OAuthProvider::callconsumerHandler - 调用 consumerNonceHandler 回调函数
    • OAuthProvider::callTimestampNonceHandler - 调用 timestampNonceHandler 回调函数
    • OAuthProvider::calltokenHandler - 调用 tokenNonceHandler 回调函数
    • OAuthProvider::checkOAuthRequest - 检查一个 oauth 请求
    • OAuthProvider::consumerHandler - 设置 consumerHandler 句柄回调函数
    • OAuthProvider::generateToken - 生成一个随机令牌
    • OAuthProvider::is2LeggedEndpoint - is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint - 设置 isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter - 移除一个必需的参数
    • OAuthProvider::reportProblem - 报告问题
    • OAuthProvider::setParam - 设置一个参数
    • OAuthProvider::setRequestTokenPath - 设置请求令牌路径
    • OAuthProvider::timestampNonceHandler - 设置 timestampNonceHandler 句柄回调函数
    • OAuthProvider::tokenHandler - 设置 tokenHandler 句柄回调函数
    • OAuthProvider::__construct - 新建一个 OAuthProvider 对象
    • oauth_get_sbs - 生成一个签名字符基串
    • oauth_urlencode - 将 URI 编码为 RFC 3986 规范
    • ob_clean - 清空（擦掉）活动输出缓冲区的内容
    • ob_end_clean - 清空（擦除）活动缓冲区的内容并关闭它
    • ob_end_flush - 冲刷（发送）活动输出处理程序的返回值，并关闭活动输出缓冲区
    • ob_flush - 冲刷（发送）活动输出处理程序的返回值
    • ob_get_clean - 获取活动缓冲区的内容并将其关闭
    • ob_get_contents - 返回输出缓冲区的内容
    • ob_get_flush - 冲刷（发送）活动输出处理程序的返回值，返回活动输出缓冲区的内容并将其关闭
    • ob_get_length - 返回输出缓冲区内容的长度
    • ob_get_level - 返回输出缓冲机制的嵌套级别
    • ob_get_status - 得到所有输出缓冲区的状态
    • ob_gzhandler - ob_start 回调函数压缩输出缓冲区
    • ob_iconv_handler - 以输出缓冲处理程序转换字符编码
    • ob_implicit_flush - 打开/关闭绝对刷送
    • ob_list_handlers - 列出所有使用的输出处理程序
    • ob_start - 打开输出控制缓冲
    • ob_tidyhandler - ob_start callback function to repair the buffer
    • ocibindbyname - 别名 oci_bind_by_name
    • ocicancel - 别名 oci_cancel
    • ocicloselob - 别名 OCILob::close
    • ocicollappend - 别名 OCICollection::append
    • ocicollassign - 别名 OCICollection::assign
    • ocicollassignelem - 别名 OCICollection::assignElem
    • OCICollection::append - Appends element to the collection
    • OCICollection::assign - Assigns a value to the collection from another existing collection
    • OCICollection::assignElem - Assigns a value to the element of the collection
    • OCICollection::free - Frees the resources associated with the collection object
    • OCICollection::getElem - Returns value of the element
    • OCICollection::max - Returns the maximum number of elements in the collection
    • OCICollection::size - Returns size of the collection
    • OCICollection::trim - Trims elements from the end of the collection
    • ocicollgetelem - 别名 OCICollection::getElem
    • ocicollmax - 别名 OCICollection::max
    • ocicollsize - 别名 OCICollection::size
    • ocicolltrim - 别名 OCICollection::trim
    • ocicolumnisnull - 别名 oci_field_is_null
    • ocicolumnname - 别名 oci_field_name
    • ocicolumnprecision - 别名 oci_field_precision
    • ocicolumnscale - 别名 oci_field_scale
    • ocicolumnsize - 别名 oci_field_size
    • ocicolumntype - 别名 oci_field_type
    • ocicolumntyperaw - 别名 oci_field_type_raw
    • ocicommit - 别名 oci_commit
    • ocidefinebyname - 别名 oci_define_by_name
    • ocierror - 别名 oci_error
    • ociexecute - 别名 oci_execute
    • ocifetch - 别名 oci_fetch
    • ocifetchinto - Obsolete variant of oci_fetch_array, oci_fetch_object, oci_fetch_assoc and oci_fetch_row
    • ocifetchstatement - 别名 oci_fetch_all
    • ocifreecollection - 别名 OCICollection::free
    • ocifreecursor - 别名 oci_free_statement
    • ocifreedesc - 别名 OCILob::free
    • ocifreestatement - 别名 oci_free_statement
    • ociinternaldebug - 别名 oci_internal_debug
    • ociloadlob - 别名 OCILob::load
    • OCILob::append - Appends data from the large object to another large object
    • OCILob::close - Closes LOB descriptor
    • OCILob::eof - Tests for end-of-file on a large object's descriptor
    • OCILob::erase - Erases a specified portion of the internal LOB data
    • OCILob::export - Exports LOB's contents to a file
    • OCILob::flush - Flushes/writes buffer of the LOB to the server
    • OCILob::free - Frees resources associated with the LOB descriptor
    • OCILob::getBuffering - Returns current state of buffering for the large object
    • OCILob::import - Imports file data to the LOB
    • OCILob::load - Returns large object's contents
    • OCILob::read - Reads part of the large object
    • OCILob::rewind - Moves the internal pointer to the beginning of the large object
    • OCILob::save - Saves data to the large object
    • OCILob::saveFile - 别名 OCILob::import
    • OCILob::seek - Sets the internal pointer of the large object
    • OCILob::setBuffering - Changes current state of buffering for the large object
    • OCILob::size - Returns size of large object
    • OCILob::tell - Returns the current position of internal pointer of large object
    • OCILob::truncate - Truncates large object
    • OCILob::write - Writes data to the large object
    • OCILob::writeTemporary - Writes a temporary large object
    • OCILob::writeToFile - 别名 OCILob::export
    • ocilogoff - 别名 oci_close
    • ocilogon - 别名 oci_connect
    • ocinewcollection - 别名 oci_new_collection
    • ocinewcursor - 别名 oci_new_cursor
    • ocinewdescriptor - 别名 oci_new_descriptor
    • ocinlogon - 别名 oci_new_connect
    • ocinumcols - 别名 oci_num_fields
    • ociparse - 别名 oci_parse
    • ociplogon - 别名 oci_pconnect
    • ociresult - 别名 oci_result
    • ocirollback - 别名 oci_rollback
    • ocirowcount - 别名 oci_num_rows
    • ocisavelob - 别名 OCILob::save
    • ocisavelobfile - 别名 OCILob::import
    • ociserverversion - 别名 oci_server_version
    • ocisetprefetch - 别名 oci_set_prefetch
    • ocistatementtype - 别名 oci_statement_type
    • ociwritelobtofile - 别名 OCILob::export
    • ociwritetemporarylob - 别名 OCILob::writeTemporary
    • oci_bind_array_by_name - Binds a PHP array to an Oracle PL/SQL array parameter
    • oci_bind_by_name - 绑定 PHP 变量到 Oracle 位置标志符
    • oci_cancel - 中断游标读取数据
    • oci_client_version - Returns the Oracle client library version
    • oci_close - 关闭 Oracle 连接
    • oci_commit - 提交未完成的数据库事务
    • oci_connect - 建立一个到 Oracle 服务器的连接
    • oci_define_by_name - 将 PHP 变量与查询读取的列相关联
    • oci_error - 返回最后发现的错误
    • oci_execute - 执行语句
    • oci_fetch - 从查询中读取下一行到内部缓冲区
    • oci_fetch_all - 从查询中读取多行到二维数组中
    • oci_fetch_array - Returns the next row from a query as an associative or numeric array
    • oci_fetch_assoc - Returns the next row from a query as an associative array
    • oci_fetch_object - Returns the next row from a query as an object
    • oci_fetch_row - Returns the next row from a query as a numeric array
    • oci_field_is_null - 检测当前获取的行中，字段是否为 null
    • oci_field_name - 返回 statement 中的字段名
    • oci_field_precision - 返回字段精度
    • oci_field_scale - 返回字段范围
    • oci_field_size - 返回字段大小
    • oci_field_type - 返回字段的数据类型名称
    • oci_field_type_raw - 返回字段的原始 Oracle 数据类型
    • oci_free_descriptor - Frees a descriptor
    • oci_free_statement - 释放关联于语句或游标的所有资源
    • oci_get_implicit_resultset - Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets
    • oci_internal_debug - Enables or disables internal debug output
    • oci_lob_copy - Copies large object
    • oci_lob_is_equal - Compares two LOB/FILE locators for equality
    • oci_new_collection - 分配新的 collection 对象
    • oci_new_connect - 使用唯一连接，连接到 Oracle 服务器
    • oci_new_cursor - 分配并返回新的游标（语句句柄）
    • oci_new_descriptor - 初始化新的空 LOB 或 FILE 描述符
    • oci_num_fields - 返回语句中结果列的数量
    • oci_num_rows - 返回语句执行后受影响的行数
    • oci_parse - 预处理用于执行的 Oracle 语句
    • oci_password_change - 修改 Oracle 用户的密码
    • oci_pconnect - 使用持久连接连，连接到 Oracle 数据库
    • oci_register_taf_callback - Register a user-defined callback function for Oracle Database TAF
    • oci_result - 返回所取得行中字段的值
    • oci_rollback - 回滚未完成的事务
    • oci_server_version - 返回 Oracle 数据库版本
    • oci_set_action - Sets the action name
    • oci_set_call_timeout - Sets a millisecond timeout for database calls
    • oci_set_client_identifier - Sets the client identifier
    • oci_set_client_info - Sets the client information
    • oci_set_db_operation - Sets the database operation
    • oci_set_edition - Sets the database edition
    • oci_set_module_name - Sets the module name
    • oci_set_prefetch - 设置查询预读取的行数
    • oci_set_prefetch_lob - Sets the amount of data prefetched for each CLOB or BLOB.
    • oci_statement_type - 返回语句的类型
    • oci_unregister_taf_callback - Unregister a user-defined callback function for Oracle Database TAF
    • octdec - 八进制转换为十进制
    • odbc_autocommit - Toggle autocommit behaviour
    • odbc_binmode - Handling of binary column data
    • odbc_close - Close an ODBC connection
    • odbc_close_all - Close all ODBC connections
    • odbc_columnprivileges - Lists columns and associated privileges for the given table
    • odbc_columns - Lists the column names in specified tables
    • odbc_commit - Commit an ODBC transaction
    • odbc_connect - Connect to a datasource
    • odbc_connection_string_is_quoted - Determines if an ODBC connection string value is quoted
    • odbc_connection_string_quote - Quotes an ODBC connection string value
    • odbc_connection_string_should_quote - Determines if an ODBC connection string value should be quoted
    • odbc_cursor - Get cursorname
    • odbc_data_source - Returns information about available DSNs
    • odbc_do - 别名 odbc_exec
    • odbc_error - Get the last error code
    • odbc_errormsg - Get the last error message
    • odbc_exec - Directly execute an SQL statement
    • odbc_execute - Execute a prepared statement
    • odbc_fetch_array - Fetch a result row as an associative array
    • odbc_fetch_into - Fetch one result row into array
    • odbc_fetch_object - Fetch a result row as an object
    • odbc_fetch_row - Fetch a row
    • odbc_field_len - Get the length (precision) of a field
    • odbc_field_name - Get the columnname
    • odbc_field_num - Return column number
    • odbc_field_precision - 别名 odbc_field_len
    • odbc_field_scale - Get the scale of a field
    • odbc_field_type - Datatype of a field
    • odbc_foreignkeys - Retrieves a list of foreign keys
    • odbc_free_result - Free resources associated with a result
    • odbc_gettypeinfo - Retrieves information about data types supported by the data source
    • odbc_longreadlen - Handling of LONG columns
    • odbc_next_result - Checks if multiple results are available
    • odbc_num_fields - Number of columns in a result
    • odbc_num_rows - Number of rows in a result
    • odbc_pconnect - Open a persistent database connection
    • odbc_prepare - Prepares a statement for execution
    • odbc_primarykeys - Gets the primary keys for a table
    • odbc_procedurecolumns - Retrieve information about parameters to procedures
    • odbc_procedures - Get the list of procedures stored in a specific data source
    • odbc_result - Get result data
    • odbc_result_all - Print result as HTML table
    • odbc_rollback - Rollback a transaction
    • odbc_setoption - Adjust ODBC settings
    • odbc_specialcolumns - Retrieves special columns
    • odbc_statistics - Retrieve statistics about a table
    • odbc_tableprivileges - Lists tables and the privileges associated with each table
    • odbc_tables - Get the list of table names stored in a specific data source
    • opcache_compile_file - 无需运行，即可编译并缓存 PHP 脚本
    • opcache_get_configuration - 获取缓存的配置信息
    • opcache_get_status - 获取缓存的状态信息
    • opcache_invalidate - 废除脚本缓存
    • opcache_is_script_cached - Tells whether a script is cached in OPCache
    • opcache_reset - 重置字节码缓存的内容
    • openal_buffer_create - Generate OpenAL buffer
    • openal_buffer_data - Load a buffer with data
    • openal_buffer_destroy - Destroys an OpenAL buffer
    • openal_buffer_get - Retrieve an OpenAL buffer property
    • openal_buffer_loadwav - Load a .wav file into a buffer
    • openal_context_create - Create an audio processing context
    • openal_context_current - Make the specified context current
    • openal_context_destroy - Destroys a context
    • openal_context_process - Process the specified context
    • openal_context_suspend - Suspend the specified context
    • openal_device_close - Close an OpenAL device
    • openal_device_open - Initialize the OpenAL audio layer
    • openal_listener_get - Retrieve a listener property
    • openal_listener_set - Set a listener property
    • openal_source_create - Generate a source resource
    • openal_source_destroy - Destroy a source resource
    • openal_source_get - Retrieve an OpenAL source property
    • openal_source_pause - Pause the source
    • openal_source_play - Start playing the source
    • openal_source_rewind - Rewind the source
    • openal_source_set - Set source property
    • openal_source_stop - Stop playing the source
    • openal_stream - Begin streaming on a source
    • opendir - 打开目录句柄
    • openlog - Open connection to system logger
    • openssl_cipher_iv_length - 获取密码iv长度
    • openssl_cipher_key_length - Gets the cipher key length
    • openssl_cms_decrypt - Decrypt a CMS message
    • openssl_cms_encrypt - Encrypt a CMS message
    • openssl_cms_read - Export the CMS file to an array of PEM certificates
    • openssl_cms_sign - Sign a file
    • openssl_cms_verify - Verify a CMS signature
    • openssl_csr_export - 将 CSR 作为字符串导出
    • openssl_csr_export_to_file - 将 CSR 导出到文件
    • openssl_csr_get_public_key - 返回 CSR 的公钥
    • openssl_csr_get_subject - 返回 CSR 的主题
    • openssl_csr_new - 生成一个 CSR
    • openssl_csr_sign - 用另一个证书签署 CSR（或者本身）并且生成一个证书
    • openssl_decrypt - 解密数据
    • openssl_dh_compute_key - 计算远程 DH 公钥和本地 DH 密钥的共享密钥
    • openssl_digest - 计算摘要
    • openssl_encrypt - 加密数据
    • openssl_error_string - 返回 openSSL 错误消息
    • openssl_free_key - 释放密钥资源
    • openssl_get_cert_locations - 检索可用的证书位置
    • openssl_get_cipher_methods - 获取可用的加密算法
    • openssl_get_curve_names - 获得ECC的可用曲线名称列表
    • openssl_get_md_methods - 获取可用的摘要算法
    • openssl_get_privatekey - 别名 openssl_pkey_get_private
    • openssl_get_publickey - 别名 openssl_pkey_get_public
    • openssl_open - 打开密封的数据
    • openssl_pbkdf2 - 生成一个 PKCS5 v2 PBKDF2 字符串
    • openssl_pkcs7_decrypt - 解密一个 S/MIME 加密的消息
    • openssl_pkcs7_encrypt - 加密一个 S/MIME 消息
    • openssl_pkcs7_read - 将 PKCS7 文件导出为 PEM 格式证书的数组
    • openssl_pkcs7_sign - 对一个 S/MIME 消息进行签名
    • openssl_pkcs7_verify - 校验一个已签名的 S/MIME 消息的签名
    • openssl_pkcs12_export - 将 PKCS#12 兼容证书存储文件导出到变量
    • openssl_pkcs12_export_to_file - 输出一个 PKCS#12 兼容的证书存储文件
    • openssl_pkcs12_read - 将 PKCS#12 证书存储区解析到数组中
    • openssl_pkey_derive - Computes shared secret for public value of remote and local DH or ECDH key
    • openssl_pkey_export - 将一个密钥的可输出表示转换为字符串
    • openssl_pkey_export_to_file - 将密钥导出到文件中
    • openssl_pkey_free - 释放一个私钥
    • openssl_pkey_get_details - 返回包含密钥详情的数组
    • openssl_pkey_get_private - 获取私钥
    • openssl_pkey_get_public - 从证书中解析公钥，以供使用
    • openssl_pkey_new - 生成一个新的私钥
    • openssl_private_decrypt - 使用私钥解密数据
    • openssl_private_encrypt - 使用私钥加密数据
    • openssl_public_decrypt - 使用公钥解密数据
    • openssl_public_encrypt - 使用公钥加密数据
    • openssl_random_pseudo_bytes - 生成一个伪随机字节串
    • openssl_seal - 密封 (加密) 数据
    • openssl_sign - Generate signature
    • openssl_spki_export - 通过签名公钥和 challenge 导出一个可用的 PEM 格式的公钥
    • openssl_spki_export_challenge - 导出与签名公钥和 challenge 相关的 challenge
    • openssl_spki_new - 生成新的签名公钥和 challenge
    • openssl_spki_verify - 验证签名公钥和 challenge
    • openssl_verify - 验证签名
    • openssl_x509_checkpurpose - 验证是否可以为特定目的使用证书
    • openssl_x509_check_private_key - 检查私钥是否对应于证书
    • openssl_x509_export - 以字符串格式导出证书
    • openssl_x509_export_to_file - 导出证书至文件
    • openssl_x509_fingerprint - 计算一个给定的 x.509 证书的指纹或摘要
    • openssl_x509_free - 释放证书资源
    • openssl_x509_parse - 解析一个 X509 证书并作为一个数组返回信息
    • openssl_x509_read - 解析 x.509 证书并返回对象
    • openssl_x509_verify - Verifies digital signature of x509 certificate against a public key
    • ord - 转换字符串第一个字节为 0-255 之间的值
    • OuterIterator::getInnerIterator - Returns the inner iterator for the current entry
    • output_add_rewrite_var - 添加 URL 重写器的值
    • output_reset_rewrite_vars - 重设 URL 重写器的值
    • Override::__construct - Construct a new Override attribute instance
  • p
    • pack - 将数据打包成二进制字符串
    • parallel\bootstrap - Bootstrapping
    • parallel\Channel::close - Closing
    • parallel\Channel::make - Access
    • parallel\Channel::open - Access
    • parallel\Channel::recv - Sharing
    • parallel\Channel::send - Sharing
    • parallel\Channel::__construct - Channel Construction
    • parallel\Events::addChannel - Targets
    • parallel\Events::addFuture - Targets
    • parallel\Events::poll - Polling
    • parallel\Events::remove - Targets
    • parallel\Events::setBlocking - Behaviour
    • parallel\Events::setInput - Input
    • parallel\Events::setTimeout - Behaviour
    • parallel\Events\Input::add - Inputs
    • parallel\Events\Input::clear - Inputs
    • parallel\Events\Input::remove - Inputs
    • parallel\Future::cancel - Cancellation
    • parallel\Future::cancelled - State Detection
    • parallel\Future::done - State Detection
    • parallel\Future::value - Resolution
    • parallel\run - Execution
    • parallel\Runtime::close - Runtime Graceful Join
    • parallel\Runtime::kill - Runtime Join
    • parallel\Runtime::run - Execution
    • parallel\Runtime::__construct - Runtime Construction
    • parallel\Sync::get - Access
    • parallel\Sync::notify - Synchronization
    • parallel\Sync::set - Access
    • parallel\Sync::wait - Synchronization
    • parallel\Sync::__construct - Construction
    • parallel\Sync::__invoke - Synchronization
    • ParentIterator::accept - Determines acceptability
    • ParentIterator::getChildren - Return the inner iterator's children contained in a ParentIterator
    • ParentIterator::hasChildren - Check whether the inner iterator's current element has children
    • ParentIterator::next - Move the iterator forward
    • ParentIterator::rewind - Rewind the iterator
    • ParentIterator::__construct - Constructs a ParentIterator
    • Parle\Lexer::advance - Process next lexer rule
    • Parle\Lexer::build - Finalize the lexer rule set
    • Parle\Lexer::callout - Define token callback
    • Parle\Lexer::consume - Pass the data for processing
    • Parle\Lexer::dump - Dump the state machine
    • Parle\Lexer::getToken - Retrieve the current token
    • Parle\Lexer::insertMacro - Insert regex macro
    • Parle\Lexer::push - Add a lexer rule
    • Parle\Lexer::reset - Reset lexer
    • Parle\Parser::advance - Process next parser rule
    • Parle\Parser::build - Finalize the grammar rules
    • Parle\Parser::consume - Consume the data for processing
    • Parle\Parser::dump - Dump the grammar
    • Parle\Parser::errorInfo - Retrieve the error information
    • Parle\Parser::left - Declare a token with left-associativity
    • Parle\Parser::nonassoc - Declare a token with no associativity
    • Parle\Parser::precedence - Declare a precedence rule
    • Parle\Parser::push - Add a grammar rule
    • Parle\Parser::reset - Reset parser state
    • Parle\Parser::right - Declare a token with right-associativity
    • Parle\Parser::sigil - Retrieve a matching part of a rule
    • Parle\Parser::sigilCount - Number of elements in matched rule
    • Parle\Parser::sigilName - Retrieve a rule or token name
    • Parle\Parser::token - Declare a token
    • Parle\Parser::tokenId - Get token id
    • Parle\Parser::trace - Trace the parser operation
    • Parle\Parser::validate - Validate input
    • Parle\RLexer::advance - Process next lexer rule
    • Parle\RLexer::build - Finalize the lexer rule set
    • Parle\RLexer::callout - Define token callback
    • Parle\RLexer::consume - Pass the data for processing
    • Parle\RLexer::dump - Dump the state machine
    • Parle\RLexer::getToken - Retrieve the current token
    • Parle\RLexer::insertMacro - Insert regex macro
    • Parle\RLexer::push - Add a lexer rule
    • Parle\RLexer::pushState - Push a new start state
    • Parle\RLexer::reset - Reset lexer
    • Parle\RParser::advance - Process next parser rule
    • Parle\RParser::build - Finalize the grammar rules
    • Parle\RParser::consume - Consume the data for processing
    • Parle\RParser::dump - Dump the grammar
    • Parle\RParser::errorInfo - Retrieve the error information
    • Parle\RParser::left - Declare a token with left-associativity
    • Parle\RParser::nonassoc - Declare a token with no associativity
    • Parle\RParser::precedence - Declare a precedence rule
    • Parle\RParser::push - Add a grammar rule
    • Parle\RParser::reset - Reset parser state
    • Parle\RParser::right - Declare a token with right-associativity
    • Parle\RParser::sigil - Retrieve a matching part of a rule
    • Parle\RParser::sigilCount - Number of elements in matched rule
    • Parle\RParser::sigilName - Retrieve a rule or token name
    • Parle\RParser::token - Declare a token
    • Parle\RParser::tokenId - Get token id
    • Parle\RParser::trace - Trace the parser operation
    • Parle\RParser::validate - Validate input
    • Parle\Stack::pop - Pop an item from the stack
    • Parle\Stack::push - Push an item into the stack
    • parse_ini_file - 解析一个配置文件
    • parse_ini_string - 解析配置字符串
    • parse_str - 将字符串解析成多个变量
    • parse_url - 解析 URL，返回其组成部分
    • passthru - 执行外部程序并且显示原始输出
    • password_algos - Get available password hashing algorithm IDs
    • password_get_info - 返回指定散列（hash）的相关信息
    • password_hash - 创建密码的散列（hash）
    • password_needs_rehash - 检测散列值是否匹配指定的选项
    • password_verify - 验证密码是否和散列值匹配
    • pathinfo - 返回文件路径的信息
    • pclose - 关闭进程文件指针
    • pcntl_alarm - 为进程设置 alarm 闹钟信号
    • pcntl_async_signals - Enable/disable asynchronous signal handling or return the old setting
    • pcntl_errno - 别名 pcntl_get_last_error
    • pcntl_exec - 在当前进程空间执行指定程序
    • pcntl_fork - 在当前进程当前位置产生分叉（fork）
    • pcntl_getpriority - 获取任意进程的优先级
    • pcntl_get_last_error - Retrieve the error number set by the last pcntl function which failed
    • pcntl_rfork - Manipulates process resources
    • pcntl_setpriority - 修改任意进程的优先级
    • pcntl_signal - 安装信号处理程序
    • pcntl_signal_dispatch - 调用等待信号的处理程序
    • pcntl_signal_get_handler - Get the current handler for specified signal
    • pcntl_sigprocmask - 设置或检索阻塞信号
    • pcntl_sigtimedwait - 带超时机制的信号等待
    • pcntl_sigwaitinfo - 等待信号
    • pcntl_strerror - Retrieve the system error message associated with the given errno
    • pcntl_unshare - Dissociates parts of the process execution context
    • pcntl_wait - 等待或返回 fork 的子进程状态
    • pcntl_waitpid - 等待或返回 fork 的子进程状态
    • pcntl_wexitstatus - 返回一个中断的子进程的返回代码
    • pcntl_wifexited - 检查状态代码是否代表一个正常的退出
    • pcntl_wifsignaled - 检查子进程状态码是否代表由于某个信号而中断
    • pcntl_wifstopped - 检查子进程当前是否已经停止
    • pcntl_wstopsig - 返回导致子进程停止的信号
    • pcntl_wtermsig - 返回导致子进程中断的信号
    • PDO::beginTransaction - 启动一个事务
    • PDO::commit - 提交一个事务
    • PDO::cubrid_schema - Get the requested schema information
    • PDO::errorCode - 获取跟数据库句柄上一次操作相关的 SQLSTATE
    • PDO::errorInfo - Fetch extended error information associated with the last operation on the database handle
    • PDO::exec - 执行 SQL 语句，并返回受影响的行数
    • PDO::getAttribute - 取回一个数据库连接的属性
    • PDO::getAvailableDrivers - 返回一个可用驱动的数组
    • PDO::inTransaction - 检查是否在事务内
    • PDO::lastInsertId - 返回最后插入行的ID或序列值
    • PDO::pgsqlCopyFromArray - Copy data from PHP array into table
    • PDO::pgsqlCopyFromFile - Copy data from file into table
    • PDO::pgsqlCopyToArray - Copy data from database table into PHP array
    • PDO::pgsqlCopyToFile - Copy data from table into file
    • PDO::pgsqlGetNotify - Get asynchronous notification
    • PDO::pgsqlGetPid - Get the server PID
    • PDO::pgsqlLOBCreate - Creates a new large object
    • PDO::pgsqlLOBOpen - Opens an existing large object stream
    • PDO::pgsqlLOBUnlink - Deletes the large object
    • PDO::prepare - 预处理要执行的语句，并返回语句对象
    • PDO::query - 预处理并执行没有占位符的 SQL 语句
    • PDO::quote - 为 SQL 查询里的字符串添加引号
    • PDO::rollBack - 回滚事务
    • PDO::setAttribute - 设置属性
    • PDO::sqliteCreateAggregate - Registers an aggregating User Defined Function for use in SQL statements
    • PDO::sqliteCreateCollation - Registers a User Defined Function for use as a collating function in SQL statements
    • PDO::sqliteCreateFunction - Registers a User Defined Function for use in SQL statements
    • PDO::__construct - 创建一个表示数据库连接的 PDO 实例
    • PDOStatement::bindColumn - 绑定一列到一个 PHP 变量
    • PDOStatement::bindParam - 绑定一个参数到指定的变量名
    • PDOStatement::bindValue - 把一个值绑定到一个参数
    • PDOStatement::closeCursor - 关闭游标，使语句能再次被执行
    • PDOStatement::columnCount - 返回结果集中的列数
    • PDOStatement::debugDumpParams - 打印一条 SQL 预处理命令
    • PDOStatement::errorCode - 获取跟上一次语句句柄操作相关的 SQLSTATE
    • PDOStatement::errorInfo - 获取跟上一次语句句柄操作相关的扩展错误信息
    • PDOStatement::execute - 执行预处理语句
    • PDOStatement::fetch - 从结果集中获取下一行
    • PDOStatement::fetchAll - 从结果集中获取剩余的行
    • PDOStatement::fetchColumn - 从结果集中的下一行返回单独的一列
    • PDOStatement::fetchObject - 获取下一行并作为一个对象返回
    • PDOStatement::getAttribute - 检索语句属性
    • PDOStatement::getColumnMeta - 返回结果集中一列的元数据
    • PDOStatement::getIterator - Gets result set iterator
    • PDOStatement::nextRowset - 在一个多行集合语句句柄中推进到下一个行集合
    • PDOStatement::rowCount - 返回受上一个 SQL 语句影响的行数
    • PDOStatement::setAttribute - 设置一个语句属性
    • PDOStatement::setFetchMode - 为语句设置默认的获取模式
    • PDO_CUBRID DSN - Connecting to CUBRID databases
    • PDO_DBLIB DSN - Connecting to Microsoft SQL Server and Sybase databases
    • PDO_FIREBIRD DSN - Connecting to Firebird databases
    • PDO_IBM DSN - Connecting to IBM databases
    • PDO_INFORMIX DSN - Connecting to Informix databases
    • PDO_MYSQL DSN - Connecting to MySQL databases
    • PDO_OCI DSN - Connecting to Oracle databases
    • PDO_ODBC DSN - Connecting to ODBC or DB2 databases
    • PDO_PGSQL DSN - Connecting to PostgreSQL databases
    • PDO_SQLITE DSN - Connecting to SQLite databases
    • PDO_SQLSRV DSN - Connecting to MS SQL Server and SQL Azure databases
    • pfsockopen - 打开持久的 Internet 或 Unix 套接字连接
    • pg_affected_rows - 返回受影响的记录数（元组）
    • pg_cancel_query - 取消异步查询
    • pg_client_encoding - 获取客户端编码
    • pg_close - 关闭 PostgreSQL 连接
    • pg_connect - 打开 PostgreSQL 连接
    • pg_connection_busy - 获取连接是否繁忙
    • pg_connection_reset - 重置连接（再次连接）
    • pg_connection_status - 获取连接状态
    • pg_connect_poll - 对正在进行尝试进行异步的 PostgreSQL 连接轮询其状态。
    • pg_consume_input - Reads input on the connection
    • pg_convert - 将关联的数组值转换为适合 SQL 语句的格式
    • pg_copy_from - 将数组中的记录插入到表
    • pg_copy_to - 将表复制到数组
    • pg_dbname - 获取数据库名称
    • pg_delete - 删除记录
    • pg_end_copy - 与 PostgreSQL 后端同步
    • pg_escape_bytea - 转义字符串以插入到 bytea 字段
    • pg_escape_identifier - Escape a identifier for insertion into a text field
    • pg_escape_literal - Escape a literal for insertion into a text field
    • pg_escape_string - 转义字符串以供查询
    • pg_execute - Sends a request to execute a prepared statement with given parameters, and waits for the result
    • pg_fetch_all - 从结果中获取所有行作为数组
    • pg_fetch_all_columns - Fetches all rows in a particular result column as an array
    • pg_fetch_array - 获取一行作为数组
    • pg_fetch_assoc - 获取一行作为关联数组
    • pg_fetch_object - 获取一行作为对象
    • pg_fetch_result - 从结果实例返回值
    • pg_fetch_row - 提取一行作为枚举数组
    • pg_field_is_null - 测试字段是否为 SQL NULL
    • pg_field_name - 返回字段名
    • pg_field_num - 返回名为 field 的字段编号
    • pg_field_prtlen - 返回打印的长度
    • pg_field_size - 返回指定字段的内部存储大小
    • pg_field_table - Returns the name or oid of the tables field
    • pg_field_type - 返回相应字段编号的类型名称
    • pg_field_type_oid - Returns the type ID (OID) for the corresponding field number
    • pg_flush - 刷新链接中已处理的数据查询
    • pg_free_result - 释放查询结果占用的内存
    • pg_get_notify - 获取 SQL NOTIFY 消息
    • pg_get_pid - 获取后端的进程 ID
    • pg_get_result - 取得异步查询结果
    • pg_host - 返回和某连接关联的主机名
    • pg_insert - 将数组插入到表中
    • pg_last_error - 得到某连接的最后一条错误信息
    • pg_last_notice - 返回 PostgreSQL 服务器最新一条公告信息
    • pg_last_oid - 返回上一条记录的 oid
    • pg_lo_close - 关闭大对象
    • pg_lo_create - 新建大对象
    • pg_lo_export - 将大型对象导出到文件
    • pg_lo_import - 将文件导入为大型对象
    • pg_lo_open - 打开大对象
    • pg_lo_read - 读取大对象
    • pg_lo_read_all - 读取整个大对象并直接发送到浏览器
    • pg_lo_seek - 在大对象中寻找位置
    • pg_lo_tell - 返回当前大型对象的指针位置
    • pg_lo_truncate - Truncates a large object
    • pg_lo_unlink - 删除一个大型对象
    • pg_lo_write - 向大对象写入数据
    • pg_meta_data - 获得表的元数据
    • pg_num_fields - 返回结果中字段的数量
    • pg_num_rows - 返回结果中行的数量
    • pg_options - 获得和 connection 相关的选项
    • pg_parameter_status - Looks up a current parameter setting of the server
    • pg_pconnect - 打开一个持久的 PostgreSQL 连接
    • pg_ping - Ping 数据库连接
    • pg_port - 返回 connection 相关的端口号
    • pg_prepare - Submits a request to create a prepared statement with the given parameters, and waits for completion
    • pg_put_line - 向 PostgreSQL 后端发送以 NULL 字符结尾的字符串
    • pg_query - 执行查询
    • pg_query_params - Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text
    • pg_result_error - 获得跟 result 相关的错误信息
    • pg_result_error_field - Returns an individual field of an error report
    • pg_result_seek - 在 result 实例中设定内部行偏移量
    • pg_result_status - 获得查询结果的状态
    • pg_select - 选择记录
    • pg_send_execute - Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)
    • pg_send_prepare - Sends a request to create a prepared statement with the given parameters, without waiting for completion
    • pg_send_query - 发送异步查询
    • pg_send_query_params - Submits a command and separate parameters to the server without waiting for the result(s)
    • pg_set_client_encoding - 设定客户端编码
    • pg_set_error_context_visibility - Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error
    • pg_set_error_verbosity - Determines the verbosity of messages returned by pg_last_error and pg_result_error
    • pg_socket - Get a read only handle to the socket underlying a PostgreSQL connection
    • pg_trace - 启用 PostgreSQL 连接的追踪
    • pg_transaction_status - Returns the current in-transaction status of the server
    • pg_tty - 返回跟连接相关的 tty 名
    • pg_unescape_bytea - 反转义 bytea 类型的二进制数据
    • pg_untrace - 禁用 PostgreSQL 连接的追踪
    • pg_update - 更新表
    • pg_version - Returns an array with client, protocol and server version (when available)
    • Phar::addEmptyDir - 添加一个空目录到 phar 档案
    • Phar::addFile - 将一个文件从文件系统添加到 phar 档案中
    • Phar::addFromString - 以字符串的形式添加一个文件到 phar 档案
    • Phar::apiVersion - Returns the api version
    • Phar::buildFromDirectory - Construct a phar archive from the files within a directory
    • Phar::buildFromIterator - Construct a phar archive from an iterator
    • Phar::canCompress - Returns whether phar extension supports compression using either zlib or bzip2
    • Phar::canWrite - Returns whether phar extension supports writing and creating phars
    • Phar::compress - Compresses the entire Phar archive using Gzip or Bzip2 compression
    • Phar::compressFiles - Compresses all files in the current Phar archive
    • Phar::convertToData - Convert a phar archive to a non-executable tar or zip file
    • Phar::convertToExecutable - Convert a phar archive to another executable phar archive file format
    • Phar::copy - Copy a file internal to the phar archive to another new file within the phar
    • Phar::count - Returns the number of entries (files) in the Phar archive
    • Phar::createDefaultStub - Create a phar-file format specific stub
    • Phar::decompress - Decompresses the entire Phar archive
    • Phar::decompressFiles - Decompresses all files in the current Phar archive
    • Phar::delete - 删除 phar 档案中的一个文件
    • Phar::delMetadata - Deletes the global metadata of the phar
    • Phar::extractTo - Extract the contents of a phar archive to a directory
    • Phar::getAlias - Get the alias for Phar
    • Phar::getMetadata - Returns phar archive meta-data
    • Phar::getModified - Return whether phar was modified
    • Phar::getPath - Get the real path to the Phar archive on disk
    • Phar::getSignature - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
    • Phar::getStub - Return the PHP loader or bootstrap stub of a Phar archive
    • Phar::getSupportedCompression - Return array of supported compression algorithms
    • Phar::getSupportedSignatures - Return array of supported signature types
    • Phar::getVersion - Return version info of Phar archive
    • Phar::hasMetadata - Returns whether phar has global meta-data
    • Phar::interceptFileFuncs - Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
    • Phar::isBuffering - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
    • Phar::isCompressed - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
    • Phar::isFileFormat - Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
    • Phar::isValidPharFilename - Returns whether the given filename is a valid phar filename
    • Phar::isWritable - Returns true if the phar archive can be modified
    • Phar::loadPhar - Loads any phar archive with an alias
    • Phar::mapPhar - Reads the currently executed file (a phar) and registers its manifest
    • Phar::mount - Mount an external path or file to a virtual location within the phar archive
    • Phar::mungServer - Defines a list of up to 4 $_SERVER variables that should be modified for execution
    • Phar::offsetExists - Determines whether a file exists in the phar
    • Phar::offsetGet - Gets a PharFileInfo object for a specific file
    • Phar::offsetSet - Set the contents of an internal file to those of an external file
    • Phar::offsetUnset - Remove a file from a phar
    • Phar::running - Returns the full path on disk or full phar URL to the currently executing Phar archive
    • Phar::setAlias - Set the alias for the Phar archive
    • Phar::setDefaultStub - Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
    • Phar::setMetadata - Sets phar archive meta-data
    • Phar::setSignatureAlgorithm - Set the signature algorithm for a phar and apply it
    • Phar::setStub - Used to set the PHP loader or bootstrap stub of a Phar archive
    • Phar::startBuffering - Start buffering Phar write operations, do not modify the Phar object on disk
    • Phar::stopBuffering - Stop buffering write requests to the Phar archive, and save changes to disk
    • Phar::unlinkArchive - Completely remove a phar archive from disk and from memory
    • Phar::webPhar - Routes a request from a web browser to an internal file within the phar archive
    • Phar::__construct - Construct a Phar archive object
    • Phar::__destruct - Destructs a Phar archive object
    • PharData::addEmptyDir - Add an empty directory to the tar/zip archive
    • PharData::addFile - Add a file from the filesystem to the tar/zip archive
    • PharData::addFromString - Add a file from a string to the tar/zip archive
    • PharData::buildFromDirectory - Construct a tar/zip archive from the files within a directory
    • PharData::buildFromIterator - Construct a tar or zip archive from an iterator
    • PharData::compress - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
    • PharData::compressFiles - Compresses all files in the current tar/zip archive
    • PharData::convertToData - Convert a phar archive to a non-executable tar or zip file
    • PharData::convertToExecutable - Convert a non-executable tar/zip archive to an executable phar archive
    • PharData::copy - Copy a file internal to the phar archive to another new file within the phar
    • PharData::decompress - Decompresses the entire Phar archive
    • PharData::decompressFiles - Decompresses all files in the current zip archive
    • PharData::delete - Delete a file within a tar/zip archive
    • PharData::delMetadata - Deletes the global metadata of a zip archive
    • PharData::extractTo - Extract the contents of a tar/zip archive to a directory
    • PharData::isWritable - Returns true if the tar/zip archive can be modified
    • PharData::offsetSet - Set the contents of a file within the tar/zip to those of an external file or string
    • PharData::offsetUnset - Remove a file from a tar/zip archive
    • PharData::setAlias - Dummy function (Phar::setAlias is not valid for PharData)
    • PharData::setDefaultStub - Dummy function (Phar::setDefaultStub is not valid for PharData)
    • PharData::setMetadata - Sets phar archive meta-data
    • PharData::setSignatureAlgorithm - Set the signature algorithm for a phar and apply it
    • PharData::setStub - Dummy function (Phar::setStub is not valid for PharData)
    • PharData::__construct - Construct a non-executable tar or zip archive object
    • PharData::__destruct - Destructs a non-executable tar or zip archive object
    • PharFileInfo::chmod - Sets file-specific permission bits
    • PharFileInfo::compress - Compresses the current Phar entry with either zlib or bzip2 compression
    • PharFileInfo::decompress - Decompresses the current Phar entry within the phar
    • PharFileInfo::delMetadata - Deletes the metadata of the entry
    • PharFileInfo::getCompressedSize - Returns the actual size of the file (with compression) inside the Phar archive
    • PharFileInfo::getContent - Get the complete file contents of the entry
    • PharFileInfo::getCRC32 - Returns CRC32 code or throws an exception if CRC has not been verified
    • PharFileInfo::getMetadata - Returns file-specific meta-data saved with a file
    • PharFileInfo::getPharFlags - Returns the Phar file entry flags
    • PharFileInfo::hasMetadata - Returns the metadata of the entry
    • PharFileInfo::isCompressed - Returns whether the entry is compressed
    • PharFileInfo::isCRCChecked - Returns whether file entry has had its CRC verified
    • PharFileInfo::setMetadata - Sets file-specific meta-data saved with a file
    • PharFileInfo::__construct - Construct a Phar entry object
    • PharFileInfo::__destruct - Destructs a Phar entry object
    • phpcredits - 打印 PHP 贡献者名单
    • phpdbg_break_file - Inserts a breakpoint at a line in a file
    • phpdbg_break_function - Inserts a breakpoint at entry to a function
    • phpdbg_break_method - Inserts a breakpoint at entry to a method
    • phpdbg_break_next - Inserts a breakpoint at the next opcode
    • phpdbg_clear - Clears all breakpoints
    • phpdbg_color - Sets the color of certain elements
    • phpdbg_end_oplog - 说明
    • phpdbg_exec - Attempts to set the execution context
    • phpdbg_get_executable - 说明
    • phpdbg_prompt - Sets the command prompt
    • phpdbg_start_oplog - 说明
    • phpinfo - 输出关于 PHP 配置的信息
    • PhpToken::getTokenName - Returns the name of the token.
    • PhpToken::is - Tells whether the token is of given kind.
    • PhpToken::isIgnorable - Tells whether the token would be ignored by the PHP parser.
    • PhpToken::tokenize - Splits given source into PHP tokens, represented by PhpToken objects.
    • PhpToken::__construct - Returns a new PhpToken object
    • PhpToken::__toString - Returns the textual content of the token.
    • phpversion - 获取当前的PHP版本
    • php_ini_loaded_file - 取得已加载的 php.ini 文件的路径
    • php_ini_scanned_files - 返回从额外 ini 目录里解析的 .ini 文件列表
    • php_sapi_name - 返回 web 服务器和 PHP 之间的接口类型
    • php_strip_whitespace - 返回删除注释和空格后的PHP源码
    • php_uname - 返回运行 PHP 的系统的有关信息
    • php_user_filter::filter - Called when applying the filter
    • php_user_filter::onClose - Called when closing the filter
    • php_user_filter::onCreate - Called when creating the filter
    • pi - 得到圆周率值
    • png2wbmp - 将 PNG 图像文件转换为 WBMP 图像文件
    • Pool::collect - 回收已完成任务的引用
    • Pool::resize - 改变 Pool 对象的可容纳 Worker 对象的数量
    • Pool::shutdown - 停止所有的 Worker 对象
    • Pool::submit - 提交对象以执行
    • Pool::submitTo - 提交一个任务到特定的 Worker 以执行
    • Pool::__construct - 创建新的 Worker 对象池
    • popen - 打开进程文件指针
    • pos - current 的别名
    • posix_access - Determine accessibility of a file
    • posix_ctermid - Get path name of controlling terminal
    • posix_eaccess - Determine accessibility of a file
    • posix_errno - 别名 posix_get_last_error
    • posix_fpathconf - Returns the value of a configurable limit
    • posix_getcwd - Pathname of current directory
    • posix_getegid - Return the effective group ID of the current process
    • posix_geteuid - Return the effective user ID of the current process
    • posix_getgid - Return the real group ID of the current process
    • posix_getgrgid - Return info about a group by group id
    • posix_getgrnam - Return info about a group by name
    • posix_getgroups - Return the group set of the current process
    • posix_getlogin - Return login name
    • posix_getpgid - Get process group id for job control
    • posix_getpgrp - Return the current process group identifier
    • posix_getpid - 返回当前进程 id
    • posix_getppid - Return the parent process identifier
    • posix_getpwnam - Return info about a user by username
    • posix_getpwuid - Return info about a user by user id
    • posix_getrlimit - Return info about system resource limits
    • posix_getsid - Get the current sid of the process
    • posix_getuid - Return the real user ID of the current process
    • posix_get_last_error - Retrieve the error number set by the last posix function that failed
    • posix_initgroups - Calculate the group access list
    • posix_isatty - Determine if a file descriptor is an interactive terminal
    • posix_kill - Send a signal to a process
    • posix_mkfifo - Create a fifo special file (a named pipe)
    • posix_mknod - Create a special or ordinary file (POSIX.1)
    • posix_pathconf - Returns the value of a configurable limit
    • posix_setegid - Set the effective GID of the current process
    • posix_seteuid - Set the effective UID of the current process
    • posix_setgid - Set the GID of the current process
    • posix_setpgid - Set process group id for job control
    • posix_setrlimit - Set system resource limits
    • posix_setsid - Make the current process a session leader
    • posix_setuid - Set the UID of the current process
    • posix_strerror - Retrieve the system error message associated with the given errno
    • posix_sysconf - Returns system runtime information
    • posix_times - Get process times
    • posix_ttyname - Determine terminal device name
    • posix_uname - Get system name
    • pow - 指数表达式
    • preg_filter - 执行一个正则表达式搜索和替换
    • preg_grep - 返回匹配模式的数组条目
    • preg_last_error - 返回最后一个PCRE正则执行产生的错误代码
    • preg_last_error_msg - Returns the error message of the last PCRE regex execution
    • preg_match - 执行匹配正则表达式
    • preg_match_all - 执行一个全局正则表达式匹配
    • preg_quote - 转义正则表达式字符
    • preg_replace - 执行一个正则表达式的搜索和替换
    • preg_replace_callback - 执行一个正则表达式搜索并且使用一个回调进行替换
    • preg_replace_callback_array - Perform a regular expression search and replace using callbacks
    • preg_split - 通过一个正则表达式分隔字符串
    • prev - 将数组的内部指针倒回一位
    • print - 输出字符串
    • printf - 输出格式化字符串
    • print_r - 打印人类可读的变量信息
    • proc_close - 关闭由 proc_open 打开的进程并且返回进程退出码
    • proc_get_status - 获取由 proc_open 函数打开的进程的信息
    • proc_nice - 修改当前进程的优先级
    • proc_open - 执行一个命令，并且打开用来输入/输出的文件指针。
    • proc_terminate - 杀死由 proc_open 打开的进程
    • property_exists - 检查对象或类是否具有该属性
    • pspell_add_to_personal - Add the word to a personal wordlist
    • pspell_add_to_session - Add the word to the wordlist in the current session
    • pspell_check - Check a word
    • pspell_clear_session - Clear the current session
    • pspell_config_create - Create a config used to open a dictionary
    • pspell_config_data_dir - Location of language data files
    • pspell_config_dict_dir - Location of the main word list
    • pspell_config_ignore - Ignore words less than N characters long
    • pspell_config_mode - Change the mode number of suggestions returned
    • pspell_config_personal - Set a file that contains personal wordlist
    • pspell_config_repl - Set a file that contains replacement pairs
    • pspell_config_runtogether - Consider run-together words as valid compounds
    • pspell_config_save_repl - Determine whether to save a replacement pairs list along with the wordlist
    • pspell_new - Load a new dictionary
    • pspell_new_config - Load a new dictionary with settings based on a given config
    • pspell_new_personal - Load a new dictionary with personal wordlist
    • pspell_save_wordlist - Save the personal wordlist to a file
    • pspell_store_replacement - Store a replacement pair for a word
    • pspell_suggest - Suggest spellings of a word
    • ps_add_bookmark - Add bookmark to current page
    • ps_add_launchlink - Adds link which launches file
    • ps_add_locallink - Adds link to a page in the same document
    • ps_add_note - Adds note to current page
    • ps_add_pdflink - Adds link to a page in a second pdf document
    • ps_add_weblink - Adds link to a web location
    • ps_arc - Draws an arc counterclockwise
    • ps_arcn - Draws an arc clockwise
    • ps_begin_page - Start a new page
    • ps_begin_pattern - Start a new pattern
    • ps_begin_template - Start a new template
    • ps_circle - Draws a circle
    • ps_clip - Clips drawing to current path
    • ps_close - Closes a PostScript document
    • ps_closepath - Closes path
    • ps_closepath_stroke - Closes and strokes path
    • ps_close_image - Closes image and frees memory
    • ps_continue_text - Continue text in next line
    • ps_curveto - Draws a curve
    • ps_delete - Deletes all resources of a PostScript document
    • ps_end_page - End a page
    • ps_end_pattern - End a pattern
    • ps_end_template - End a template
    • ps_fill - Fills the current path
    • ps_fill_stroke - Fills and strokes the current path
    • ps_findfont - Loads a font
    • ps_get_buffer - Fetches the full buffer containig the generated PS data
    • ps_get_parameter - Gets certain parameters
    • ps_get_value - Gets certain values
    • ps_hyphenate - Hyphenates a word
    • ps_include_file - Reads an external file with raw PostScript code
    • ps_lineto - Draws a line
    • ps_makespotcolor - Create spot color
    • ps_moveto - Sets current point
    • ps_new - Creates a new PostScript document object
    • ps_open_file - Opens a file for output
    • ps_open_image - Reads an image for later placement
    • ps_open_image_file - Opens image from file
    • ps_open_memory_image - Takes an GD image and returns an image for placement in a PS document
    • ps_place_image - Places image on the page
    • ps_rect - Draws a rectangle
    • ps_restore - Restore previously save context
    • ps_rotate - Sets rotation factor
    • ps_save - Save current context
    • ps_scale - Sets scaling factor
    • ps_setcolor - Sets current color
    • ps_setdash - Sets appearance of a dashed line
    • ps_setflat - Sets flatness
    • ps_setfont - Sets font to use for following output
    • ps_setgray - Sets gray value
    • ps_setlinecap - Sets appearance of line ends
    • ps_setlinejoin - Sets how contected lines are joined
    • ps_setlinewidth - Sets width of a line
    • ps_setmiterlimit - Sets the miter limit
    • ps_setoverprintmode - Sets overprint mode
    • ps_setpolydash - Sets appearance of a dashed line
    • ps_set_border_color - Sets color of border for annotations
    • ps_set_border_dash - Sets length of dashes for border of annotations
    • ps_set_border_style - Sets border style of annotations
    • ps_set_info - Sets information fields of document
    • ps_set_parameter - Sets certain parameters
    • ps_set_text_pos - Sets position for text output
    • ps_set_value - Sets certain values
    • ps_shading - Creates a shading for later use
    • ps_shading_pattern - Creates a pattern based on a shading
    • ps_shfill - Fills an area with a shading
    • ps_show - Output text
    • ps_show2 - Output a text at current position
    • ps_show_boxed - Output text in a box
    • ps_show_xy - Output text at given position
    • ps_show_xy2 - Output text at position
    • ps_stringwidth - Gets width of a string
    • ps_string_geometry - Gets geometry of a string
    • ps_stroke - Draws the current path
    • ps_symbol - Output a glyph
    • ps_symbol_name - Gets name of a glyph
    • ps_symbol_width - Gets width of a glyph
    • ps_translate - Sets translation
    • putenv - 设置环境变量的值
  • q
    • QuickHashIntHash::add - This method adds a new entry to the hash
    • QuickHashIntHash::delete - This method deletes an entry from the hash
    • QuickHashIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize - Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntHash::__construct - Creates a new QuickHashIntHash object
    • QuickHashIntSet::add - This method adds a new entry to the set
    • QuickHashIntSet::delete - This method deletes an entry from the set
    • QuickHashIntSet::exists - This method checks whether a key is part of the set
    • QuickHashIntSet::getSize - Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile - This factory method creates a set from a file
    • QuickHashIntSet::loadFromString - This factory method creates a set from a string
    • QuickHashIntSet::saveToFile - This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString - This method returns a serialized version of the set
    • QuickHashIntSet::__construct - Creates a new QuickHashIntSet object
    • QuickHashIntStringHash::add - This method adds a new entry to the hash
    • QuickHashIntStringHash::delete - This method deletes an entry from the hash
    • QuickHashIntStringHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize - Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntStringHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntStringHash::__construct - Creates a new QuickHashIntStringHash object
    • QuickHashStringIntHash::add - This method adds a new entry to the hash
    • QuickHashStringIntHash::delete - This method deletes an entry from the hash
    • QuickHashStringIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize - Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashStringIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashStringIntHash::__construct - Creates a new QuickHashStringIntHash object
    • quoted_printable_decode - 将 quoted-printable 字符串转换为 8-bit 字符串
    • quoted_printable_encode - 将 8-bit 字符串转换成 quoted-printable 字符串
    • quotemeta - 转义元字符集
  • r
    • rad2deg - 将弧度数转换为相应的角度数
    • radius_acct_open - Creates a Radius handle for accounting
    • radius_add_server - Adds a server
    • radius_auth_open - Creates a Radius handle for authentication
    • radius_close - Frees all ressources
    • radius_config - Causes the library to read the given configuration file
    • radius_create_request - Create accounting or authentication request
    • radius_cvt_addr - Converts raw data to IP-Address
    • radius_cvt_int - Converts raw data to integer
    • radius_cvt_string - Converts raw data to string
    • radius_demangle - Demangles data
    • radius_demangle_mppe_key - Derives mppe-keys from mangled data
    • radius_get_attr - Extracts an attribute
    • radius_get_tagged_attr_data - Extracts the data from a tagged attribute
    • radius_get_tagged_attr_tag - Extracts the tag from a tagged attribute
    • radius_get_vendor_attr - Extracts a vendor specific attribute
    • radius_put_addr - Attaches an IP address attribute
    • radius_put_attr - Attaches a binary attribute
    • radius_put_int - Attaches an integer attribute
    • radius_put_string - Attaches a string attribute
    • radius_put_vendor_addr - Attaches a vendor specific IP address attribute
    • radius_put_vendor_attr - Attaches a vendor specific binary attribute
    • radius_put_vendor_int - Attaches a vendor specific integer attribute
    • radius_put_vendor_string - Attaches a vendor specific string attribute
    • radius_request_authenticator - Returns the request authenticator
    • radius_salt_encrypt_attr - Salt-encrypts a value
    • radius_send_request - Sends the request and waits for a reply
    • radius_server_secret - Returns the shared secret
    • radius_strerror - Returns an error message
    • rand - 产生一个随机整数
    • Random\Engine::generate - Generates randomness
    • Random\Engine\Mt19937::generate - Generate 32 bits of randomness
    • Random\Engine\Mt19937::__construct - Constructs a new Mt19937 engine
    • Random\Engine\Mt19937::__debugInfo - Returns the internal state of the engine
    • Random\Engine\Mt19937::__serialize - Serializes the Mt19937 object
    • Random\Engine\Mt19937::__unserialize - Deserializes the data parameter into a Mt19937 object
    • Random\Engine\PcgOneseq128XslRr64::generate - Generate 64 bits of randomness
    • Random\Engine\PcgOneseq128XslRr64::jump - Efficiently move the engine ahead multiple steps
    • Random\Engine\PcgOneseq128XslRr64::__construct - Constructs a new PCG Oneseq 128 XSL RR 64 engine
    • Random\Engine\PcgOneseq128XslRr64::__debugInfo - Returns the internal state of the engine
    • Random\Engine\PcgOneseq128XslRr64::__serialize - Serializes the PcgOneseq128XslRr64 object
    • Random\Engine\PcgOneseq128XslRr64::__unserialize - Deserializes the data parameter into a PcgOneseq128XslRr64 object
    • Random\Engine\Secure::generate - Generate cryptographically secure randomness
    • Random\Engine\Xoshiro256StarStar::generate - Generate 64 bits of randomness
    • Random\Engine\Xoshiro256StarStar::jump - Efficiently move the engine ahead by 2^128 steps
    • Random\Engine\Xoshiro256StarStar::jumpLong - Efficiently move the engine ahead by 2^192 steps
    • Random\Engine\Xoshiro256StarStar::__construct - Constructs a new xoshiro256** engine
    • Random\Engine\Xoshiro256StarStar::__debugInfo - Returns the internal state of the engine
    • Random\Engine\Xoshiro256StarStar::__serialize - Serializes the Xoshiro256StarStar object
    • Random\Engine\Xoshiro256StarStar::__unserialize - Deserializes the data parameter into a Xoshiro256StarStar object
    • Random\Randomizer::getBytes - Get random bytes
    • Random\Randomizer::getBytesFromString - Get random bytes from a source string
    • Random\Randomizer::getFloat - Get a uniformly selected float
    • Random\Randomizer::getInt - Get a uniformly selected integer
    • Random\Randomizer::nextFloat - Get a float from the right-open interval [0.0, 1.0)
    • Random\Randomizer::nextInt - Get a positive integer
    • Random\Randomizer::pickArrayKeys - Select random array keys
    • Random\Randomizer::shuffleArray - Get a permutation of an array
    • Random\Randomizer::shuffleBytes - Get a byte-wise permutation of a string
    • Random\Randomizer::__construct - Constructs a new Randomizer
    • Random\Randomizer::__serialize - Serializes the Randomizer object
    • Random\Randomizer::__unserialize - Deserializes the data parameter into a Randomizer object
    • random_bytes - Get cryptographically secure random bytes
    • random_int - 获取生成加密安全、均匀分布的整数
    • range - 根据范围创建数组，包含指定的元素
    • RarArchive::close - Close RAR archive and free all resources
    • RarArchive::getComment - Get comment text from the RAR archive
    • RarArchive::getEntries - Get full list of entries from the RAR archive
    • RarArchive::getEntry - Get entry object from the RAR archive
    • RarArchive::isBroken - Test whether an archive is broken (incomplete)
    • RarArchive::isSolid - Check whether the RAR archive is solid
    • RarArchive::open - Open RAR archive
    • RarArchive::setAllowBroken - Whether opening broken archives is allowed
    • RarArchive::__toString - Get text representation
    • RarEntry::extract - Extract entry from the archive
    • RarEntry::getAttr - Get attributes of the entry
    • RarEntry::getCrc - Get CRC of the entry
    • RarEntry::getFileTime - Get entry last modification time
    • RarEntry::getHostOs - Get entry host OS
    • RarEntry::getMethod - Get pack method of the entry
    • RarEntry::getName - Get name of the entry
    • RarEntry::getPackedSize - Get packed size of the entry
    • RarEntry::getStream - Get file handler for entry
    • RarEntry::getUnpackedSize - Get unpacked size of the entry
    • RarEntry::getVersion - Get minimum version of RAR program required to unpack the entry
    • RarEntry::isDirectory - Test whether an entry represents a directory
    • RarEntry::isEncrypted - Test whether an entry is encrypted
    • RarEntry::__toString - Get text representation of entry
    • RarException::isUsingExceptions - Check whether error handling with exceptions is in use
    • RarException::setUsingExceptions - Activate and deactivate error handling with exceptions
    • rar_wrapper_cache_stats - Cache hits and misses for the URL wrapper
    • rawurldecode - 对已编码的 URL 字符串进行解码
    • rawurlencode - 按照 RFC 3986 对 URL 进行编码
    • readdir - 从目录句柄中读取条目
    • readfile - 输出文件
    • readgzfile - Output a gz-file
    • readline - 读取一行
    • readline_add_history - 添加一行到历史
    • readline_callback_handler_install - 初始化 readline 回调接口和终端，然后打印提示并立即返回
    • readline_callback_handler_remove - 移除之前已安装的回调函数句柄并且恢复终端设置
    • readline_callback_read_char - 当一个行被接收时读取一个字符并且通知 readline 回调接口
    • readline_clear_history - 清除历史
    • readline_completion_function - 注册完成函数
    • readline_info - 获取/设置各种 readline 内部变量
    • readline_list_history - 获取历史
    • readline_on_new_line - 通知 readline 将光标移动到新行
    • readline_read_history - 读取历史
    • readline_redisplay - 重绘显示区
    • readline_write_history - 写入历史记录
    • readlink - 返回符号连接指向的目标
    • read_exif_data - 别名 exif_read_data
    • realpath - 返回规范化的绝对路径名
    • realpath_cache_get - 获取真实目录缓存的详情
    • realpath_cache_size - 获取真实路径缓冲区的大小
    • recode - 别名 recode_string
    • recode_file - Recode from file to file according to recode request
    • recode_string - Recode a string according to a recode request
    • RecursiveArrayIterator::getChildren - Returns an iterator for the current entry if it is an array or an object
    • RecursiveArrayIterator::hasChildren - Returns whether current entry is an array or an object
    • RecursiveCachingIterator::getChildren - Return the inner iterator's children as a RecursiveCachingIterator
    • RecursiveCachingIterator::hasChildren - Check whether the current element of the inner iterator has children
    • RecursiveCachingIterator::__construct - Construct
    • RecursiveCallbackFilterIterator::getChildren - Return the inner iterator's children contained in a RecursiveCallbackFilterIterator
    • RecursiveCallbackFilterIterator::hasChildren - Check whether the inner iterator's current element has children
    • RecursiveCallbackFilterIterator::__construct - Create a RecursiveCallbackFilterIterator from a RecursiveIterator
    • RecursiveDirectoryIterator::getChildren - Returns an iterator for the current entry if it is a directory
    • RecursiveDirectoryIterator::getSubPath - Get sub path
    • RecursiveDirectoryIterator::getSubPathname - Get sub path and name
    • RecursiveDirectoryIterator::hasChildren - Returns whether current entry is a directory and not '.' or '..'
    • RecursiveDirectoryIterator::key - Return path and filename of current dir entry
    • RecursiveDirectoryIterator::next - Move to next entry
    • RecursiveDirectoryIterator::rewind - Rewind dir back to the start
    • RecursiveDirectoryIterator::__construct - Constructs a RecursiveDirectoryIterator
    • RecursiveFilterIterator::getChildren - Return the inner iterator's children contained in a RecursiveFilterIterator
    • RecursiveFilterIterator::hasChildren - Check whether the inner iterator's current element has children
    • RecursiveFilterIterator::__construct - Create a RecursiveFilterIterator from a RecursiveIterator
    • RecursiveIterator::getChildren - Returns an iterator for the current entry
    • RecursiveIterator::hasChildren - Returns if an iterator can be created for the current entry
    • RecursiveIteratorIterator::beginChildren - Begin children
    • RecursiveIteratorIterator::beginIteration - Begin Iteration
    • RecursiveIteratorIterator::callGetChildren - Get children
    • RecursiveIteratorIterator::callHasChildren - Has children
    • RecursiveIteratorIterator::current - Access the current element value
    • RecursiveIteratorIterator::endChildren - End children
    • RecursiveIteratorIterator::endIteration - End Iteration
    • RecursiveIteratorIterator::getDepth - Get the current depth of the recursive iteration
    • RecursiveIteratorIterator::getInnerIterator - Get inner iterator
    • RecursiveIteratorIterator::getMaxDepth - Get max depth
    • RecursiveIteratorIterator::getSubIterator - The current active sub iterator
    • RecursiveIteratorIterator::key - Access the current key
    • RecursiveIteratorIterator::next - Move forward to the next element
    • RecursiveIteratorIterator::nextElement - Next element
    • RecursiveIteratorIterator::rewind - Rewind the iterator to the first element of the top level inner iterator
    • RecursiveIteratorIterator::setMaxDepth - Set max depth
    • RecursiveIteratorIterator::valid - Check whether the current position is valid
    • RecursiveIteratorIterator::__construct - Construct a RecursiveIteratorIterator
    • RecursiveRegexIterator::getChildren - Returns an iterator for the current entry
    • RecursiveRegexIterator::hasChildren - Returns whether an iterator can be obtained for the current entry
    • RecursiveRegexIterator::__construct - Creates a new RecursiveRegexIterator
    • RecursiveTreeIterator::beginChildren - Begin children
    • RecursiveTreeIterator::beginIteration - Begin iteration
    • RecursiveTreeIterator::callGetChildren - Get children
    • RecursiveTreeIterator::callHasChildren - Has children
    • RecursiveTreeIterator::current - Get current element
    • RecursiveTreeIterator::endChildren - End children
    • RecursiveTreeIterator::endIteration - End iteration
    • RecursiveTreeIterator::getEntry - Get current entry
    • RecursiveTreeIterator::getPostfix - Get the postfix
    • RecursiveTreeIterator::getPrefix - Get the prefix
    • RecursiveTreeIterator::key - Get the key of the current element
    • RecursiveTreeIterator::next - Move to next element
    • RecursiveTreeIterator::nextElement - Next element
    • RecursiveTreeIterator::rewind - Rewind iterator
    • RecursiveTreeIterator::setPostfix - Set postfix
    • RecursiveTreeIterator::setPrefixPart - Set a part of the prefix
    • RecursiveTreeIterator::valid - Check validity
    • RecursiveTreeIterator::__construct - Construct a RecursiveTreeIterator
    • Reflection::export - 导出
    • Reflection::getModifierNames - 获取修饰符的名称
    • ReflectionAttribute::getArguments - 获取传递给属性的参数
    • ReflectionAttribute::getName - 获取属性名称
    • ReflectionAttribute::getTarget - 返回属性的目标位掩码
    • ReflectionAttribute::isRepeated - 返回该名称的属性是否已重复出现在代码元素上
    • ReflectionAttribute::newInstance - 实例化由 ReflectionAttribute 类和参数表示的属性类
    • ReflectionAttribute::__construct - 禁止直接实例化的私有构造函数
    • ReflectionClass::export - 导出类
    • ReflectionClass::getAttributes - 获取所有属性
    • ReflectionClass::getConstant - 获取已定义的常量
    • ReflectionClass::getConstants - 获取常量
    • ReflectionClass::getConstructor - 获取类的构造函数
    • ReflectionClass::getDefaultProperties - 获取默认属性
    • ReflectionClass::getDocComment - 获取文档注释
    • ReflectionClass::getEndLine - 获取最后一行的行数
    • ReflectionClass::getExtension - 根据已定义的类获取所在扩展的 ReflectionExtension 对象
    • ReflectionClass::getExtensionName - 获取定义的类所在的扩展的名称
    • ReflectionClass::getFileName - 获取定义类的文件名
    • ReflectionClass::getInterfaceNames - 获取接口（interface）名称
    • ReflectionClass::getInterfaces - 获取接口
    • ReflectionClass::getMethod - 获取类方法的 ReflectionMethod
    • ReflectionClass::getMethods - 获取方法的数组
    • ReflectionClass::getModifiers - 获取类的修饰符
    • ReflectionClass::getName - 获取类名
    • ReflectionClass::getNamespaceName - 获取命名空间的名称
    • ReflectionClass::getParentClass - 获取父类
    • ReflectionClass::getProperties - 获取属性
    • ReflectionClass::getProperty - 获取类的一个属性的 ReflectionProperty
    • ReflectionClass::getReflectionConstant - Gets a ReflectionClassConstant for a class's constant
    • ReflectionClass::getReflectionConstants - Gets class constants
    • ReflectionClass::getShortName - 获取短名
    • ReflectionClass::getStartLine - 获取起始行号
    • ReflectionClass::getStaticProperties - 获取静态（static）属性
    • ReflectionClass::getStaticPropertyValue - 获取静态（static）属性的值
    • ReflectionClass::getTraitAliases - 返回 trait 别名数组
    • ReflectionClass::getTraitNames - 返回这个类所使用 traits 的名称的数组
    • ReflectionClass::getTraits - 返回这个类所使用的 traits 数组
    • ReflectionClass::hasConstant - 检查常量是否已经定义
    • ReflectionClass::hasMethod - 检查方法是否已定义
    • ReflectionClass::hasProperty - 检查属性是否已定义
    • ReflectionClass::implementsInterface - 实现接口
    • ReflectionClass::inNamespace - 检查是否位于命名空间中
    • ReflectionClass::isAbstract - 检查类是否是抽象类（abstract）
    • ReflectionClass::isAnonymous - 检查类是否是匿名类
    • ReflectionClass::isCloneable - 返回了一个类是否可复制
    • ReflectionClass::isEnum - Returns whether this is an enum
    • ReflectionClass::isFinal - 检查类是否声明为 final
    • ReflectionClass::isInstance - 检查类的实例
    • ReflectionClass::isInstantiable - 检查类是否可实例化
    • ReflectionClass::isInterface - 检查类是否是一个接口（interface）
    • ReflectionClass::isInternal - 检查类是否由扩展或核心在内部定义
    • ReflectionClass::isIterable - Check whether this class is iterable
    • ReflectionClass::isIterateable - 别名 ReflectionClass::isIterable
    • ReflectionClass::isReadOnly - Checks if class is readonly
    • ReflectionClass::isSubclassOf - 检查是否为子类
    • ReflectionClass::isTrait - 返回了是否是 trait
    • ReflectionClass::isUserDefined - 检查是否由用户定义的
    • ReflectionClass::newInstance - 从指定的参数创建新类实例
    • ReflectionClass::newInstanceArgs - 从给出的参数创建一个新的类实例
    • ReflectionClass::newInstanceWithoutConstructor - 创建新的类实例而不调用它的构造函数
    • ReflectionClass::setStaticPropertyValue - 设置静态属性的值
    • ReflectionClass::__construct - 初始化 ReflectionClass 类
    • ReflectionClass::__toString - 返回 ReflectionClass 对象字符串的表示形式
    • ReflectionClassConstant::export - Export
    • ReflectionClassConstant::getAttributes - Gets Attributes
    • ReflectionClassConstant::getDeclaringClass - Gets declaring class
    • ReflectionClassConstant::getDocComment - Gets doc comments
    • ReflectionClassConstant::getModifiers - Gets the class constant modifiers
    • ReflectionClassConstant::getName - Get name of the constant
    • ReflectionClassConstant::getValue - Gets value
    • ReflectionClassConstant::isEnumCase - Checks if class constant is an Enum case
    • ReflectionClassConstant::isFinal - Checks if class constant is final
    • ReflectionClassConstant::isPrivate - Checks if class constant is private
    • ReflectionClassConstant::isProtected - Checks if class constant is protected
    • ReflectionClassConstant::isPublic - Checks if class constant is public
    • ReflectionClassConstant::__construct - Constructs a ReflectionClassConstant
    • ReflectionClassConstant::__toString - Returns the string representation of the ReflectionClassConstant object
    • ReflectionEnum::getBackingType - 获取枚举回退的类型
    • ReflectionEnum::getCase - 返回指定的枚举条目
    • ReflectionEnum::getCases - 返回枚举中的所有条目的清单
    • ReflectionEnum::hasCase - 在枚举上检测条目
    • ReflectionEnum::isBacked - 检测 Enum 是否为回退（Backed）Enum
    • ReflectionEnum::__construct - 实例化 ReflectionEnum 对象
    • ReflectionEnumBackedCase::getBackingValue - 获取枚举条目回退的标量值
    • ReflectionEnumBackedCase::__construct - Instantiates a ReflectionEnumBackedCase object
    • ReflectionEnumUnitCase::getEnum - 获取该枚举条目的反射
    • ReflectionEnumUnitCase::getValue - 获取反射对象描述的枚举条目对象
    • ReflectionEnumUnitCase::__construct - Instantiates a ReflectionEnumUnitCase object
    • ReflectionExtension::export - Export
    • ReflectionExtension::getClasses - 获取类列表
    • ReflectionExtension::getClassNames - 获取类名列表
    • ReflectionExtension::getConstants - 获取常量
    • ReflectionExtension::getDependencies - 获取依赖
    • ReflectionExtension::getFunctions - 获取扩展中的函数
    • ReflectionExtension::getINIEntries - 获取 ini 配置
    • ReflectionExtension::getName - 获取扩展名称
    • ReflectionExtension::getVersion - 获取扩展版本
    • ReflectionExtension::info - 输出扩展信息
    • ReflectionExtension::isPersistent - 返回扩展是否持久化的
    • ReflectionExtension::isTemporary - 返回扩展是否是临时载入
    • ReflectionExtension::__clone - 克隆
    • ReflectionExtension::__construct - 构造 ReflectionExtension
    • ReflectionExtension::__toString - 生成字符串
    • ReflectionFiber::getCallable - Gets the callable used to create the Fiber
    • ReflectionFiber::getExecutingFile - Get the file name of the current execution point
    • ReflectionFiber::getExecutingLine - Get the line number of the current execution point
    • ReflectionFiber::getFiber - Get the reflected Fiber instance
    • ReflectionFiber::getTrace - Get the backtrace of the current execution point
    • ReflectionFiber::__construct - Constructs a ReflectionFiber object
    • ReflectionFunction::export - Exports function
    • ReflectionFunction::getClosure - Returns a dynamically created closure for the function
    • ReflectionFunction::invoke - Invokes function
    • ReflectionFunction::invokeArgs - Invokes function args
    • ReflectionFunction::isAnonymous - Checks if a function is anonymous
    • ReflectionFunction::isDisabled - Checks if function is disabled
    • ReflectionFunction::__construct - Constructs a ReflectionFunction object
    • ReflectionFunction::__toString - Returns the string representation of the ReflectionFunction object
    • ReflectionFunctionAbstract::getAttributes - Gets Attributes
    • ReflectionFunctionAbstract::getClosureScopeClass - Returns the scope class associated with the closure
    • ReflectionFunctionAbstract::getClosureThis - 返回本身的匿名函数
    • ReflectionFunctionAbstract::getClosureUsedVariables - Returns an array of the used variables in the Closure
    • ReflectionFunctionAbstract::getDocComment - 获取注释内容
    • ReflectionFunctionAbstract::getEndLine - 获取结束行号
    • ReflectionFunctionAbstract::getExtension - 获取扩展信息
    • ReflectionFunctionAbstract::getExtensionName - 获取扩展名称
    • ReflectionFunctionAbstract::getFileName - 获取文件名称
    • ReflectionFunctionAbstract::getName - 获取函数名称
    • ReflectionFunctionAbstract::getNamespaceName - 获取命名空间
    • ReflectionFunctionAbstract::getNumberOfParameters - 获取参数数目
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters - 获取必须输入参数个数
    • ReflectionFunctionAbstract::getParameters - 获取参数
    • ReflectionFunctionAbstract::getReturnType - Gets the specified return type of a function
    • ReflectionFunctionAbstract::getShortName - 获取函数短名称
    • ReflectionFunctionAbstract::getStartLine - 获取开始行号
    • ReflectionFunctionAbstract::getStaticVariables - 获取静态变量
    • ReflectionFunctionAbstract::getTentativeReturnType - Returns the tentative return type associated with the function
    • ReflectionFunctionAbstract::hasReturnType - Checks if the function has a specified return type
    • ReflectionFunctionAbstract::hasTentativeReturnType - Returns whether the function has a tentative return type
    • ReflectionFunctionAbstract::inNamespace - 检查是否处于命名空间
    • ReflectionFunctionAbstract::isClosure - 检查是否是匿名函数
    • ReflectionFunctionAbstract::isDeprecated - 检查是否已经弃用
    • ReflectionFunctionAbstract::isGenerator - 判断函数是否是一个生成器函数
    • ReflectionFunctionAbstract::isInternal - 判断函数是否是内置函数
    • ReflectionFunctionAbstract::isStatic - 判断函数是否为 static
    • ReflectionFunctionAbstract::isUserDefined - 检查是否是用户定义
    • ReflectionFunctionAbstract::isVariadic - Checks if the function is variadic
    • ReflectionFunctionAbstract::returnsReference - 检查是否返回引用
    • ReflectionFunctionAbstract::__clone - 复制函数
    • ReflectionFunctionAbstract::__toString - 返回表示 ReflectionFunctionAbstract 对象的字符串
    • ReflectionGenerator::getExecutingFile - Gets the file name of the currently executing generator
    • ReflectionGenerator::getExecutingGenerator - Gets the executing Generator object
    • ReflectionGenerator::getExecutingLine - Gets the currently executing line of the generator
    • ReflectionGenerator::getFunction - Gets the function name of the generator
    • ReflectionGenerator::getThis - Gets the $this value of the generator
    • ReflectionGenerator::getTrace - Gets the trace of the executing generator
    • ReflectionGenerator::__construct - Constructs a ReflectionGenerator object
    • ReflectionIntersectionType::getTypes - 返回包含在交集类型中的类型
    • ReflectionMethod::createFromMethodName - Creates a new ReflectionMethod
    • ReflectionMethod::export - 导出 reflection 方法
    • ReflectionMethod::getClosure - 返回动态建立的方法调用接口（译者注：可以使用这个返回值直接调用非公开方法）
    • ReflectionMethod::getDeclaringClass - 获取被反射的方法所在类的反射实例
    • ReflectionMethod::getModifiers - 获取方法的修饰符
    • ReflectionMethod::getPrototype - 返回方法原型 (如果存在)
    • ReflectionMethod::hasPrototype - Returns whether a method has a prototype
    • ReflectionMethod::invoke - Invoke
    • ReflectionMethod::invokeArgs - 带参数执行
    • ReflectionMethod::isAbstract - 判断方法是否是抽象方法
    • ReflectionMethod::isConstructor - 判断方法是否是构造方法
    • ReflectionMethod::isDestructor - 判断方法是否是析构方法
    • ReflectionMethod::isFinal - 判断方法是否定义 final
    • ReflectionMethod::isPrivate - 判断方法是否是私有
    • ReflectionMethod::isProtected - 判断方法是否是 protected
    • ReflectionMethod::isPublic - 判断方法是否是 public
    • ReflectionMethod::setAccessible - 设置方法是否可访问
    • ReflectionMethod::__construct - 构造 ReflectionMethod
    • ReflectionMethod::__toString - 返回反射方法对象的字符串表达
    • ReflectionNamedType::getName - 以字符串形式获取类型的名称
    • ReflectionNamedType::isBuiltin - 检查它是否是内置类型
    • ReflectionObject::export - Export
    • ReflectionObject::__construct - Constructs a ReflectionObject
    • ReflectionParameter::allowsNull - Checks if null is allowed
    • ReflectionParameter::canBePassedByValue - Returns whether this parameter can be passed by value
    • ReflectionParameter::export - Exports
    • ReflectionParameter::getAttributes - Gets Attributes
    • ReflectionParameter::getClass - 获取参数的 ReflectionClass 对象或为 null
    • ReflectionParameter::getDeclaringClass - Gets declaring class
    • ReflectionParameter::getDeclaringFunction - Gets declaring function
    • ReflectionParameter::getDefaultValue - Gets default parameter value
    • ReflectionParameter::getDefaultValueConstantName - Returns the default value's constant name if default value is constant or null
    • ReflectionParameter::getName - Gets parameter name
    • ReflectionParameter::getPosition - Gets parameter position
    • ReflectionParameter::getType - Gets a parameter's type
    • ReflectionParameter::hasType - Checks if parameter has a type
    • ReflectionParameter::isArray - Checks if parameter expects an array
    • ReflectionParameter::isCallable - Returns whether parameter MUST be callable
    • ReflectionParameter::isDefaultValueAvailable - 检查默认是否可用
    • ReflectionParameter::isDefaultValueConstant - Returns whether the default value of this parameter is a constant
    • ReflectionParameter::isOptional - Checks if optional
    • ReflectionParameter::isPassedByReference - Checks if passed by reference
    • ReflectionParameter::isVariadic - Checks if the parameter is variadic
    • ReflectionParameter::__clone - Clone
    • ReflectionParameter::__construct - Construct
    • ReflectionParameter::__toString - To string
    • ReflectionProperty::export - Export
    • ReflectionProperty::getAttributes - Gets Attributes
    • ReflectionProperty::getDeclaringClass - Gets declaring class
    • ReflectionProperty::getDefaultValue - Returns the default value declared for a property
    • ReflectionProperty::getDocComment - Gets the property doc comment
    • ReflectionProperty::getModifiers - Gets the property modifiers
    • ReflectionProperty::getName - Gets property name
    • ReflectionProperty::getType - Gets a property's type
    • ReflectionProperty::getValue - Gets value
    • ReflectionProperty::hasDefaultValue - Checks if property has a default value declared
    • ReflectionProperty::hasType - Checks if property has a type
    • ReflectionProperty::isDefault - Checks if property is a default property
    • ReflectionProperty::isInitialized - Checks whether a property is initialized
    • ReflectionProperty::isPrivate - Checks if property is private
    • ReflectionProperty::isPromoted - Checks if property is promoted
    • ReflectionProperty::isProtected - Checks if property is protected
    • ReflectionProperty::isPublic - Checks if property is public
    • ReflectionProperty::isReadOnly - 检查属性是否为只读
    • ReflectionProperty::isStatic - Checks if property is static
    • ReflectionProperty::setAccessible - Set property accessibility
    • ReflectionProperty::setValue - Set property value
    • ReflectionProperty::__clone - Clone
    • ReflectionProperty::__construct - Construct a ReflectionProperty object
    • ReflectionProperty::__toString - To string
    • ReflectionReference::fromArrayElement - 从数组元素创建一个 ReflectionReference
    • ReflectionReference::getId - 获取引用的唯一 ID
    • ReflectionReference::__construct - 私有构造函数以禁用直接实例化
    • ReflectionType::allowsNull - Checks if null is allowed
    • ReflectionType::__toString - To string
    • ReflectionUnionType::getTypes - 返回联合类型中包含的类型
    • ReflectionZendExtension::export - Export
    • ReflectionZendExtension::getAuthor - Gets author
    • ReflectionZendExtension::getCopyright - Gets copyright
    • ReflectionZendExtension::getName - Gets name
    • ReflectionZendExtension::getURL - Gets URL
    • ReflectionZendExtension::getVersion - Gets version
    • ReflectionZendExtension::__clone - Clone handler
    • ReflectionZendExtension::__construct - Constructs a ReflectionZendExtension object
    • ReflectionZendExtension::__toString - To string handler
    • Reflector::export - Exports
    • RegexIterator::accept - Get accept status
    • RegexIterator::getFlags - Get flags
    • RegexIterator::getMode - Returns operation mode
    • RegexIterator::getPregFlags - Returns the regular expression flags
    • RegexIterator::getRegex - Returns current regular expression
    • RegexIterator::setFlags - Sets the flags
    • RegexIterator::setMode - Sets the operation mode
    • RegexIterator::setPregFlags - Sets the regular expression flags
    • RegexIterator::__construct - Create a new RegexIterator
    • register_shutdown_function - 注册在关闭时执行的函数
    • register_tick_function - 注册一个函数以便在每个 tick 上执行
    • rename - 重命名一个文件或目录
    • reset - 将数组的内部指针指向第一个单元
    • ResourceBundle::count - Get number of elements in the bundle
    • ResourceBundle::create - Create a resource bundle
    • ResourceBundle::get - Get data from the bundle
    • ResourceBundle::getErrorCode - Get bundle's last error code
    • ResourceBundle::getErrorMessage - Get bundle's last error message
    • ResourceBundle::getLocales - Get supported locales
    • restore_error_handler - 还原之前的错误处理函数
    • restore_exception_handler - 恢复之前定义过的异常处理函数。
    • restore_include_path - 还原 include_path 配置选项的值
    • Result::getAffectedItemsCount - Get affected row count
    • Result::getAutoIncrementValue - Get autoincremented value
    • Result::getGeneratedIds - Get generated ids
    • Result::getWarnings - Get warnings from last operation
    • Result::getWarningsCount - Get warning count from last operation
    • Result::__construct - Result constructor
    • ReturnTypeWillChange::__construct - 构造新的 ReturnTypeWillChange 注解实例
    • rewind - 倒回文件指针的位置
    • rewinddir - 倒回目录句柄
    • rmdir - 删除目录
    • rnp_backend_string - Return cryptographic backend library name
    • rnp_backend_version - Return cryptographic backend library version
    • rnp_decrypt - Decrypt PGP message
    • rnp_dump_packets - Dump OpenPGP packets stream information in humand-readable format
    • rnp_dump_packets_to_json - Dump OpenPGP packets stream information to the JSON string
    • rnp_ffi_create - Create the top-level object used for interacting with the library
    • rnp_ffi_destroy - Destroy the top-level object used for interacting with the library
    • rnp_ffi_set_pass_provider - Set password provider callback function
    • rnp_import_keys - Import keys from PHP string to the keyring and receive JSON describing new/updated keys
    • rnp_import_signatures - Import standalone signatures to the keyring and receive JSON describing updated keys
    • rnp_key_export - Export a key
    • rnp_key_export_autocrypt - Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)
    • rnp_key_export_revocation - Generate and export primary key revocation signature
    • rnp_key_get_info - Get information about the key
    • rnp_key_remove - Remove a key from keyring(s)
    • rnp_key_revoke - Revoke a key or subkey by generating and adding revocation signature
    • rnp_list_keys - Enumerate all keys present in a keyring by specified identifer type
    • rnp_load_keys - Load keys from PHP string
    • rnp_load_keys_from_path - Load keys from specified path
    • rnp_locate_key - Search for the key
    • rnp_op_encrypt - Encrypt message
    • rnp_op_generate_key - Generate key
    • rnp_op_sign - Perform signing operation on a binary data, return embedded signature(s)
    • rnp_op_sign_cleartext - Perform signing operation on a textual data, return cleartext signed message
    • rnp_op_sign_detached - Perform signing operation, return detached signature(s)
    • rnp_op_verify - Verify embedded or cleartext signatures
    • rnp_op_verify_detached - Verify detached signatures
    • rnp_save_keys - Save keys to PHP string
    • rnp_save_keys_to_path - Save keys to specified path
    • rnp_supported_features - Get supported features in JSON format
    • rnp_version_string - RNP library version
    • rnp_version_string_full - Full version string of RNP library
    • round - 对浮点数进行四舍五入
    • RowResult::fetchAll - Get all rows from result
    • RowResult::fetchOne - Get row from result
    • RowResult::getColumnNames - Get all column names
    • RowResult::getColumns - Get column metadata
    • RowResult::getColumnsCount - Get column count
    • RowResult::getWarnings - Get warnings from last operation
    • RowResult::getWarningsCount - Get warning count from last operation
    • RowResult::__construct - RowResult constructor
    • rpmaddtag - Add tag retrieved in query
    • rpmdbinfo - Get information from installed RPM
    • rpmdbsearch - Search RPM packages
    • rpmgetsymlink - Get target of a symlink
    • rpminfo - Get information from a RPM file
    • rpmvercmp - RPM version comparison
    • RRDCreator::addArchive - Adds RRA - archive of data values for each data source
    • RRDCreator::addDataSource - Adds data source definition for RRD database
    • RRDCreator::save - Saves the RRD database to a file
    • RRDCreator::__construct - Creates new RRDCreator instance
    • rrdc_disconnect - 关闭所有未完成的 rrd 缓存守护进程连接
    • RRDGraph::save - Saves the result of query into image
    • RRDGraph::saveVerbose - Saves the RRD database query into image and returns the verbose information about generated graph
    • RRDGraph::setOptions - Sets the options for rrd graph export
    • RRDGraph::__construct - Creates new RRDGraph instance
    • RRDUpdater::update - Update the RRD database file
    • RRDUpdater::__construct - Creates new RRDUpdater instance
    • rrd_create - 创建 rrd 数据库文件
    • rrd_error - 获取最新的错误信息
    • rrd_fetch - 获取图表数据数组
    • rrd_first - 从 rrd 文件中获取第一个样本的时间戳
    • rrd_graph - 从数据创建图像
    • rrd_info - 获取 rrd 文件有关信息
    • rrd_last - 获取最后一个样本的 Unix 时间戳
    • rrd_lastupdate - 获取有关上次更新数据的信息
    • rrd_restore - 从 XML 转储中恢复 RRD 文件
    • rrd_tune - 调整 RRD 数据库文件头选项
    • rrd_update - 更新 RRD 数据库
    • rrd_version - 获取底层 rrdtool 库的相关信息
    • rrd_xport - 导出 RRD 数据库的相关信息
    • rsort - 对数组降序排序
    • rtrim - 删除字符串末端的空白字符（或者其他字符）
    • runkit7_constant_add - Similar to define(), but allows defining in class definitions as well
    • runkit7_constant_redefine - Redefine an already defined constant
    • runkit7_constant_remove - Remove/Delete an already defined constant
    • runkit7_function_add - Add a new function, similar to create_function
    • runkit7_function_copy - Copy a function to a new function name
    • runkit7_function_redefine - Replace a function definition with a new implementation
    • runkit7_function_remove - Remove a function definition
    • runkit7_function_rename - Change a function's name
    • runkit7_import - Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit7_method_add - Dynamically adds a new method to a given class
    • runkit7_method_copy - Copies a method from class to another
    • runkit7_method_redefine - Dynamically changes the code of the given method
    • runkit7_method_remove - Dynamically removes the given method
    • runkit7_method_rename - Dynamically changes the name of the given method
    • runkit7_object_id - Return the integer object handle for given object
    • runkit7_superglobals - Return numerically indexed array of registered superglobals
    • runkit7_zval_inspect - Returns information about the passed in value with data types, reference counts, etc
  • s
    • sapi_windows_cp_conv - Convert string from one codepage to another
    • sapi_windows_cp_get - Get current codepage
    • sapi_windows_cp_is_utf8 - Indicates whether the codepage is UTF-8 compatible
    • sapi_windows_cp_set - Set process codepage
    • sapi_windows_generate_ctrl_event - Send a CTRL event to another process
    • sapi_windows_set_ctrl_handler - Set or remove a CTRL event handler
    • sapi_windows_vt100_support - Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.
    • scandir - 列出指定路径中的文件和目录
    • Schema::createCollection - Add collection to schema
    • Schema::dropCollection - Drop collection from schema
    • Schema::existsInDatabase - Check if exists in database
    • Schema::getCollection - Get collection from schema
    • Schema::getCollectionAsTable - Get collection as a Table object
    • Schema::getCollections - Get all schema collections
    • Schema::getName - Get schema name
    • Schema::getSession - Get schema session
    • Schema::getTable - Get schema table
    • Schema::getTables - Get schema tables
    • Schema::__construct - Schema constructor
    • SchemaObject::getSchema - Get schema object
    • scoutapm_get_calls - Returns a list of instrumented calls that have occurred
    • scoutapm_list_instrumented_functions - List functions scoutapm will instrument.
    • SeasLog::alert - 记录 alert 日志
    • SeasLog::analyzerCount - Get log count by level, log_path and key_word
    • SeasLog::analyzerDetail - Get log detail by level, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream - Manually release stream flow from logger
    • SeasLog::critical - 记录 critical 日志
    • SeasLog::debug - 记录 debug 日志
    • SeasLog::emergency - 记录 emergency 日志
    • SeasLog::error - 记录 error 日志
    • SeasLog::flushBuffer - 将日志缓存刷新到介质中，文件介质，或者发送到远端的 TCP/UDP 服务地址
    • SeasLog::getBasePath - 获得 SeasLog 根目录
    • SeasLog::getBuffer - 获取内存中的日志缓存数组
    • SeasLog::getBufferEnabled - Determin if buffer enabled
    • SeasLog::getDatetimeFormat - 获取 SeasLog 日期格式
    • SeasLog::getLastLogger - 获得 SeasLog 最近的一次 Logger 名称
    • SeasLog::getRequestID - 获得当前 SeasLog 中用于区分请求的 request_id
    • SeasLog::getRequestVariable - Get SeasLog request variable
    • SeasLog::info - Record info log information
    • SeasLog::log - 公共的日志记录函数
    • SeasLog::notice - 记录 notice 日志
    • SeasLog::setBasePath - 设置 SeasLog 根目录
    • SeasLog::setDatetimeFormat - 设置 SeasLog 日期格式
    • SeasLog::setLogger - 设置 SeasLog 的 Logger 名
    • SeasLog::setRequestID - 设置可以由 SeasLog 用于区分请求的 request_id
    • SeasLog::setRequestVariable - Manually set SeasLog request variable
    • SeasLog::warning - Record warning log information
    • SeasLog::__construct - Description
    • SeasLog::__destruct - Description
    • seaslog_get_author - 获取 SeasLog 作者
    • seaslog_get_version - 获取 SeasLog 的版本
    • SeekableIterator::seek - Seeks to a position
    • sem_acquire - Acquire a semaphore
    • sem_get - Get a semaphore id
    • sem_release - Release a semaphore
    • sem_remove - Remove a semaphore
    • SensitiveParameter::__construct - Construct a new SensitiveParameter attribute instance
    • SensitiveParameterValue::getValue - Returns the sensitive value
    • SensitiveParameterValue::__construct - Constructs a new SensitiveParameterValue object
    • SensitiveParameterValue::__debugInfo - Protects the sensitive value against accidental exposure
    • Serializable::serialize - 对象的字符串表示
    • Serializable::unserialize - 构造对象
    • serialize - 生成值的可存储表示
    • Session::close - Close session
    • Session::commit - Commit transaction
    • Session::createSchema - Create new schema
    • Session::dropSchema - Drop a schema
    • Session::generateUUID - Get new UUID
    • Session::getDefaultSchema - Get default schema name
    • Session::getSchema - Get a new schema object
    • Session::getSchemas - Get the schemas
    • Session::getServerVersion - Get server version
    • Session::listClients - Get client list
    • Session::quoteName - Add quotes
    • Session::releaseSavepoint - Release set savepoint
    • Session::rollback - Rollback transaction
    • Session::rollbackTo - Rollback transaction to savepoint
    • Session::setSavepoint - Create savepoint
    • Session::sql - Create SQL query
    • Session::startTransaction - Start transaction
    • Session::__construct - Description constructor
    • SessionHandler::close - Close the session
    • SessionHandler::create_sid - Return a new session ID
    • SessionHandler::destroy - Destroy a session
    • SessionHandler::gc - Cleanup old sessions
    • SessionHandler::open - Initialize session
    • SessionHandler::read - Read session data
    • SessionHandler::write - Write session data
    • SessionHandlerInterface::close - Close the session
    • SessionHandlerInterface::destroy - Destroy a session
    • SessionHandlerInterface::gc - Cleanup old sessions
    • SessionHandlerInterface::open - Initialize session
    • SessionHandlerInterface::read - Read session data
    • SessionHandlerInterface::write - Write session data
    • SessionIdInterface::create_sid - Create session ID
    • SessionUpdateTimestampHandlerInterface::updateTimestamp - Update timestamp
    • SessionUpdateTimestampHandlerInterface::validateId - Validate ID
    • session_abort - Discard session array changes and finish session
    • session_cache_expire - 返回/设置当前缓存的到期时间
    • session_cache_limiter - 读取/设置缓存限制器
    • session_commit - session_write_close 的别名
    • session_create_id - Create new session id
    • session_decode - 解码会话数据
    • session_destroy - 销毁一个会话中的全部数据
    • session_encode - 将当前会话数据编码为字符串
    • session_gc - Perform session data garbage collection
    • session_get_cookie_params - 获取会话 cookie 参数
    • session_id - 获取/设置当前会话 ID
    • session_module_name - 获取/设置会话模块名称
    • session_name - 读取/设置会话名称
    • session_regenerate_id - 使用新生成的会话 ID 更新现有会话 ID
    • session_register_shutdown - 关闭会话
    • session_reset - Re-initialize session array with original values
    • session_save_path - 读取/设置当前会话的保存路径
    • session_set_cookie_params - 设置会话 cookie 参数
    • session_set_save_handler - 设置用户自定义会话存储函数
    • session_start - 启动新会话或者重用现有会话
    • session_status - 返回当前会话状态
    • session_unset - 释放所有的会话变量
    • session_write_close - Write session data and end session
    • setcookie - 发送 Cookie
    • setlocale - 设置区域信息
    • setrawcookie - 发送未经 URL 编码的 cookie
    • settype - 设置变量的类型
    • set_error_handler - 设置用户自定义的错误处理函数
    • set_exception_handler - 设置用户自定义的异常处理函数
    • set_file_buffer - stream_set_write_buffer 的别名
    • set_include_path - 设置 include_path 配置选项
    • set_time_limit - 设置脚本最大执行时间
    • sha1 - 计算字符串的 sha1 散列值
    • sha1_file - 计算文件的 sha1 散列值
    • shell_exec - 通过 shell 执行命令并将完整的输出以字符串的方式返回
    • shmop_close - Close shared memory block
    • shmop_delete - Delete shared memory block
    • shmop_open - Create or open shared memory block
    • shmop_read - Read data from shared memory block
    • shmop_size - Get size of shared memory block
    • shmop_write - Write data into shared memory block
    • shm_attach - Creates or open a shared memory segment
    • shm_detach - Disconnects from shared memory segment
    • shm_get_var - Returns a variable from shared memory
    • shm_has_var - Check whether a specific entry exists
    • shm_put_var - Inserts or updates a variable in shared memory
    • shm_remove - Removes shared memory from Unix systems
    • shm_remove_var - Removes a variable from shared memory
    • show_source - 别名 highlight_file
    • shuffle - 打乱数组
    • simdjson_decode - Decodes a JSON string
    • simdjson_is_valid - Check if a JSON string is valid
    • simdjson_key_count - Returns the value at a JSON pointer.
    • simdjson_key_exists - Check if the JSON contains the value referred to by a JSON pointer.
    • simdjson_key_value - Decodes the value of a JSON string located at the requested JSON pointer.
    • similar_text - 计算两个字符串的相似度
    • SimpleXMLElement::addAttribute - Adds an attribute to the SimpleXML element
    • SimpleXMLElement::addChild - Adds a child element to the XML node
    • SimpleXMLElement::asXML - Return a well-formed XML string based on SimpleXML element
    • SimpleXMLElement::attributes - Identifies an element's attributes
    • SimpleXMLElement::children - Finds children of given node
    • SimpleXMLElement::count - Counts the children of an element
    • SimpleXMLElement::current - Returns the current element
    • SimpleXMLElement::getChildren - Returns the sub-elements of the current element
    • SimpleXMLElement::getDocNamespaces - Returns namespaces declared in document
    • SimpleXMLElement::getName - Gets the name of the XML element
    • SimpleXMLElement::getNamespaces - Returns namespaces used in document
    • SimpleXMLElement::hasChildren - Checks whether the current element has sub elements
    • SimpleXMLElement::key - Return current key
    • SimpleXMLElement::next - Move to next element
    • SimpleXMLElement::registerXPathNamespace - Creates a prefix/ns context for the next XPath query
    • SimpleXMLElement::rewind - Rewind to the first element
    • SimpleXMLElement::saveXML - 别名 SimpleXMLElement::asXML
    • SimpleXMLElement::valid - Check whether the current element is valid
    • SimpleXMLElement::xpath - Runs XPath query on XML data
    • SimpleXMLElement::__construct - Creates a new SimpleXMLElement object
    • SimpleXMLElement::__toString - Returns the string content
    • simplexml_import_dom - Get a SimpleXMLElement object from a DOM node
    • simplexml_load_file - Interprets an XML file into an object
    • simplexml_load_string - Interprets a string of XML into an object
    • sin - 正弦
    • sinh - 双曲正弦
    • sizeof - count 的别名
    • sleep - 延缓执行
    • snmp2_get - Fetch an SNMP object
    • snmp2_getnext - Fetch the SNMP object which follows the given object id
    • snmp2_real_walk - Return all objects including their respective object ID within the specified one
    • snmp2_set - Set the value of an SNMP object
    • snmp2_walk - Fetch all the SNMP objects from an agent
    • snmp3_get - Fetch an SNMP object
    • snmp3_getnext - Fetch the SNMP object which follows the given object id
    • snmp3_real_walk - Return all objects including their respective object ID within the specified one
    • snmp3_set - Set the value of an SNMP object
    • snmp3_walk - Fetch all the SNMP objects from an agent
    • SNMP::close - Close SNMP session
    • SNMP::get - Fetch an SNMP object
    • SNMP::getErrno - Get last error code
    • SNMP::getError - Get last error message
    • SNMP::getnext - Fetch an SNMP object which follows the given object id
    • SNMP::set - Set the value of an SNMP object
    • SNMP::setSecurity - Configures security-related SNMPv3 session parameters
    • SNMP::walk - Fetch SNMP object subtree
    • SNMP::__construct - Creates SNMP instance representing session to remote SNMP agent
    • snmpget - 获取 SNMP 对象
    • snmpgetnext - Fetch the SNMP object which follows the given object id
    • snmprealwalk - 返回指定的所有对象，包括它们各自的对象 ID
    • snmpset - 设置 SNMP 对象的值
    • snmpwalk - 从代理获取所有 SNMP 对象
    • snmpwalkoid - 查询有关网络实体的信息树
    • snmp_get_quick_print - 获取当前 NET-SNMP 库的 quick_print 设置的值
    • snmp_get_valueretrieval - Return the method how the SNMP values will be returned
    • snmp_read_mib - Reads and parses a MIB file into the active MIB tree
    • snmp_set_enum_print - Return all values that are enums with their enum value instead of the raw integer
    • snmp_set_oid_numeric_print - 别名 snmp_set_oid_output_format
    • snmp_set_oid_output_format - Set the OID output format
    • snmp_set_quick_print - 在 NET-SNMP 库中设置 enable 的值
    • snmp_set_valueretrieval - Specify the method how the SNMP values will be returned
    • SoapClient::__call - Calls a SOAP function (deprecated)
    • SoapClient::__construct - SoapClient constructor
    • SoapClient::__doRequest - Performs a SOAP request
    • SoapClient::__getCookies - Get list of cookies
    • SoapClient::__getFunctions - Returns list of available SOAP functions
    • SoapClient::__getLastRequest - Returns last SOAP request
    • SoapClient::__getLastRequestHeaders - Returns the SOAP headers from the last request
    • SoapClient::__getLastResponse - Returns last SOAP response
    • SoapClient::__getLastResponseHeaders - Returns the SOAP headers from the last response
    • SoapClient::__getTypes - Returns a list of SOAP types
    • SoapClient::__setCookie - Defines a cookie for SOAP requests
    • SoapClient::__setLocation - Sets the location of the Web service to use
    • SoapClient::__setSoapHeaders - Sets SOAP headers for subsequent calls
    • SoapClient::__soapCall - Calls a SOAP function
    • SoapFault::__construct - SoapFault constructor
    • SoapFault::__toString - Obtain a string representation of a SoapFault
    • SoapHeader::__construct - SoapHeader constructor
    • SoapParam::__construct - SoapParam constructor
    • SoapServer::addFunction - 添加一个或多个函数来处理 SOAP 请求
    • SoapServer::addSoapHeader - Add a SOAP header to the response
    • SoapServer::fault - Issue SoapServer fault indicating an error
    • SoapServer::getFunctions - Returns list of defined functions
    • SoapServer::handle - Handles a SOAP request
    • SoapServer::setClass - Sets the class which handles SOAP requests
    • SoapServer::setObject - Sets the object which will be used to handle SOAP requests
    • SoapServer::setPersistence - Sets SoapServer persistence mode
    • SoapServer::__construct - SoapServer constructor
    • SoapVar::__construct - SoapVar constructor
    • socket_accept - 接受套接字上的连接
    • socket_addrinfo_bind - 从给定的 addrinfo 创建并绑定一个套接字
    • socket_addrinfo_connect - 指定 addrinfo 创建并连接套接字
    • socket_addrinfo_explain - 获取有关 addrinfo 的信息
    • socket_addrinfo_lookup - 获取数组，包含有关给定主机名的 getaddrinfo 内容
    • socket_atmark - 确认 socket 是否处于带外数据标记
    • socket_bind - 给套接字绑定名字
    • socket_clear_error - 清除套接字或者最后的错误代码上的错误
    • socket_close - 关闭 Socket 实例
    • socket_cmsg_space - Calculate message buffer size
    • socket_connect - 开启一个套接字连接
    • socket_create - 创建一个套接字（通讯节点）
    • socket_create_listen - 在端口上打开一个套接字以接受连接
    • socket_create_pair - 创建一对彼此连接的套接字，并用数组存储
    • socket_export_stream - Export a socket into a stream that encapsulates a socket
    • socket_getopt - 别名 socket_get_option
    • socket_getpeername - 获取套接字远端名字
    • socket_getsockname - 获取套接字本地端的名字，返回主机名和端口号或是 Unix 文件系统路径，具体取决于套接字类型
    • socket_get_option - 获取套接字的套接字选项
    • socket_get_status - 别名 stream_get_meta_data
    • socket_import_stream - 导入 stream
    • socket_last_error - 返回套接字上的最后一个错误
    • socket_listen - 监听套接字的连接
    • socket_read - 从套接字中读取最大长度的数据
    • socket_recv - 从已连接的 socket 接收数据
    • socket_recvfrom - 从套接字接收数据，无论它是否是面向连接的
    • socket_recvmsg - Read a message
    • socket_select - 从给定套接字数组运行带指定超时时间的 select() 系统调用
    • socket_send - 向已连接的套接字发送数据
    • socket_sendmsg - Send a message
    • socket_sendto - 向套接字发送消息，无论它是否已建立连接
    • socket_setopt - 别名 socket_set_option
    • socket_set_block - 设置套接字为阻塞模式
    • socket_set_blocking - 别名 stream_set_blocking
    • socket_set_nonblock - 设置套接字为非阻塞模式
    • socket_set_option - 为套接字设置套接字选项
    • socket_set_timeout - 别名 stream_set_timeout
    • socket_shutdown - 关闭套接字接收或发送，或两者都关闭
    • socket_strerror - 返回描述套接字错误的字符串
    • socket_write - 向套接字写数据
    • socket_wsaprotocol_info_export - 导出 WSAPROTOCOL_INFO 结构体
    • socket_wsaprotocol_info_import - 从另一个进程导入套接字
    • socket_wsaprotocol_info_release - 释放已导出的 WSAPROTOCOL_INFO 结构体
    • sodium_add - Add large numbers
    • sodium_base642bin - Decodes a base64-encoded string into raw binary.
    • sodium_bin2base64 - Encodes a raw binary string with base64.
    • sodium_bin2hex - Encode to hexadecimal
    • sodium_compare - Compare large numbers
    • sodium_crypto_aead_aes256gcm_decrypt - Verify then decrypt a message with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_encrypt - Encrypt then authenticate with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_is_available - Check if hardware supports AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen - Generate a random AES-256-GCM key
    • sodium_crypto_aead_chacha20poly1305_decrypt - Verify then decrypt with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_encrypt - Encrypt then authenticate with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt - Verify that the ciphertext includes a valid tag
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt - Encrypt a message
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen - Generate a random ChaCha20-Poly1305 (IETF) key.
    • sodium_crypto_aead_chacha20poly1305_keygen - Generate a random ChaCha20-Poly1305 key.
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt - (Preferred) Verify then decrypt with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt - (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen - Generate a random XChaCha20-Poly1305 key.
    • sodium_crypto_auth - Compute a tag for the message
    • sodium_crypto_auth_keygen - Generate a random key for sodium_crypto_auth
    • sodium_crypto_auth_verify - Verifies that the tag is valid for the message
    • sodium_crypto_box - Authenticated public-key encryption
    • sodium_crypto_box_keypair - Randomly generate a secret key and a corresponding public key
    • sodium_crypto_box_keypair_from_secretkey_and_publickey - Create a unified keypair string from a secret key and public key
    • sodium_crypto_box_open - Authenticated public-key decryption
    • sodium_crypto_box_publickey - Extract the public key from a crypto_box keypair
    • sodium_crypto_box_publickey_from_secretkey - Calculate the public key from a secret key
    • sodium_crypto_box_seal - Anonymous public-key encryption
    • sodium_crypto_box_seal_open - Anonymous public-key decryption
    • sodium_crypto_box_secretkey - Extracts the secret key from a crypto_box keypair
    • sodium_crypto_box_seed_keypair - Deterministically derive the key pair from a single key
    • sodium_crypto_core_ristretto255_add - Adds an element
    • sodium_crypto_core_ristretto255_from_hash - Maps a vector
    • sodium_crypto_core_ristretto255_is_valid_point - Determines if a point on the ristretto255 curve
    • sodium_crypto_core_ristretto255_random - Generates a random key
    • sodium_crypto_core_ristretto255_scalar_add - Adds a scalar value
    • sodium_crypto_core_ristretto255_scalar_complement - The sodium_crypto_core_ristretto255_scalar_complement purpose
    • sodium_crypto_core_ristretto255_scalar_invert - Inverts a scalar value
    • sodium_crypto_core_ristretto255_scalar_mul - Multiplies a scalar value
    • sodium_crypto_core_ristretto255_scalar_negate - Negates a scalar value
    • sodium_crypto_core_ristretto255_scalar_random - Generates a random key
    • sodium_crypto_core_ristretto255_scalar_reduce - Reduces a scalar value
    • sodium_crypto_core_ristretto255_scalar_sub - Subtracts a scalar value
    • sodium_crypto_core_ristretto255_sub - Subtracts an element
    • sodium_crypto_generichash - Get a hash of the message
    • sodium_crypto_generichash_final - Complete the hash
    • sodium_crypto_generichash_init - Initialize a hash for streaming
    • sodium_crypto_generichash_keygen - Generate a random generichash key
    • sodium_crypto_generichash_update - Add message to a hash
    • sodium_crypto_kdf_derive_from_key - Derive a subkey
    • sodium_crypto_kdf_keygen - Generate a random root key for the KDF interface
    • sodium_crypto_kx_client_session_keys - Calculate the client-side session keys.
    • sodium_crypto_kx_keypair - Creates a new sodium keypair
    • sodium_crypto_kx_publickey - Extract the public key from a crypto_kx keypair
    • sodium_crypto_kx_secretkey - Extract the secret key from a crypto_kx keypair.
    • sodium_crypto_kx_seed_keypair - Description
    • sodium_crypto_kx_server_session_keys - Calculate the server-side session keys.
    • sodium_crypto_pwhash - Derive a key from a password, using Argon2
    • sodium_crypto_pwhash_scryptsalsa208sha256 - Derives a key from a password, using scrypt
    • sodium_crypto_pwhash_scryptsalsa208sha256_str - Get an ASCII encoded hash
    • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify - Verify that the password is a valid password verification string
    • sodium_crypto_pwhash_str - Get an ASCII-encoded hash
    • sodium_crypto_pwhash_str_needs_rehash - Determine whether or not to rehash a password
    • sodium_crypto_pwhash_str_verify - Verifies that a password matches a hash
    • sodium_crypto_scalarmult - Compute a shared secret given a user's secret key and another user's public key
    • sodium_crypto_scalarmult_base - 别名 sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_scalarmult_ristretto255 - Computes a shared secret
    • sodium_crypto_scalarmult_ristretto255_base - Calculates the public key from a secret key
    • sodium_crypto_secretbox - Authenticated shared-key encryption
    • sodium_crypto_secretbox_keygen - Generate random key for sodium_crypto_secretbox
    • sodium_crypto_secretbox_open - Authenticated shared-key decryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull - Initialize a secretstream context for decryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_push - Initialize a secretstream context for encryption
    • sodium_crypto_secretstream_xchacha20poly1305_keygen - Generate a random secretstream key.
    • sodium_crypto_secretstream_xchacha20poly1305_pull - Decrypt a chunk of data from an encrypted stream
    • sodium_crypto_secretstream_xchacha20poly1305_push - Encrypt a chunk of data so that it can safely be decrypted in a streaming API
    • sodium_crypto_secretstream_xchacha20poly1305_rekey - Explicitly rotate the key in the secretstream state
    • sodium_crypto_shorthash - Compute a short hash of a message and key
    • sodium_crypto_shorthash_keygen - Get random bytes for key
    • sodium_crypto_sign - Sign a message
    • sodium_crypto_sign_detached - Sign the message
    • sodium_crypto_sign_ed25519_pk_to_curve25519 - Convert an Ed25519 public key to a Curve25519 public key
    • sodium_crypto_sign_ed25519_sk_to_curve25519 - Convert an Ed25519 secret key to a Curve25519 secret key
    • sodium_crypto_sign_keypair - Randomly generate a secret key and a corresponding public key
    • sodium_crypto_sign_keypair_from_secretkey_and_publickey - Join a secret key and public key together
    • sodium_crypto_sign_open - Check that the signed message has a valid signature
    • sodium_crypto_sign_publickey - Extract the Ed25519 public key from a keypair
    • sodium_crypto_sign_publickey_from_secretkey - Extract the Ed25519 public key from the secret key
    • sodium_crypto_sign_secretkey - Extract the Ed25519 secret key from a keypair
    • sodium_crypto_sign_seed_keypair - Deterministically derive the key pair from a single key
    • sodium_crypto_sign_verify_detached - Verify signature for the message
    • sodium_crypto_stream - Generate a deterministic sequence of bytes from a seed
    • sodium_crypto_stream_keygen - Generate a random sodium_crypto_stream key.
    • sodium_crypto_stream_xchacha20 - Expands the key and nonce into a keystream of pseudorandom bytes
    • sodium_crypto_stream_xchacha20_keygen - Returns a secure random key
    • sodium_crypto_stream_xchacha20_xor - Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xchacha20_xor_ic - Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xor - Encrypt a message without authentication
    • sodium_hex2bin - Decodes a hexadecimally encoded binary string
    • sodium_increment - Increment large number
    • sodium_memcmp - Test for equality in constant-time
    • sodium_memzero - Overwrite a string with NUL characters
    • sodium_pad - Add padding data
    • sodium_unpad - Remove padding data
    • SolrClient::addDocument - Adds a document to the index
    • SolrClient::addDocuments - Adds a collection of SolrInputDocument instances to the index
    • SolrClient::commit - Finalizes all add/deletes made to the index
    • SolrClient::deleteById - Delete by Id
    • SolrClient::deleteByIds - Deletes by Ids
    • SolrClient::deleteByQueries - Removes all documents matching any of the queries
    • SolrClient::deleteByQuery - Deletes all documents matching the given query
    • SolrClient::getById - Get Document By Id. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getByIds - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getDebug - Returns the debug data for the last connection attempt
    • SolrClient::getOptions - Returns the client options set internally
    • SolrClient::optimize - Defragments the index
    • SolrClient::ping - Checks if Solr server is still up
    • SolrClient::query - Sends a query to the server
    • SolrClient::request - Sends a raw update request
    • SolrClient::rollback - Rollbacks all add/deletes made to the index since the last commit
    • SolrClient::setResponseWriter - Sets the response writer used to prepare the response from Solr
    • SolrClient::setServlet - Changes the specified servlet type to a new value
    • SolrClient::system - Retrieve Solr Server information
    • SolrClient::threads - Checks the threads status
    • SolrClient::__construct - Constructor for the SolrClient object
    • SolrClient::__destruct - Destructor for SolrClient
    • SolrClientException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrCollapseFunction::getField - Returns the field that is being collapsed on
    • SolrCollapseFunction::getHint - Returns collapse hint
    • SolrCollapseFunction::getMax - Returns max parameter
    • SolrCollapseFunction::getMin - Returns min parameter
    • SolrCollapseFunction::getNullPolicy - Returns null policy
    • SolrCollapseFunction::getSize - Returns size parameter
    • SolrCollapseFunction::setField - Sets the field to collapse on
    • SolrCollapseFunction::setHint - Sets collapse hint
    • SolrCollapseFunction::setMax - Selects the group heads by the max value of a numeric field or function query
    • SolrCollapseFunction::setMin - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy - Sets the NULL Policy
    • SolrCollapseFunction::setSize - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::__construct - Constructor
    • SolrCollapseFunction::__toString - Returns a string representing the constructed collapse function
    • SolrDisMaxQuery::addBigramPhraseField - Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery - Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField - Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField - Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField - Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField - Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::removeBigramPhraseField - Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery - Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField - Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField - Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField - Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField - Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop - Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction - Sets a Boost Function (bf parameter)
    • SolrDisMaxQuery::setBoostQuery - Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch - Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields - Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop - Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt - Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop - Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker - Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields - Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop - Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields - Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser - Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser - Switch QueryParser to be EDisMax
    • SolrDisMaxQuery::__construct - Class Constructor
    • SolrDocument::addField - Adds a field to the document
    • SolrDocument::clear - Drops all the fields in the document
    • SolrDocument::current - Retrieves the current field
    • SolrDocument::deleteField - Removes a field from the document
    • SolrDocument::fieldExists - Checks if a field exists in the document
    • SolrDocument::getChildDocuments - Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrDocument::getField - Retrieves a field by name
    • SolrDocument::getFieldCount - Returns the number of fields in this document
    • SolrDocument::getFieldNames - Returns an array of fields names in the document
    • SolrDocument::getInputDocument - Returns a SolrInputDocument equivalent of the object
    • SolrDocument::hasChildDocuments - Checks whether the document has any child documents
    • SolrDocument::key - Retrieves the current key
    • SolrDocument::merge - Merges source to the current SolrDocument
    • SolrDocument::next - Moves the internal pointer to the next field
    • SolrDocument::offsetExists - Checks if a particular field exists
    • SolrDocument::offsetGet - Retrieves a field
    • SolrDocument::offsetSet - Adds a field to the document
    • SolrDocument::offsetUnset - Removes a field
    • SolrDocument::reset - 别名 SolrDocument::clear
    • SolrDocument::rewind - Resets the internal pointer to the beginning
    • SolrDocument::serialize - Used for custom serialization
    • SolrDocument::sort - Sorts the fields in the document
    • SolrDocument::toArray - Returns an array representation of the document
    • SolrDocument::unserialize - Custom serialization of SolrDocument objects
    • SolrDocument::valid - Checks if the current position internally is still valid
    • SolrDocument::__clone - Creates a copy of a SolrDocument object
    • SolrDocument::__construct - Constructor
    • SolrDocument::__destruct - Destructor
    • SolrDocument::__get - Access the field as a property
    • SolrDocument::__isset - Checks if a field exists
    • SolrDocument::__set - Adds another field to the document
    • SolrDocument::__unset - Removes a field from the document
    • SolrDocumentField::__construct - Constructor
    • SolrDocumentField::__destruct - Destructor
    • SolrException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrGenericResponse::__construct - Constructor
    • SolrGenericResponse::__destruct - Destructor
    • SolrIllegalArgumentException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrIllegalOperationException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrInputDocument::addChildDocument - Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments - Adds an array of child documents
    • SolrInputDocument::addField - Adds a field to the document
    • SolrInputDocument::clear - Resets the input document
    • SolrInputDocument::deleteField - Removes a field from the document
    • SolrInputDocument::fieldExists - Checks if a field exists
    • SolrInputDocument::getBoost - Retrieves the current boost value for the document
    • SolrInputDocument::getChildDocuments - Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrInputDocument::getField - Retrieves a field by name
    • SolrInputDocument::getFieldBoost - Retrieves the boost value for a particular field
    • SolrInputDocument::getFieldCount - Returns the number of fields in the document
    • SolrInputDocument::getFieldNames - Returns an array containing all the fields in the document
    • SolrInputDocument::hasChildDocuments - Returns true if the document has any child documents
    • SolrInputDocument::merge - Merges one input document into another
    • SolrInputDocument::reset - 别名 SolrInputDocument::clear
    • SolrInputDocument::setBoost - Sets the boost value for this document
    • SolrInputDocument::setFieldBoost - Sets the index-time boost value for a field
    • SolrInputDocument::sort - Sorts the fields within the document
    • SolrInputDocument::toArray - Returns an array representation of the input document
    • SolrInputDocument::__clone - Creates a copy of a SolrDocument
    • SolrInputDocument::__construct - Constructor
    • SolrInputDocument::__destruct - Destructor
    • SolrModifiableParams::__construct - Constructor
    • SolrModifiableParams::__destruct - Destructor
    • SolrObject::getPropertyNames - Returns an array of all the names of the properties
    • SolrObject::offsetExists - Checks if the property exists
    • SolrObject::offsetGet - Used to retrieve a property
    • SolrObject::offsetSet - Sets the value for a property
    • SolrObject::offsetUnset - Unsets the value for the property
    • SolrObject::__construct - Creates Solr object
    • SolrObject::__destruct - Destructor
    • SolrParams::add - 别名 SolrParams::addParam
    • SolrParams::addParam - Adds a parameter to the object
    • SolrParams::get - 别名 SolrParams::getParam
    • SolrParams::getParam - Returns a parameter value
    • SolrParams::getParams - Returns an array of non URL-encoded parameters
    • SolrParams::getPreparedParams - Returns an array of URL-encoded parameters
    • SolrParams::serialize - Used for custom serialization
    • SolrParams::set - 别名 SolrParams::setParam
    • SolrParams::setParam - Sets the parameter to the specified value
    • SolrParams::toString - Returns all the name-value pair parameters in the object
    • SolrParams::unserialize - Used for custom serialization
    • SolrPingResponse::getResponse - Returns the response from the server
    • SolrPingResponse::__construct - Constructor
    • SolrPingResponse::__destruct - Destructor
    • SolrQuery::addExpandFilterQuery - Overrides main filter query, determines which documents to include in the main group
    • SolrQuery::addExpandSortField - Orders the documents within the expanded groups (expand.sort parameter)
    • SolrQuery::addFacetDateField - Maps to facet.date
    • SolrQuery::addFacetDateOther - Adds another facet.date.other parameter
    • SolrQuery::addFacetField - Adds another field to the facet
    • SolrQuery::addFacetQuery - Adds a facet query
    • SolrQuery::addField - Specifies which fields to return in the result
    • SolrQuery::addFilterQuery - Specifies a filter query
    • SolrQuery::addGroupField - Add a field to be used to group results
    • SolrQuery::addGroupFunction - Allows grouping results based on the unique values of a function query (group.func parameter)
    • SolrQuery::addGroupQuery - Allows grouping of documents that match the given query
    • SolrQuery::addGroupSortField - Add a group sort field (group.sort parameter)
    • SolrQuery::addHighlightField - Maps to hl.fl
    • SolrQuery::addMltField - Sets a field to use for similarity
    • SolrQuery::addMltQueryField - Maps to mlt.qf
    • SolrQuery::addSortField - Used to control how the results should be sorted
    • SolrQuery::addStatsFacet - Requests a return of sub results for values within the given facet
    • SolrQuery::addStatsField - Maps to stats.field parameter
    • SolrQuery::collapse - Collapses the result set to a single document per group
    • SolrQuery::getExpand - Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries - Returns the expand filter queries
    • SolrQuery::getExpandQuery - Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows - Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields - Returns an array of fields
    • SolrQuery::getFacet - Returns the value of the facet parameter
    • SolrQuery::getFacetDateEnd - Returns the value for the facet.date.end parameter
    • SolrQuery::getFacetDateFields - Returns all the facet.date fields
    • SolrQuery::getFacetDateGap - Returns the value of the facet.date.gap parameter
    • SolrQuery::getFacetDateHardEnd - Returns the value of the facet.date.hardend parameter
    • SolrQuery::getFacetDateOther - Returns the value for the facet.date.other parameter
    • SolrQuery::getFacetDateStart - Returns the lower bound for the first date range for all date faceting on this field
    • SolrQuery::getFacetFields - Returns all the facet fields
    • SolrQuery::getFacetLimit - Returns the maximum number of constraint counts that should be returned for the facet fields
    • SolrQuery::getFacetMethod - Returns the value of the facet.method parameter
    • SolrQuery::getFacetMinCount - Returns the minimum counts for facet fields should be included in the response
    • SolrQuery::getFacetMissing - Returns the current state of the facet.missing parameter
    • SolrQuery::getFacetOffset - Returns an offset into the list of constraints to be used for pagination
    • SolrQuery::getFacetPrefix - Returns the facet prefix
    • SolrQuery::getFacetQueries - Returns all the facet queries
    • SolrQuery::getFacetSort - Returns the facet sort type
    • SolrQuery::getFields - Returns the list of fields that will be returned in the response
    • SolrQuery::getFilterQueries - Returns an array of filter queries
    • SolrQuery::getGroup - Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent - Returns group cache percent value
    • SolrQuery::getGroupFacet - Returns the group.facet parameter value
    • SolrQuery::getGroupFields - Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat - Returns the group.format value
    • SolrQuery::getGroupFunctions - Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit - Returns the group.limit value
    • SolrQuery::getGroupMain - Returns the group.main value
    • SolrQuery::getGroupNGroups - Returns the group.ngroups value
    • SolrQuery::getGroupOffset - Returns the group.offset value
    • SolrQuery::getGroupQueries - Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields - Returns the group.sort value
    • SolrQuery::getGroupTruncate - Returns the group.truncate value
    • SolrQuery::getHighlight - Returns the state of the hl parameter
    • SolrQuery::getHighlightAlternateField - Returns the highlight field to use as backup or default
    • SolrQuery::getHighlightFields - Returns all the fields that Solr should generate highlighted snippets for
    • SolrQuery::getHighlightFormatter - Returns the formatter for the highlighted output
    • SolrQuery::getHighlightFragmenter - Returns the text snippet generator for highlighted text
    • SolrQuery::getHighlightFragsize - Returns the number of characters of fragments to consider for highlighting
    • SolrQuery::getHighlightHighlightMultiTerm - Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
    • SolrQuery::getHighlightMaxAlternateFieldLength - Returns the maximum number of characters of the field to return
    • SolrQuery::getHighlightMaxAnalyzedChars - Returns the maximum number of characters into a document to look for suitable snippets
    • SolrQuery::getHighlightMergeContiguous - Returns whether or not the collapse contiguous fragments into a single fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars - Returns the maximum number of characters from a field when using the regex fragmenter
    • SolrQuery::getHighlightRegexPattern - Returns the regular expression for fragmenting
    • SolrQuery::getHighlightRegexSlop - Returns the deviation factor from the ideal fragment size
    • SolrQuery::getHighlightRequireFieldMatch - Returns if a field will only be highlighted if the query matched in this particular field
    • SolrQuery::getHighlightSimplePost - Returns the text which appears after a highlighted term
    • SolrQuery::getHighlightSimplePre - Returns the text which appears before a highlighted term
    • SolrQuery::getHighlightSnippets - Returns the maximum number of highlighted snippets to generate per field
    • SolrQuery::getHighlightUsePhraseHighlighter - Returns the state of the hl.usePhraseHighlighter parameter
    • SolrQuery::getMlt - Returns whether or not MoreLikeThis results should be enabled
    • SolrQuery::getMltBoost - Returns whether or not the query will be boosted by the interesting term relevance
    • SolrQuery::getMltCount - Returns the number of similar documents to return for each result
    • SolrQuery::getMltFields - Returns all the fields to use for similarity
    • SolrQuery::getMltMaxNumQueryTerms - Returns the maximum number of query terms that will be included in any generated query
    • SolrQuery::getMltMaxNumTokens - Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
    • SolrQuery::getMltMaxWordLength - Returns the maximum word length above which words will be ignored
    • SolrQuery::getMltMinDocFrequency - Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
    • SolrQuery::getMltMinTermFrequency - Returns the frequency below which terms will be ignored in the source document
    • SolrQuery::getMltMinWordLength - Returns the minimum word length below which words will be ignored
    • SolrQuery::getMltQueryFields - Returns the query fields and their boosts
    • SolrQuery::getQuery - Returns the main query
    • SolrQuery::getRows - Returns the maximum number of documents
    • SolrQuery::getSortFields - Returns all the sort fields
    • SolrQuery::getStart - Returns the offset in the complete result set
    • SolrQuery::getStats - Returns whether or not stats is enabled
    • SolrQuery::getStatsFacets - Returns all the stats facets that were set
    • SolrQuery::getStatsFields - Returns all the statistics fields
    • SolrQuery::getTerms - Returns whether or not the TermsComponent is enabled
    • SolrQuery::getTermsField - Returns the field from which the terms are retrieved
    • SolrQuery::getTermsIncludeLowerBound - Returns whether or not to include the lower bound in the result set
    • SolrQuery::getTermsIncludeUpperBound - Returns whether or not to include the upper bound term in the result set
    • SolrQuery::getTermsLimit - Returns the maximum number of terms Solr should return
    • SolrQuery::getTermsLowerBound - Returns the term to start at
    • SolrQuery::getTermsMaxCount - Returns the maximum document frequency
    • SolrQuery::getTermsMinCount - Returns the minimum document frequency to return in order to be included
    • SolrQuery::getTermsPrefix - Returns the term prefix
    • SolrQuery::getTermsReturnRaw - Whether or not to return raw characters
    • SolrQuery::getTermsSort - Returns an integer indicating how terms are sorted
    • SolrQuery::getTermsUpperBound - Returns the term to stop at
    • SolrQuery::getTimeAllowed - Returns the time in milliseconds allowed for the query to finish
    • SolrQuery::removeExpandFilterQuery - Removes an expand filter query
    • SolrQuery::removeExpandSortField - Removes an expand sort field from the expand.sort parameter
    • SolrQuery::removeFacetDateField - Removes one of the facet date fields
    • SolrQuery::removeFacetDateOther - Removes one of the facet.date.other parameters
    • SolrQuery::removeFacetField - Removes one of the facet.date parameters
    • SolrQuery::removeFacetQuery - Removes one of the facet.query parameters
    • SolrQuery::removeField - Removes a field from the list of fields
    • SolrQuery::removeFilterQuery - Removes a filter query
    • SolrQuery::removeHighlightField - Removes one of the fields used for highlighting
    • SolrQuery::removeMltField - Removes one of the moreLikeThis fields
    • SolrQuery::removeMltQueryField - Removes one of the moreLikeThis query fields
    • SolrQuery::removeSortField - Removes one of the sort fields
    • SolrQuery::removeStatsFacet - Removes one of the stats.facet parameters
    • SolrQuery::removeStatsField - Removes one of the stats.field parameters
    • SolrQuery::setEchoHandler - Toggles the echoHandler parameter
    • SolrQuery::setEchoParams - Determines what kind of parameters to include in the response
    • SolrQuery::setExpand - Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery - Sets the expand.q parameter
    • SolrQuery::setExpandRows - Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther - Sets the explainOther common query parameter
    • SolrQuery::setFacet - Maps to the facet parameter. Enables or disables facetting
    • SolrQuery::setFacetDateEnd - Maps to facet.date.end
    • SolrQuery::setFacetDateGap - Maps to facet.date.gap
    • SolrQuery::setFacetDateHardEnd - Maps to facet.date.hardend
    • SolrQuery::setFacetDateStart - Maps to facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency - Sets the minimum document frequency used for determining term count
    • SolrQuery::setFacetLimit - Maps to facet.limit
    • SolrQuery::setFacetMethod - Specifies the type of algorithm to use when faceting a field
    • SolrQuery::setFacetMinCount - Maps to facet.mincount
    • SolrQuery::setFacetMissing - Maps to facet.missing
    • SolrQuery::setFacetOffset - Sets the offset into the list of constraints to allow for pagination
    • SolrQuery::setFacetPrefix - Specifies a string prefix with which to limits the terms on which to facet
    • SolrQuery::setFacetSort - Determines the ordering of the facet field constraints
    • SolrQuery::setGroup - Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent - Enables caching for result grouping
    • SolrQuery::setGroupFacet - Sets group.facet parameter
    • SolrQuery::setGroupFormat - Sets the group format, result structure (group.format parameter)
    • SolrQuery::setGroupLimit - Specifies the number of results to return for each group. The server default value is 1
    • SolrQuery::setGroupMain - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
    • SolrQuery::setGroupNGroups - If true, Solr includes the number of groups that have matched the query in the results
    • SolrQuery::setGroupOffset - Sets the group.offset parameter
    • SolrQuery::setGroupTruncate - If true, facet counts are based on the most relevant document of each group matching the query
    • SolrQuery::setHighlight - Enables or disables highlighting
    • SolrQuery::setHighlightAlternateField - Specifies the backup field to use
    • SolrQuery::setHighlightFormatter - Specify a formatter for the highlight output
    • SolrQuery::setHighlightFragmenter - Sets a text snippet generator for highlighted text
    • SolrQuery::setHighlightFragsize - The size of fragments to consider for highlighting
    • SolrQuery::setHighlightHighlightMultiTerm - Use SpanScorer to highlight phrase terms
    • SolrQuery::setHighlightMaxAlternateFieldLength - Sets the maximum number of characters of the field to return
    • SolrQuery::setHighlightMaxAnalyzedChars - Specifies the number of characters into a document to look for suitable snippets
    • SolrQuery::setHighlightMergeContiguous - Whether or not to collapse contiguous fragments into a single fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars - Specify the maximum number of characters to analyze
    • SolrQuery::setHighlightRegexPattern - Specify the regular expression for fragmenting
    • SolrQuery::setHighlightRegexSlop - Sets the factor by which the regex fragmenter can stray from the ideal fragment size
    • SolrQuery::setHighlightRequireFieldMatch - Require field matching during highlighting
    • SolrQuery::setHighlightSimplePost - Sets the text which appears after a highlighted term
    • SolrQuery::setHighlightSimplePre - Sets the text which appears before a highlighted term
    • SolrQuery::setHighlightSnippets - Sets the maximum number of highlighted snippets to generate per field
    • SolrQuery::setHighlightUsePhraseHighlighter - Whether to highlight phrase terms only when they appear within the query phrase
    • SolrQuery::setMlt - Enables or disables moreLikeThis
    • SolrQuery::setMltBoost - Set if the query will be boosted by the interesting term relevance
    • SolrQuery::setMltCount - Set the number of similar documents to return for each result
    • SolrQuery::setMltMaxNumQueryTerms - Sets the maximum number of query terms included
    • SolrQuery::setMltMaxNumTokens - Specifies the maximum number of tokens to parse
    • SolrQuery::setMltMaxWordLength - Sets the maximum word length
    • SolrQuery::setMltMinDocFrequency - Sets the mltMinDoc frequency
    • SolrQuery::setMltMinTermFrequency - Sets the frequency below which terms will be ignored in the source docs
    • SolrQuery::setMltMinWordLength - Sets the minimum word length
    • SolrQuery::setOmitHeader - Exclude the header from the returned results
    • SolrQuery::setQuery - Sets the search query
    • SolrQuery::setRows - Specifies the maximum number of rows to return in the result
    • SolrQuery::setShowDebugInfo - Flag to show debug information
    • SolrQuery::setStart - Specifies the number of rows to skip
    • SolrQuery::setStats - Enables or disables the Stats component
    • SolrQuery::setTerms - Enables or disables the TermsComponent
    • SolrQuery::setTermsField - Sets the name of the field to get the Terms from
    • SolrQuery::setTermsIncludeLowerBound - Include the lower bound term in the result set
    • SolrQuery::setTermsIncludeUpperBound - Include the upper bound term in the result set
    • SolrQuery::setTermsLimit - Sets the maximum number of terms to return
    • SolrQuery::setTermsLowerBound - Specifies the Term to start from
    • SolrQuery::setTermsMaxCount - Sets the maximum document frequency
    • SolrQuery::setTermsMinCount - Sets the minimum document frequency
    • SolrQuery::setTermsPrefix - Restrict matches to terms that start with the prefix
    • SolrQuery::setTermsReturnRaw - Return the raw characters of the indexed term
    • SolrQuery::setTermsSort - Specifies how to sort the returned terms
    • SolrQuery::setTermsUpperBound - Sets the term to stop at
    • SolrQuery::setTimeAllowed - The time allowed for search to finish
    • SolrQuery::__construct - Constructor
    • SolrQuery::__destruct - Destructor
    • SolrQueryResponse::__construct - Constructor
    • SolrQueryResponse::__destruct - Destructor
    • SolrResponse::getDigestedResponse - Returns the XML response as serialized PHP data
    • SolrResponse::getHttpStatus - Returns the HTTP status of the response
    • SolrResponse::getHttpStatusMessage - Returns more details on the HTTP status
    • SolrResponse::getRawRequest - Returns the raw request sent to the Solr server
    • SolrResponse::getRawRequestHeaders - Returns the raw request headers sent to the Solr server
    • SolrResponse::getRawResponse - Returns the raw response from the server
    • SolrResponse::getRawResponseHeaders - Returns the raw response headers from the server
    • SolrResponse::getRequestUrl - Returns the full URL the request was sent to
    • SolrResponse::getResponse - Returns a SolrObject representing the XML response from the server
    • SolrResponse::setParseMode - Sets the parse mode
    • SolrResponse::success - Was the request a success
    • SolrServerException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrUpdateResponse::__construct - Constructor
    • SolrUpdateResponse::__destruct - Destructor
    • SolrUtils::digestXmlResponse - Parses an response XML string into a SolrObject
    • SolrUtils::escapeQueryChars - Escapes a lucene query string
    • SolrUtils::getSolrVersion - Returns the current version of the Solr extension
    • SolrUtils::queryPhrase - Prepares a phrase from an unescaped lucene string
    • solr_get_version - 返回当前Solr扩展的版本
    • sort - 对数组升序排序
    • soundex - Calculate the soundex key of a string
    • SplDoublyLinkedList::add - Add/insert a new value at the specified index
    • SplDoublyLinkedList::bottom - Peeks at the node from the beginning of the doubly linked list
    • SplDoublyLinkedList::count - Counts the number of elements in the doubly linked list
    • SplDoublyLinkedList::current - Return current array entry
    • SplDoublyLinkedList::getIteratorMode - Returns the mode of iteration
    • SplDoublyLinkedList::isEmpty - Checks whether the doubly linked list is empty
    • SplDoublyLinkedList::key - Return current node index
    • SplDoublyLinkedList::next - Move to next entry
    • SplDoublyLinkedList::offsetExists - Returns whether the requested $index exists
    • SplDoublyLinkedList::offsetGet - Returns the value at the specified $index
    • SplDoublyLinkedList::offsetSet - Sets the value at the specified $index to $value
    • SplDoublyLinkedList::offsetUnset - Unsets the value at the specified $index
    • SplDoublyLinkedList::pop - Pops a node from the end of the doubly linked list
    • SplDoublyLinkedList::prev - Move to previous entry
    • SplDoublyLinkedList::push - Pushes an element at the end of the doubly linked list
    • SplDoublyLinkedList::rewind - Rewind iterator back to the start
    • SplDoublyLinkedList::serialize - Serializes the storage
    • SplDoublyLinkedList::setIteratorMode - Sets the mode of iteration
    • SplDoublyLinkedList::shift - Shifts a node from the beginning of the doubly linked list
    • SplDoublyLinkedList::top - Peeks at the node from the end of the doubly linked list
    • SplDoublyLinkedList::unserialize - Unserializes the storage
    • SplDoublyLinkedList::unshift - Prepends the doubly linked list with an element
    • SplDoublyLinkedList::valid - Check whether the doubly linked list contains more nodes
    • SplFileInfo::getATime - Gets last access time of the file
    • SplFileInfo::getBasename - Gets the base name of the file
    • SplFileInfo::getCTime - 获取文件 inode 修改时间
    • SplFileInfo::getExtension - Gets the file extension
    • SplFileInfo::getFileInfo - Gets an SplFileInfo object for the file
    • SplFileInfo::getFilename - Gets the filename
    • SplFileInfo::getGroup - Gets the file group
    • SplFileInfo::getInode - Gets the inode for the file
    • SplFileInfo::getLinkTarget - Gets the target of a link
    • SplFileInfo::getMTime - Gets the last modified time
    • SplFileInfo::getOwner - Gets the owner of the file
    • SplFileInfo::getPath - Gets the path without filename
    • SplFileInfo::getPathInfo - Gets an SplFileInfo object for the path
    • SplFileInfo::getPathname - Gets the path to the file
    • SplFileInfo::getPerms - Gets file permissions
    • SplFileInfo::getRealPath - Gets absolute path to file
    • SplFileInfo::getSize - Gets file size
    • SplFileInfo::getType - Gets file type
    • SplFileInfo::isDir - Tells if the file is a directory
    • SplFileInfo::isExecutable - Tells if the file is executable
    • SplFileInfo::isFile - Tells if the object references a regular file
    • SplFileInfo::isLink - Tells if the file is a link
    • SplFileInfo::isReadable - Tells if file is readable
    • SplFileInfo::isWritable - Tells if the entry is writable
    • SplFileInfo::openFile - Gets an SplFileObject object for the file
    • SplFileInfo::setFileClass - Sets the class used with SplFileInfo::openFile
    • SplFileInfo::setInfoClass - Sets the class used with SplFileInfo::getFileInfo and SplFileInfo::getPathInfo
    • SplFileInfo::__construct - 构造新的 SplFileInfo 对象
    • SplFileInfo::__toString - Returns the path to the file as a string
    • SplFileObject::current - Retrieve current line of file
    • SplFileObject::eof - Reached end of file
    • SplFileObject::fflush - Flushes the output to the file
    • SplFileObject::fgetc - Gets character from file
    • SplFileObject::fgetcsv - Gets line from file and parse as CSV fields
    • SplFileObject::fgets - Gets line from file
    • SplFileObject::fgetss - Gets line from file and strip HTML tags
    • SplFileObject::flock - Portable file locking
    • SplFileObject::fpassthru - Output all remaining data on a file pointer
    • SplFileObject::fputcsv - Write a field array as a CSV line
    • SplFileObject::fread - Read from file
    • SplFileObject::fscanf - Parses input from file according to a format
    • SplFileObject::fseek - Seek to a position
    • SplFileObject::fstat - Gets information about the file
    • SplFileObject::ftell - Return current file position
    • SplFileObject::ftruncate - Truncates the file to a given length
    • SplFileObject::fwrite - Write to file
    • SplFileObject::getChildren - No purpose
    • SplFileObject::getCsvControl - Get the delimiter, enclosure and escape character for CSV
    • SplFileObject::getCurrentLine - 别名 SplFileObject::fgets
    • SplFileObject::getFlags - Gets flags for the SplFileObject
    • SplFileObject::getMaxLineLen - Get maximum line length
    • SplFileObject::hasChildren - SplFileObject does not have children
    • SplFileObject::key - Get line number
    • SplFileObject::next - Read next line
    • SplFileObject::rewind - Rewind the file to the first line
    • SplFileObject::seek - Seek to specified line
    • SplFileObject::setCsvControl - Set the delimiter, enclosure and escape character for CSV
    • SplFileObject::setFlags - Sets flags for the SplFileObject
    • SplFileObject::setMaxLineLen - Set maximum line length
    • SplFileObject::valid - Not at EOF
    • SplFileObject::__construct - Construct a new file object
    • SplFileObject::__toString - Returns the current line as a string
    • SplFixedArray::count - Returns the size of the array
    • SplFixedArray::current - Return current array entry
    • SplFixedArray::fromArray - Import a PHP array in a SplFixedArray instance
    • SplFixedArray::getIterator - Retrieve the iterator to go through the array
    • SplFixedArray::getSize - Gets the size of the array
    • SplFixedArray::jsonSerialize - Returns a representation that can be converted to JSON
    • SplFixedArray::key - Return current array index
    • SplFixedArray::next - Move to next entry
    • SplFixedArray::offsetExists - Returns whether the requested index exists
    • SplFixedArray::offsetGet - Returns the value at the specified index
    • SplFixedArray::offsetSet - Sets a new value at a specified index
    • SplFixedArray::offsetUnset - Unsets the value at the specified $index
    • SplFixedArray::rewind - Rewind iterator back to the start
    • SplFixedArray::setSize - Change the size of an array
    • SplFixedArray::toArray - Returns a PHP array from the fixed array
    • SplFixedArray::valid - Check whether the array contains more elements
    • SplFixedArray::__construct - Constructs a new fixed array
    • SplFixedArray::__serialize - Serializes the SplFixedArray object
    • SplFixedArray::__unserialize - Deserializes the data parameter into an SplFixedArray object
    • SplFixedArray::__wakeup - Reinitialises the array after being unserialised
    • SplHeap::compare - Compare elements in order to place them correctly in the heap while sifting up
    • SplHeap::count - Counts the number of elements in the heap
    • SplHeap::current - Return current node pointed by the iterator
    • SplHeap::extract - Extracts a node from top of the heap and sift up
    • SplHeap::insert - Inserts an element in the heap by sifting it up
    • SplHeap::isCorrupted - Tells if the heap is in a corrupted state
    • SplHeap::isEmpty - Checks whether the heap is empty
    • SplHeap::key - Return current node index
    • SplHeap::next - Move to the next node
    • SplHeap::recoverFromCorruption - Recover from the corrupted state and allow further actions on the heap
    • SplHeap::rewind - Rewind iterator back to the start (no-op)
    • SplHeap::top - Peeks at the node from the top of the heap
    • SplHeap::valid - Check whether the heap contains more nodes
    • SplMaxHeap::compare - Compare elements in order to place them correctly in the heap while sifting up
    • SplMinHeap::compare - Compare elements in order to place them correctly in the heap while sifting up
    • SplObjectStorage::addAll - Adds all objects from another storage
    • SplObjectStorage::attach - Adds an object in the storage
    • SplObjectStorage::contains - Checks if the storage contains a specific object
    • SplObjectStorage::count - Returns the number of objects in the storage
    • SplObjectStorage::current - Returns the current storage entry
    • SplObjectStorage::detach - Removes an object from the storage
    • SplObjectStorage::getHash - Calculate a unique identifier for the contained objects
    • SplObjectStorage::getInfo - Returns the data associated with the current iterator entry
    • SplObjectStorage::key - Returns the index at which the iterator currently is
    • SplObjectStorage::next - Move to the next entry
    • SplObjectStorage::offsetExists - Checks whether an object exists in the storage
    • SplObjectStorage::offsetGet - Returns the data associated with an object
    • SplObjectStorage::offsetSet - Associates data to an object in the storage
    • SplObjectStorage::offsetUnset - Removes an object from the storage
    • SplObjectStorage::removeAll - Removes objects contained in another storage from the current storage
    • SplObjectStorage::removeAllExcept - Removes all objects except for those contained in another storage from the current storage
    • SplObjectStorage::rewind - Rewind the iterator to the first storage element
    • SplObjectStorage::serialize - Serializes the storage
    • SplObjectStorage::setInfo - Sets the data associated with the current iterator entry
    • SplObjectStorage::unserialize - Unserializes a storage from its string representation
    • SplObjectStorage::valid - Returns if the current iterator entry is valid
    • SplObserver::update - Receive update from subject
    • SplPriorityQueue::compare - Compare priorities in order to place elements correctly in the heap while sifting up
    • SplPriorityQueue::count - Counts the number of elements in the queue
    • SplPriorityQueue::current - Return current node pointed by the iterator
    • SplPriorityQueue::extract - Extracts a node from top of the heap and sift up
    • SplPriorityQueue::getExtractFlags - Get the flags of extraction
    • SplPriorityQueue::insert - Inserts an element in the queue by sifting it up
    • SplPriorityQueue::isCorrupted - Tells if the priority queue is in a corrupted state
    • SplPriorityQueue::isEmpty - Checks whether the queue is empty
    • SplPriorityQueue::key - Return current node index
    • SplPriorityQueue::next - Move to the next node
    • SplPriorityQueue::recoverFromCorruption - Recover from the corrupted state and allow further actions on the queue
    • SplPriorityQueue::rewind - Rewind iterator back to the start (no-op)
    • SplPriorityQueue::setExtractFlags - Sets the mode of extraction
    • SplPriorityQueue::top - Peeks at the node from the top of the queue
    • SplPriorityQueue::valid - Check whether the queue contains more nodes
    • SplQueue::dequeue - Dequeues a node from the queue
    • SplQueue::enqueue - Adds an element to the queue
    • SplSubject::attach - Attach an SplObserver
    • SplSubject::detach - Detach an observer
    • SplSubject::notify - Notify an observer
    • SplTempFileObject::__construct - Construct a new temporary file object
    • spl_autoload - __autoload() 函数的默认实现
    • spl_autoload_call - 尝试所有已注册的 __autoload() 函数来装载请求类
    • spl_autoload_extensions - 注册并返回 spl_autoload 的默认文件扩展名
    • spl_autoload_functions - 返回所有已注册的 __autoload() 函数
    • spl_autoload_register - 注册指定的函数作为 __autoload 的实现
    • spl_autoload_unregister - 注销已实现的 __autoload() 函数
    • spl_classes - 返回所有可用的SPL类
    • spl_object_hash - 返回指定对象的 hash id
    • spl_object_id - Return the integer object handle for given object
    • Spoofchecker::areConfusable - Checks if given strings can be confused
    • Spoofchecker::isSuspicious - Checks if a given text contains any suspicious characters
    • Spoofchecker::setAllowedLocales - Locales to use when running checks
    • Spoofchecker::setChecks - Set the checks to run
    • Spoofchecker::setRestrictionLevel - Set the restriction level
    • Spoofchecker::__construct - Constructor
    • sprintf - 返回格式化字符串
    • SQLite3::backup - Backup one database to another database
    • SQLite3::busyTimeout - Sets the busy connection handler
    • SQLite3::changes - Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement
    • SQLite3::close - Closes the database connection
    • SQLite3::createAggregate - Registers a PHP function for use as an SQL aggregate function
    • SQLite3::createCollation - Registers a PHP function for use as an SQL collating function
    • SQLite3::createFunction - Registers a PHP function for use as an SQL scalar function
    • SQLite3::enableExceptions - Enable throwing exceptions
    • SQLite3::escapeString - Returns a string that has been properly escaped
    • SQLite3::exec - Executes a result-less query against a given database
    • SQLite3::lastErrorCode - Returns the numeric result code of the most recent failed SQLite request
    • SQLite3::lastErrorMsg - Returns English text describing the most recent failed SQLite request
    • SQLite3::lastInsertRowID - Returns the row ID of the most recent INSERT into the database
    • SQLite3::loadExtension - Attempts to load an SQLite extension library
    • SQLite3::open - Opens an SQLite database
    • SQLite3::openBlob - Opens a stream resource to read a BLOB
    • SQLite3::prepare - Prepares an SQL statement for execution
    • SQLite3::query - Executes an SQL query
    • SQLite3::querySingle - Executes a query and returns a single result
    • SQLite3::setAuthorizer - Configures a callback to be used as an authorizer to limit what a statement can do
    • SQLite3::version - Returns the SQLite3 library version as a string constant and as a number
    • SQLite3::__construct - 实例化 SQLite3 对象并打开 SQLite 3 数据库
    • SQLite3Result::columnName - Returns the name of the nth column
    • SQLite3Result::columnType - Returns the type of the nth column
    • SQLite3Result::fetchArray - Fetches a result row as an associative or numerically indexed array or both
    • SQLite3Result::finalize - Closes the result set
    • SQLite3Result::numColumns - Returns the number of columns in the result set
    • SQLite3Result::reset - Resets the result set back to the first row
    • SQLite3Result::__construct - Constructs an SQLite3Result
    • SQLite3Stmt::bindParam - Binds a parameter to a statement variable
    • SQLite3Stmt::bindValue - Binds the value of a parameter to a statement variable
    • SQLite3Stmt::clear - Clears all current bound parameters
    • SQLite3Stmt::close - Closes the prepared statement
    • SQLite3Stmt::execute - Executes a prepared statement and returns a result set object
    • SQLite3Stmt::getSQL - Get the SQL of the statement
    • SQLite3Stmt::paramCount - Returns the number of parameters within the prepared statement
    • SQLite3Stmt::readOnly - Returns whether a statement is definitely read only
    • SQLite3Stmt::reset - Resets the prepared statement
    • SQLite3Stmt::__construct - Constructs an SQLite3Stmt object
    • sqlsrv_begin_transaction - Begins a database transaction
    • sqlsrv_cancel - Cancels a statement
    • sqlsrv_client_info - Returns information about the client and specified connection
    • sqlsrv_close - Closes an open connection and releases resourses associated with the connection
    • sqlsrv_commit - Commits a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_configure - Changes the driver error handling and logging configurations
    • sqlsrv_connect - Opens a connection to a Microsoft SQL Server database
    • sqlsrv_errors - Returns error and warning information about the last SQLSRV operation performed
    • sqlsrv_execute - Executes a statement prepared with sqlsrv_prepare
    • sqlsrv_fetch - Makes the next row in a result set available for reading
    • sqlsrv_fetch_array - Returns a row as an array
    • sqlsrv_fetch_object - Retrieves the next row of data in a result set as an object
    • sqlsrv_field_metadata - Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
    • sqlsrv_free_stmt - Frees all resources for the specified statement
    • sqlsrv_get_config - Returns the value of the specified configuration setting
    • sqlsrv_get_field - Gets field data from the currently selected row
    • sqlsrv_has_rows - Indicates whether the specified statement has rows
    • sqlsrv_next_result - Makes the next result of the specified statement active
    • sqlsrv_num_fields - Retrieves the number of fields (columns) on a statement
    • sqlsrv_num_rows - Retrieves the number of rows in a result set
    • sqlsrv_prepare - Prepares a query for execution
    • sqlsrv_query - Prepares and executes a query
    • sqlsrv_rollback - Rolls back a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_rows_affected - Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed
    • sqlsrv_send_stream_data - Sends data from parameter streams to the server
    • sqlsrv_server_info - Returns information about the server
    • SqlStatement::bind - Bind statement parameters
    • SqlStatement::execute - Execute the operation
    • SqlStatement::getNextResult - Get next result
    • SqlStatement::getResult - Get result
    • SqlStatement::hasMoreResults - Check for more results
    • SqlStatement::__construct - Description constructor
    • SqlStatementResult::fetchAll - Get all rows from result
    • SqlStatementResult::fetchOne - Get single row
    • SqlStatementResult::getAffectedItemsCount - Get affected row count
    • SqlStatementResult::getColumnNames - Get column names
    • SqlStatementResult::getColumns - Get columns
    • SqlStatementResult::getColumnsCount - Get column count
    • SqlStatementResult::getGeneratedIds - Get generated ids
    • SqlStatementResult::getLastInsertId - Get last insert id
    • SqlStatementResult::getWarnings - Get warnings from last operation
    • SqlStatementResult::getWarningsCount - Get warning count from last operation
    • SqlStatementResult::hasData - Check if result has data
    • SqlStatementResult::nextResult - Get next result
    • SqlStatementResult::__construct - Description constructor
    • sqrt - 平方根
    • srand - 播下随机数发生器种子
    • sscanf - 根据指定格式解析输入的字符
    • ssdeep_fuzzy_compare - Calculates the match score between two fuzzy hash signatures
    • ssdeep_fuzzy_hash - Create a fuzzy hash from a string
    • ssdeep_fuzzy_hash_filename - Create a fuzzy hash from a file
    • ssh2_auth_agent - Authenticate over SSH using the ssh agent
    • ssh2_auth_hostbased_file - Authenticate using a public hostkey
    • ssh2_auth_none - Authenticate as "none"
    • ssh2_auth_password - Authenticate over SSH using a plain password
    • ssh2_auth_pubkey_file - Authenticate using a public key
    • ssh2_connect - Connect to an SSH server
    • ssh2_disconnect - Close a connection to a remote SSH server
    • ssh2_exec - Execute a command on a remote server
    • ssh2_fetch_stream - Fetch an extended data stream
    • ssh2_fingerprint - Retrieve fingerprint of remote server
    • ssh2_forward_accept - Accept a connection created by a listener
    • ssh2_forward_listen - Bind a port on the remote server and listen for connections
    • ssh2_methods_negotiated - Return list of negotiated methods
    • ssh2_poll - Poll the channels/listeners/streams for events
    • ssh2_publickey_add - Add an authorized publickey
    • ssh2_publickey_init - Initialize Publickey subsystem
    • ssh2_publickey_list - List currently authorized publickeys
    • ssh2_publickey_remove - Remove an authorized publickey
    • ssh2_scp_recv - Request a file via SCP
    • ssh2_scp_send - Send a file via SCP
    • ssh2_send_eof - Send EOF to stream
    • ssh2_sftp - Initialize SFTP subsystem
    • ssh2_sftp_chmod - Changes file mode
    • ssh2_sftp_lstat - Stat a symbolic link
    • ssh2_sftp_mkdir - Create a directory
    • ssh2_sftp_readlink - Return the target of a symbolic link
    • ssh2_sftp_realpath - Resolve the realpath of a provided path string
    • ssh2_sftp_rename - Rename a remote file
    • ssh2_sftp_rmdir - Remove a directory
    • ssh2_sftp_stat - Stat a file on a remote filesystem
    • ssh2_sftp_symlink - Create a symlink
    • ssh2_sftp_unlink - Delete a file
    • ssh2_shell - Request an interactive shell
    • ssh2_tunnel - Open a tunnel through a remote server
    • stat - 给出文件的信息
    • Statement::getNextResult - Get next result
    • Statement::getResult - Get result
    • Statement::hasMoreResults - Check if more results
    • Statement::__construct - Description constructor
    • stats_absolute_deviation - Returns the absolute deviation of an array of values
    • stats_cdf_beta - Calculates any one parameter of the beta distribution given values for the others
    • stats_cdf_binomial - Calculates any one parameter of the binomial distribution given values for the others
    • stats_cdf_cauchy - Calculates any one parameter of the Cauchy distribution given values for the others
    • stats_cdf_chisquare - Calculates any one parameter of the chi-square distribution given values for the others
    • stats_cdf_exponential - Calculates any one parameter of the exponential distribution given values for the others
    • stats_cdf_f - Calculates any one parameter of the F distribution given values for the others
    • stats_cdf_gamma - Calculates any one parameter of the gamma distribution given values for the others
    • stats_cdf_laplace - Calculates any one parameter of the Laplace distribution given values for the others
    • stats_cdf_logistic - Calculates any one parameter of the logistic distribution given values for the others
    • stats_cdf_negative_binomial - Calculates any one parameter of the negative binomial distribution given values for the others
    • stats_cdf_noncentral_chisquare - Calculates any one parameter of the non-central chi-square distribution given values for the others
    • stats_cdf_noncentral_f - Calculates any one parameter of the non-central F distribution given values for the others
    • stats_cdf_noncentral_t - Calculates any one parameter of the non-central t-distribution give values for the others
    • stats_cdf_normal - Calculates any one parameter of the normal distribution given values for the others
    • stats_cdf_poisson - Calculates any one parameter of the Poisson distribution given values for the others
    • stats_cdf_t - Calculates any one parameter of the t-distribution given values for the others
    • stats_cdf_uniform - Calculates any one parameter of the uniform distribution given values for the others
    • stats_cdf_weibull - Calculates any one parameter of the Weibull distribution given values for the others
    • stats_covariance - Computes the covariance of two data sets
    • stats_dens_beta - Probability density function of the beta distribution
    • stats_dens_cauchy - Probability density function of the Cauchy distribution
    • stats_dens_chisquare - Probability density function of the chi-square distribution
    • stats_dens_exponential - Probability density function of the exponential distribution
    • stats_dens_f - Probability density function of the F distribution
    • stats_dens_gamma - Probability density function of the gamma distribution
    • stats_dens_laplace - Probability density function of the Laplace distribution
    • stats_dens_logistic - Probability density function of the logistic distribution
    • stats_dens_normal - Probability density function of the normal distribution
    • stats_dens_pmf_binomial - Probability mass function of the binomial distribution
    • stats_dens_pmf_hypergeometric - Probability mass function of the hypergeometric distribution
    • stats_dens_pmf_negative_binomial - Probability mass function of the negative binomial distribution
    • stats_dens_pmf_poisson - Probability mass function of the Poisson distribution
    • stats_dens_t - Probability density function of the t-distribution
    • stats_dens_uniform - Probability density function of the uniform distribution
    • stats_dens_weibull - Probability density function of the Weibull distribution
    • stats_harmonic_mean - Returns the harmonic mean of an array of values
    • stats_kurtosis - Computes the kurtosis of the data in the array
    • stats_rand_gen_beta - Generates a random deviate from the beta distribution
    • stats_rand_gen_chisquare - Generates a random deviate from the chi-square distribution
    • stats_rand_gen_exponential - Generates a random deviate from the exponential distribution
    • stats_rand_gen_f - Generates a random deviate from the F distribution
    • stats_rand_gen_funiform - Generates uniform float between low (exclusive) and high (exclusive)
    • stats_rand_gen_gamma - Generates a random deviate from the gamma distribution
    • stats_rand_gen_ibinomial - Generates a random deviate from the binomial distribution
    • stats_rand_gen_ibinomial_negative - Generates a random deviate from the negative binomial distribution
    • stats_rand_gen_int - Generates random integer between 1 and 2147483562
    • stats_rand_gen_ipoisson - Generates a single random deviate from a Poisson distribution
    • stats_rand_gen_iuniform - Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
    • stats_rand_gen_noncentral_chisquare - Generates a random deviate from the non-central chi-square distribution
    • stats_rand_gen_noncentral_f - Generates a random deviate from the noncentral F distribution
    • stats_rand_gen_noncentral_t - Generates a single random deviate from a non-central t-distribution
    • stats_rand_gen_normal - Generates a single random deviate from a normal distribution
    • stats_rand_gen_t - Generates a single random deviate from a t-distribution
    • stats_rand_get_seeds - Get the seed values of the random number generator
    • stats_rand_phrase_to_seeds - Generate two seeds for the RGN random number generator
    • stats_rand_ranf - Generates a random floating point number between 0 and 1
    • stats_rand_setall - Set seed values to the random generator
    • stats_skew - Computes the skewness of the data in the array
    • stats_standard_deviation - Returns the standard deviation
    • stats_stat_binomial_coef - Returns a binomial coefficient
    • stats_stat_correlation - Returns the Pearson correlation coefficient of two data sets
    • stats_stat_factorial - Returns the factorial of an integer
    • stats_stat_independent_t - Returns the t-value from the independent two-sample t-test
    • stats_stat_innerproduct - Returns the inner product of two vectors
    • stats_stat_paired_t - Returns the t-value of the dependent t-test for paired samples
    • stats_stat_percentile - Returns the percentile value
    • stats_stat_powersum - Returns the power sum of a vector
    • stats_variance - Returns the variance
    • Stomp::abort - Rolls back a transaction in progress
    • Stomp::ack - Acknowledges consumption of a message
    • Stomp::begin - Starts a transaction
    • Stomp::commit - Commits a transaction in progress
    • Stomp::error - Gets the last stomp error
    • Stomp::getReadTimeout - Gets read timeout
    • Stomp::getSessionId - Gets the current stomp session ID
    • Stomp::hasFrame - Indicates whether or not there is a frame ready to read
    • Stomp::readFrame - Reads the next frame
    • Stomp::send - Sends a message
    • Stomp::setReadTimeout - Sets read timeout
    • Stomp::subscribe - Registers to listen to a given destination
    • Stomp::unsubscribe - Removes an existing subscription
    • Stomp::__construct - 打开连接
    • Stomp::__destruct - Closes stomp connection
    • StompException::getDetails - Get exception details
    • StompFrame::__construct - Constructor
    • stomp_connect_error - Returns a string description of the last connect error
    • stomp_version - Gets the current stomp extension version
    • strcasecmp - 二进制安全比较字符串（不区分大小写）
    • strchr - 别名 strstr
    • strcmp - 二进制安全字符串比较
    • strcoll - 基于区域设置的字符串比较
    • strcspn - 获取不匹配遮罩的起始子字符串的长度
    • streamWrapper::dir_closedir - Close directory handle
    • streamWrapper::dir_opendir - Open directory handle
    • streamWrapper::dir_readdir - Read entry from directory handle
    • streamWrapper::dir_rewinddir - Rewind directory handle
    • streamWrapper::mkdir - Create a directory
    • streamWrapper::rename - Renames a file or directory
    • streamWrapper::rmdir - Removes a directory
    • streamWrapper::stream_cast - Retrieve the underlaying resource
    • streamWrapper::stream_close - Close a resource
    • streamWrapper::stream_eof - Tests for end-of-file on a file pointer
    • streamWrapper::stream_flush - Flushes the output
    • streamWrapper::stream_lock - Advisory file locking
    • streamWrapper::stream_metadata - Change stream metadata
    • streamWrapper::stream_open - Opens file or URL
    • streamWrapper::stream_read - Read from stream
    • streamWrapper::stream_seek - Seeks to specific location in a stream
    • streamWrapper::stream_set_option - Change stream options
    • streamWrapper::stream_stat - Retrieve information about a file resource
    • streamWrapper::stream_tell - Retrieve the current position of a stream
    • streamWrapper::stream_truncate - Truncate stream
    • streamWrapper::stream_write - Write to stream
    • streamWrapper::unlink - Delete a file
    • streamWrapper::url_stat - Retrieve information about a file
    • streamWrapper::__construct - Constructs a new stream wrapper
    • streamWrapper::__destruct - Destructs an existing stream wrapper
    • stream_bucket_append - Append bucket to brigade
    • stream_bucket_make_writeable - Returns a bucket object from the brigade to operate on
    • stream_bucket_new - Create a new bucket for use on the current stream
    • stream_bucket_prepend - Prepend bucket to brigade
    • stream_context_create - 创建资源流上下文
    • stream_context_get_default - Retrieve the default stream context
    • stream_context_get_options - 获取资源流/数据包/上下文的参数
    • stream_context_get_params - Retrieves parameters from a context
    • stream_context_set_default - Set the default stream context
    • stream_context_set_option - 对资源流、数据包或者上下文设置参数
    • stream_context_set_options - Sets options on the specified context
    • stream_context_set_params - Set parameters for a stream/wrapper/context
    • stream_copy_to_stream - Copies data from one stream to another
    • stream_filter_append - Attach a filter to a stream
    • stream_filter_prepend - Attach a filter to a stream
    • stream_filter_register - Register a user defined stream filter
    • stream_filter_remove - 从资源流里移除某个过滤器
    • stream_get_contents - 读取资源流到一个字符串
    • stream_get_filters - 获取已注册的数据流过滤器列表
    • stream_get_line - 从资源流里读取一行直到给定的定界符
    • stream_get_meta_data - 从流或文件指针中获取 header/meta 数据
    • stream_get_transports - 获取已注册的套接字传输协议列表
    • stream_get_wrappers - 获取已注册的流类型
    • stream_isatty - Check if a stream is a TTY
    • stream_is_local - Checks if a stream is a local stream
    • stream_notification_callback - A callback function for the notification context parameter
    • stream_register_wrapper - 别名 stream_wrapper_register
    • stream_resolve_include_path - Resolve filename against the include path
    • stream_select - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by seconds and microseconds
    • stream_set_blocking - 为资源流设置阻塞或者阻塞模式
    • stream_set_chunk_size - 设置资源流区块大小
    • stream_set_read_buffer - Set read file buffering on the given stream
    • stream_set_timeout - Set timeout period on a stream
    • stream_set_write_buffer - Sets write file buffering on the given stream
    • stream_socket_accept - 接受由 stream_socket_server 创建的套接字连接
    • stream_socket_client - Open Internet or Unix domain socket connection
    • stream_socket_enable_crypto - Turns encryption on/off on an already connected socket
    • stream_socket_get_name - 获取本地或者远程的套接字名称
    • stream_socket_pair - 创建一对完全一样的网络套接字连接流
    • stream_socket_recvfrom - Receives data from a socket, connected or not
    • stream_socket_sendto - Sends a message to a socket, whether it is connected or not
    • stream_socket_server - 创建 Internet 或 Unix 域服务器套接字
    • stream_socket_shutdown - Shutdown a full-duplex connection
    • stream_supports_lock - Tells whether the stream supports locking
    • stream_wrapper_register - 注册一个用 PHP 类实现的 URL 封装协议
    • stream_wrapper_restore - Restores a previously unregistered built-in wrapper
    • stream_wrapper_unregister - Unregister a URL wrapper
    • strftime - 根据区域设置格式化本地时间/日期
    • Stringable::__toString - 从对象中获取字符串表示
    • stripcslashes - 反引用一个使用 addcslashes 转义的字符串
    • stripos - 查找字符串首次出现的位置（不区分大小写）
    • stripslashes - 反引用一个引用字符串
    • strip_tags - 从字符串中去除 HTML 和 PHP 标签
    • stristr - strstr 函数的忽略大小写版本
    • strlen - 获取字符串长度
    • strnatcasecmp - 使用“自然顺序”算法比较字符串（不区分大小写）
    • strnatcmp - 使用自然排序算法比较字符串
    • strncasecmp - 二进制安全比较字符串开头的若干个字符（不区分大小写）
    • strncmp - 二进制安全比较字符串开头的若干个字符
    • strpbrk - 在字符串中查找一组字符的任何一个字符
    • strpos - 查找字符串首次出现的位置
    • strptime - 解析由 strftime 生成的日期／时间
    • strrchr - 查找指定字符在字符串中的最后一次出现
    • strrev - 反转字符串
    • strripos - 计算指定字符串在目标字符串中最后一次出现的位置（不区分大小写）
    • strrpos - 计算指定字符串在目标字符串中最后一次出现的位置
    • strspn - 计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度
    • strstr - 查找字符串的首次出现
    • strtok - 标记分割字符串
    • strtolower - 将字符串转化为小写
    • strtotime - 将任何英文文本日期时间描述解析为 Unix 时间戳
    • strtoupper - 将字符串转化为大写
    • strtr - 转换字符或替换字串
    • strval - 获取变量的字符串值
    • str_contains - 确定字符串是否包含指定子串
    • str_decrement - Decrement an alphanumeric string
    • str_ends_with - 检查字符串是否以指定子串结尾
    • str_getcsv - 解析 CSV 字符串为一个数组
    • str_increment - Increment an alphanumeric string
    • str_ireplace - str_replace 的忽略大小写版本
    • str_pad - 使用另一个字符串填充字符串为指定长度
    • str_repeat - 重复一个字符串
    • str_replace - 子字符串替换
    • str_rot13 - 对字符串执行 ROT13 转换
    • str_shuffle - 随机打乱一个字符串
    • str_split - 将字符串转换为数组
    • str_starts_with - 检查字符串是否以指定子串开头
    • str_word_count - 返回字符串中单词的使用情况
    • substr - 返回字符串的子串
    • substr_compare - 二进制安全比较字符串（从偏移位置比较指定长度）
    • substr_count - 计算字串出现的次数
    • substr_replace - 替换字符串的子串
    • SVM::crossvalidate - Test training params on subsets of the training data
    • SVM::getOptions - Return the current training parameters
    • SVM::setOptions - Set training parameters
    • SVM::train - Create a SVMModel based on training data
    • SVM::__construct - Construct a new SVM object
    • SVMModel::checkProbabilityModel - Returns true if the model has probability information
    • SVMModel::getLabels - Get the labels the model was trained on
    • SVMModel::getNrClass - Returns the number of classes the model was trained with
    • SVMModel::getSvmType - Get the SVM type the model was trained with
    • SVMModel::getSvrProbability - Get the sigma value for regression types
    • SVMModel::load - Load a saved SVM Model
    • SVMModel::predict - Predict a value for previously unseen data
    • SVMModel::predict_probability - Return class probabilities for previous unseen data
    • SVMModel::save - Save a model to a file
    • SVMModel::__construct - Construct a new SVMModel
    • svn_add - 在工作目录列入新增项
    • svn_auth_get_parameter - Retrieves authentication parameter
    • svn_auth_set_parameter - Sets an authentication parameter
    • svn_blame - Get the SVN blame for a file
    • svn_cat - Returns the contents of a file in a repository
    • svn_checkout - Checks out a working copy from the repository
    • svn_cleanup - Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
    • svn_client_version - Returns the version of the SVN client libraries
    • svn_commit - 将修改的本地文件副本发送至版本库
    • svn_delete - Delete items from a working copy or repository
    • svn_diff - Recursively diffs two paths
    • svn_export - Export the contents of a SVN directory
    • svn_fs_abort_txn - Aborts a transaction
    • svn_fs_apply_text - Creates and returns a stream that will be used to replace
    • svn_fs_begin_txn2 - Create a new transaction
    • svn_fs_change_node_prop - Return true if everything is ok, false otherwise
    • svn_fs_check_path - Determines what kind of item lives at path in a given repository fsroot
    • svn_fs_contents_changed - Return true if content is different, false otherwise
    • svn_fs_copy - Copies a file or a directory
    • svn_fs_delete - Deletes a file or a directory
    • svn_fs_dir_entries - Enumerates the directory entries under path; returns a hash of dir names to file type
    • svn_fs_file_contents - Returns a stream to access the contents of a file from a given version of the fs
    • svn_fs_file_length - Returns the length of a file from a given version of the fs
    • svn_fs_is_dir - Determines if a path points to a directory
    • svn_fs_is_file - Determines if a path points to a file
    • svn_fs_make_dir - Creates a new empty directory
    • svn_fs_make_file - Creates a new empty file
    • svn_fs_node_created_rev - Returns the revision in which path under fsroot was created
    • svn_fs_node_prop - Returns the value of a property for a node
    • svn_fs_props_changed - Return true if props are different, false otherwise
    • svn_fs_revision_prop - Fetches the value of a named property
    • svn_fs_revision_root - Get a handle on a specific version of the repository root
    • svn_fs_txn_root - Creates and returns a transaction root
    • svn_fs_youngest_rev - Returns the number of the youngest revision in the filesystem
    • svn_import - Imports an unversioned path into a repository
    • svn_log - Returns the commit log messages of a repository URL
    • svn_ls - Returns list of directory contents in repository URL, optionally at revision number
    • svn_mkdir - Creates a directory in a working copy or repository
    • svn_repos_create - Create a new subversion repository at path
    • svn_repos_fs - Gets a handle on the filesystem for a repository
    • svn_repos_fs_begin_txn_for_commit - Create a new transaction
    • svn_repos_fs_commit_txn - Commits a transaction and returns the new revision
    • svn_repos_hotcopy - Make a hot-copy of the repos at repospath; copy it to destpath
    • svn_repos_open - Open a shared lock on a repository
    • svn_repos_recover - Run recovery procedures on the repository located at path
    • svn_revert - Revert changes to the working copy
    • svn_status - Returns the status of working copy files and directories
    • svn_update - Update working copy
    • Swoole\Async::dnsLookup - Async and non-blocking hostname to IP lookup.
    • Swoole\Async::read - Read file stream asynchronously.
    • Swoole\Async::readFile - Read a file asynchronously.
    • Swoole\Async::set - Update the async I/O options.
    • Swoole\Async::write - Write data to a file stream asynchronously.
    • Swoole\Async::writeFile - Description
    • Swoole\Atomic::add - Add a number to the value to the atomic object.
    • Swoole\Atomic::cmpset - Compare and set the value of the atomic object.
    • Swoole\Atomic::get - Get the current value of the atomic object.
    • Swoole\Atomic::set - Set a new value to the atomic object.
    • Swoole\Atomic::sub - Subtract a number to the value of the atomic object.
    • Swoole\Atomic::__construct - Construct a swoole atomic object.
    • Swoole\Buffer::append - Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.
    • Swoole\Buffer::clear - Reset the memory buffer.
    • Swoole\Buffer::expand - Expand the size of memory buffer.
    • Swoole\Buffer::read - Read data from the memory buffer based on offset and length.
    • Swoole\Buffer::recycle - Release the memory to OS which is not used by the memory buffer.
    • Swoole\Buffer::substr - Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.
    • Swoole\Buffer::write - Write data to the memory buffer. The memory allocated for the buffer will not be changed.
    • Swoole\Buffer::__construct - Fixed size memory blocks allocation.
    • Swoole\Buffer::__destruct - Destruct the Swoole memory buffer.
    • Swoole\Buffer::__toString - Get the string value of the memory buffer.
    • Swoole\Channel::pop - Read and pop data from swoole channel.
    • Swoole\Channel::push - Write and push data into Swoole channel.
    • Swoole\Channel::stats - Get stats of swoole channel.
    • Swoole\Channel::__construct - Construct a Swoole Channel
    • Swoole\Channel::__destruct - Destruct a Swoole channel.
    • Swoole\Client::close - Close the connection established.
    • Swoole\Client::connect - Connect to the remote TCP or UDP port.
    • Swoole\Client::getpeername - Get the remote socket name of the connection.
    • Swoole\Client::getsockname - Get the local socket name of the connection.
    • Swoole\Client::isConnected - Check if the connection is established.
    • Swoole\Client::on - Add callback functions triggered by events.
    • Swoole\Client::pause - Pause receiving data.
    • Swoole\Client::pipe - Redirect the data to another file descriptor.
    • Swoole\Client::recv - Receive data from the remote socket.
    • Swoole\Client::resume - Resume receiving data.
    • Swoole\Client::send - Send data to the remote TCP socket.
    • Swoole\Client::sendfile - Send file to the remote TCP socket.
    • Swoole\Client::sendto - Send data to the remote UDP address.
    • Swoole\Client::set - Set the Swoole client parameters before the connection is established.
    • Swoole\Client::sleep - Remove the TCP client from system event loop.
    • Swoole\Client::wakeup - Add the TCP client back into the system event loop.
    • Swoole\Client::__construct - Create Swoole sync or async TCP/UDP client, with or without SSL.
    • Swoole\Client::__destruct - Destruct the Swoole client.
    • Swoole\Connection\Iterator::count - Count connections.
    • Swoole\Connection\Iterator::current - Return current connection entry.
    • Swoole\Connection\Iterator::key - Return key of the current connection.
    • Swoole\Connection\Iterator::next - Move to the next connection.
    • Swoole\Connection\Iterator::offsetExists - Check if offet exists.
    • Swoole\Connection\Iterator::offsetGet - Offset to retrieve.
    • Swoole\Connection\Iterator::offsetSet - Assign a Connection to the specified offset.
    • Swoole\Connection\Iterator::offsetUnset - Unset an offset.
    • Swoole\Connection\Iterator::rewind - Rewinds iterator
    • Swoole\Connection\Iterator::valid - Check if current position is valid.
    • Swoole\Coroutine::call_user_func - Call a callback given by the first parameter
    • Swoole\Coroutine::call_user_func_array - Call a callback with an array of parameters
    • Swoole\Coroutine::cli_wait - Description
    • Swoole\Coroutine::create - Description
    • Swoole\Coroutine::getuid - Description
    • Swoole\Coroutine::resume - Description
    • Swoole\Coroutine::suspend - Description
    • Swoole\Coroutine\Client::close - Description
    • Swoole\Coroutine\Client::connect - Description
    • Swoole\Coroutine\Client::getpeername - Description
    • Swoole\Coroutine\Client::getsockname - Description
    • Swoole\Coroutine\Client::isConnected - Description
    • Swoole\Coroutine\Client::recv - Description
    • Swoole\Coroutine\Client::send - Description
    • Swoole\Coroutine\Client::sendfile - Description
    • Swoole\Coroutine\Client::sendto - Description
    • Swoole\Coroutine\Client::set - Description
    • Swoole\Coroutine\Client::__construct - Description
    • Swoole\Coroutine\Client::__destruct - Description
    • Swoole\Coroutine\Http\Client::addFile - Description
    • Swoole\Coroutine\Http\Client::close - Description
    • Swoole\Coroutine\Http\Client::execute - Description
    • Swoole\Coroutine\Http\Client::get - Description
    • Swoole\Coroutine\Http\Client::getDefer - Description
    • Swoole\Coroutine\Http\Client::isConnected - Description
    • Swoole\Coroutine\Http\Client::post - Description
    • Swoole\Coroutine\Http\Client::recv - Description
    • Swoole\Coroutine\Http\Client::set - Description
    • Swoole\Coroutine\Http\Client::setCookies - Description
    • Swoole\Coroutine\Http\Client::setData - Description
    • Swoole\Coroutine\Http\Client::setDefer - Description
    • Swoole\Coroutine\Http\Client::setHeaders - Description
    • Swoole\Coroutine\Http\Client::setMethod - Description
    • Swoole\Coroutine\Http\Client::__construct - Description
    • Swoole\Coroutine\Http\Client::__destruct - Description
    • Swoole\Coroutine\MySQL::close - Description
    • Swoole\Coroutine\MySQL::connect - Description
    • Swoole\Coroutine\MySQL::getDefer - Description
    • Swoole\Coroutine\MySQL::query - Description
    • Swoole\Coroutine\MySQL::recv - Description
    • Swoole\Coroutine\MySQL::setDefer - Description
    • Swoole\Coroutine\MySQL::__construct - Description
    • Swoole\Coroutine\MySQL::__destruct - Description
    • Swoole\Event::add - Add new callback functions of a socket into the EventLoop.
    • Swoole\Event::defer - Add a callback function to the next event loop.
    • Swoole\Event::del - Remove all event callback functions of a socket.
    • Swoole\Event::exit - Exit the eventloop, only available at client side.
    • Swoole\Event::set - Update the event callback functions of a socket.
    • Swoole\Event::wait - Description
    • Swoole\Event::write - Write data to the socket.
    • Swoole\Http\Client::addFile - Add a file to the post form.
    • Swoole\Http\Client::close - Close the http connection.
    • Swoole\Http\Client::download - Download a file from the remote server.
    • Swoole\Http\Client::execute - Send the HTTP request after setting the parameters.
    • Swoole\Http\Client::get - Send GET http request to the remote server.
    • Swoole\Http\Client::isConnected - Check if the HTTP connection is connected.
    • Swoole\Http\Client::on - Register callback function by event name.
    • Swoole\Http\Client::post - Send POST http request to the remote server.
    • Swoole\Http\Client::push - Push data to websocket client.
    • Swoole\Http\Client::set - Update the HTTP client parameters.
    • Swoole\Http\Client::setCookies - Set the http request cookies.
    • Swoole\Http\Client::setData - Set the HTTP request body data.
    • Swoole\Http\Client::setHeaders - Set the HTTP request headers.
    • Swoole\Http\Client::setMethod - Set the HTTP request method.
    • Swoole\Http\Client::upgrade - Upgrade to websocket protocol.
    • Swoole\Http\Client::__construct - Construct the async HTTP client.
    • Swoole\Http\Client::__destruct - Destruct the HTTP client.
    • Swoole\Http\Request::rawcontent - Get the raw HTTP POST body.
    • Swoole\Http\Request::__destruct - Destruct the HTTP request.
    • Swoole\Http\Response::cookie - Set the cookies of the HTTP response.
    • Swoole\Http\Response::end - Send data for the HTTP request and finish the response.
    • Swoole\Http\Response::gzip - Enable the gzip of response content.
    • Swoole\Http\Response::header - Set the HTTP response headers.
    • Swoole\Http\Response::initHeader - Init the HTTP response header.
    • Swoole\Http\Response::rawcookie - Set the raw cookies to the HTTP response.
    • Swoole\Http\Response::sendfile - Send file through the HTTP response.
    • Swoole\Http\Response::status - Set the status code of the HTTP response.
    • Swoole\Http\Response::write - Append HTTP body content to the HTTP response.
    • Swoole\Http\Response::__destruct - Destruct the HTTP response.
    • Swoole\Http\Server::on - Bind callback function to HTTP server by event name.
    • Swoole\Http\Server::start - Start the swoole http server.
    • Swoole\Lock::lock - Try to acquire the lock. It will block if the lock is not available.
    • Swoole\Lock::lock_read - Lock a read-write lock for reading.
    • Swoole\Lock::trylock - Try to acquire the lock and return straight away even the lock is not available.
    • Swoole\Lock::trylock_read - Try to lock a read-write lock for reading and return straight away even the lock is not available.
    • Swoole\Lock::unlock - Release the lock.
    • Swoole\Lock::__construct - Construct a memory lock.
    • Swoole\Lock::__destruct - Destory a Swoole memory lock.
    • Swoole\Mmap::open - Map a file into memory and return the stream resource which can be used by PHP stream operations.
    • Swoole\MySQL::close - Close the async MySQL connection.
    • Swoole\MySQL::connect - Connect to the remote MySQL server.
    • Swoole\MySQL::getBuffer - Description
    • Swoole\MySQL::on - Register callback function based on event name.
    • Swoole\MySQL::query - Run the SQL query.
    • Swoole\MySQL::__construct - Construct an async MySQL client.
    • Swoole\MySQL::__destruct - Destory the async MySQL client.
    • Swoole\Process::alarm - High precision timer which triggers signal with fixed interval.
    • Swoole\Process::close - Close the pipe to the child process.
    • Swoole\Process::daemon - Change the process to be a daemon process.
    • Swoole\Process::exec - Execute system commands.
    • Swoole\Process::exit - Stop the child processes.
    • Swoole\Process::freeQueue - Destroy the message queue created by swoole_process::useQueue.
    • Swoole\Process::kill - Send signal to the child process.
    • Swoole\Process::name - Set name of the process.
    • Swoole\Process::pop - Read and pop data from the message queue.
    • Swoole\Process::push - Write and push data into the message queue.
    • Swoole\Process::read - Read data sending to the process.
    • Swoole\Process::signal - Send signal to the child processes.
    • Swoole\Process::start - Start the process.
    • Swoole\Process::statQueue - Get the stats of the message queue used as the communication method between processes.
    • Swoole\Process::useQueue - Create a message queue as the communication method between the parent process and child processes.
    • Swoole\Process::wait - Wait for the events of child processes.
    • Swoole\Process::write - Write data into the pipe and communicate with the parent process or child processes.
    • Swoole\Process::__construct - Construct a process.
    • Swoole\Process::__destruct - Destroy the process.
    • Swoole\Redis\Server::format - Description
    • Swoole\Redis\Server::setHandler - Description
    • Swoole\Redis\Server::start - Description
    • Swoole\Serialize::pack - Serialize the data.
    • Swoole\Serialize::unpack - Unserialize the data.
    • Swoole\Server::addlistener - Add a new listener to the server.
    • Swoole\Server::addProcess - Add a user defined swoole_process to the server.
    • Swoole\Server::after - Trigger a callback function after a period of time.
    • Swoole\Server::bind - Bind the connection to a user defined user ID.
    • Swoole\Server::clearTimer - Stop and destroy a timer.
    • Swoole\Server::close - Close a connection to the client.
    • Swoole\Server::confirm - Check status of the connection.
    • Swoole\Server::connection_info - Get the connection info by file description.
    • Swoole\Server::connection_list - Get all of the established connections.
    • Swoole\Server::defer - Delay execution of the callback function at the end of current EventLoop.
    • Swoole\Server::exist - Check if the connection is existed.
    • Swoole\Server::finish - Used in task process for sending result to the worker process when the task is finished.
    • Swoole\Server::getClientInfo - Get the connection info by file description.
    • Swoole\Server::getClientList - Get all of the established connections.
    • Swoole\Server::getLastError - Get the error code of the most recent error.
    • Swoole\Server::heartbeat - Check all the connections on the server.
    • Swoole\Server::listen - Listen on the given IP and port, socket type.
    • Swoole\Server::on - Register a callback function by event name.
    • Swoole\Server::pause - Stop receiving data from the connection.
    • Swoole\Server::protect - Set the connection to be protected mode.
    • Swoole\Server::reload - Restart all the worker process.
    • Swoole\Server::resume - Start receving data from the connection.
    • Swoole\Server::send - Send data to the client.
    • Swoole\Server::sendfile - Send file to the connection.
    • Swoole\Server::sendMessage - Send message to worker processes by ID.
    • Swoole\Server::sendto - Send data to the remote UDP address.
    • Swoole\Server::sendwait - Send data to the remote socket in the blocking way.
    • Swoole\Server::set - Set the runtime settings of the swoole server.
    • Swoole\Server::shutdown - Shutdown the master server process, this function can be called in worker processes.
    • Swoole\Server::start - Start the Swoole server.
    • Swoole\Server::stats - Get the stats of the Swoole server.
    • Swoole\Server::stop - Stop the Swoole server.
    • Swoole\Server::task - Send data to the task worker processes.
    • Swoole\Server::taskwait - Send data to the task worker processes in blocking way.
    • Swoole\Server::taskWaitMulti - Execute multiple tasks concurrently.
    • Swoole\Server::tick - Repeats a given function at every given time-interval.
    • Swoole\Server::__construct - Construct a Swoole server.
    • Swoole\Server\Port::on - Register callback functions by event.
    • Swoole\Server\Port::set - Set protocol of the server port.
    • Swoole\Server\Port::__construct - Construct a server port
    • Swoole\Server\Port::__destruct - Destory server port
    • Swoole\Table::column - Set the data type and size of the columns.
    • Swoole\Table::count - Count the rows in the table, or count all the elements in the table if $mode = 1.
    • Swoole\Table::create - Create the swoole memory table.
    • Swoole\Table::current - Get the current row.
    • Swoole\Table::decr - Decrement the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::del - Delete a row in the Swoole table by $row_key.
    • Swoole\Table::destroy - Destroy the Swoole table.
    • Swoole\Table::exist - Check if a row is existed by $row_key.
    • Swoole\Table::get - Get the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::incr - Increment the value by $row_key and $column_key.
    • Swoole\Table::key - Get the key of current row.
    • Swoole\Table::next - Iterator the next row.
    • Swoole\Table::rewind - Rewind the iterator.
    • Swoole\Table::set - Update a row of the table by $row_key.
    • Swoole\Table::valid - Check if the current row is valid.
    • Swoole\Table::__construct - Construct a Swoole memory table with fixed size.
    • Swoole\Timer::after - Trigger a callback function after a period of time.
    • Swoole\Timer::clear - Delete a timer by timer ID.
    • Swoole\Timer::exists - Check if a timer is existed.
    • Swoole\Timer::tick - Repeats a given function at every given time-interval.
    • Swoole\WebSocket\Server::exist - Check if the file descriptor exists.
    • Swoole\WebSocket\Server::on - Register event callback function
    • Swoole\WebSocket\Server::pack - Get a pack of binary data to send in a single frame.
    • Swoole\WebSocket\Server::push - Push data to the remote client.
    • Swoole\WebSocket\Server::unpack - Unpack the binary data received from the client.
    • swoole_async_dns_lookup - Async and non-blocking hostname to IP lookup
    • swoole_async_read - Read file stream asynchronously
    • swoole_async_readfile - Read a file asynchronously
    • swoole_async_set - Update the async I/O options
    • swoole_async_write - Write data to a file stream asynchronously
    • swoole_async_writefile - Write data to a file asynchronously
    • swoole_clear_error - Clear errors in the socket or on the last error code
    • swoole_client_select - Get the file description which are ready to read/write or error
    • swoole_cpu_num - Get the number of CPU
    • swoole_errno - Get the error code of the latest system call
    • swoole_error_log - Output error messages to the log
    • swoole_event_add - Add new callback functions of a socket into the EventLoop
    • swoole_event_defer - Add callback function to the next event loop
    • swoole_event_del - Remove all event callback functions of a socket
    • swoole_event_exit - Exit the eventloop, only available at the client side
    • swoole_event_set - Update the event callback functions of a socket
    • swoole_event_wait - Start the event loop
    • swoole_event_write - Write data to a socket
    • swoole_get_local_ip - Get the IPv4 IP addresses of each NIC on the machine
    • swoole_last_error - Get the lastest error message
    • swoole_load_module - Load a swoole extension
    • swoole_select - Select the file descriptions which are ready to read/write or error in the eventloop
    • swoole_set_process_name - Set the process name
    • swoole_strerror - Convert the Errno into error messages
    • swoole_timer_after - Trigger a one time callback function in the future
    • swoole_timer_exists - Check if a timer callback function is existed
    • swoole_timer_tick - Trigger a timer tick callback function by time interval
    • swoole_version - Get the version of Swoole
    • symlink - 建立符号连接
    • SyncEvent::fire - Fires/sets the event
    • SyncEvent::reset - Resets a manual event
    • SyncEvent::wait - Waits for the event to be fired/set
    • SyncEvent::__construct - Constructs a new SyncEvent object
    • SyncMutex::lock - Waits for an exclusive lock
    • SyncMutex::unlock - Unlocks the mutex
    • SyncMutex::__construct - Constructs a new SyncMutex object
    • SyncReaderWriter::readlock - Waits for a read lock
    • SyncReaderWriter::readunlock - Releases a read lock
    • SyncReaderWriter::writelock - Waits for an exclusive write lock
    • SyncReaderWriter::writeunlock - Releases a write lock
    • SyncReaderWriter::__construct - Constructs a new SyncReaderWriter object
    • SyncSemaphore::lock - Decreases the count of the semaphore or waits
    • SyncSemaphore::unlock - Increases the count of the semaphore
    • SyncSemaphore::__construct - Constructs a new SyncSemaphore object
    • SyncSharedMemory::first - Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read - Copy data from named shared memory
    • SyncSharedMemory::size - Returns the size of the named shared memory
    • SyncSharedMemory::write - Copy data to named shared memory
    • SyncSharedMemory::__construct - Constructs a new SyncSharedMemory object
    • syslog - Generate a system log message
    • system - 执行外部程序，并且显示输出
    • sys_getloadavg - 获取系统的负载（load average）
    • sys_get_temp_dir - 返回用于临时文件的目录
  • t
    • Table::count - Get row count
    • Table::delete - Delete rows from table
    • Table::existsInDatabase - Check if table exists in database
    • Table::getName - Get table name
    • Table::getSchema - Get table schema
    • Table::getSession - Get table session
    • Table::insert - Insert table rows
    • Table::isView - Check if table is view
    • Table::select - Select rows from table
    • Table::update - Update rows in table
    • Table::__construct - Table constructor
    • TableDelete::bind - Bind delete query parameters
    • TableDelete::execute - Execute delete query
    • TableDelete::limit - Limit deleted rows
    • TableDelete::orderby - Set delete sort criteria
    • TableDelete::where - Set delete search condition
    • TableDelete::__construct - TableDelete constructor
    • TableInsert::execute - Execute insert query
    • TableInsert::values - Add insert row values
    • TableInsert::__construct - TableInsert constructor
    • TableSelect::bind - Bind select query parameters
    • TableSelect::execute - Execute select statement
    • TableSelect::groupBy - Set select grouping criteria
    • TableSelect::having - Set select having condition
    • TableSelect::limit - Limit selected rows
    • TableSelect::lockExclusive - Execute EXCLUSIVE LOCK
    • TableSelect::lockShared - Execute SHARED LOCK
    • TableSelect::offset - Set limit offset
    • TableSelect::orderby - Set select sort criteria
    • TableSelect::where - Set select search condition
    • TableSelect::__construct - TableSelect constructor
    • TableUpdate::bind - Bind update query parameters
    • TableUpdate::execute - Execute update query
    • TableUpdate::limit - Limit update row count
    • TableUpdate::orderby - Set sorting criteria
    • TableUpdate::set - Add field to be updated
    • TableUpdate::where - Set search filter
    • TableUpdate::__construct - TableUpdate constructor
    • taint - Taint a string
    • tan - 正切
    • tanh - 双曲正切
    • tcpwrap_check - Performs a tcpwrap check
    • tempnam - 建立一个具有唯一文件名的文件
    • textdomain - Sets the default domain
    • Thread::getCreatorId - 识别
    • Thread::getCurrentThread - 识别
    • Thread::getCurrentThreadId - 识别
    • Thread::getThreadId - 识别
    • Thread::isJoined - 状态监测
    • Thread::isStarted - 状态检测
    • Thread::join - 同步
    • Thread::start - 执行
    • Threaded::chunk - 操作
    • Threaded::count - 操作
    • Threaded::extend - Runtime Manipulation
    • Threaded::isRunning - 状态检测
    • Threaded::isTerminated - 状态检测
    • Threaded::merge - 操作
    • Threaded::notify - 同步控制
    • Threaded::notifyOne - Synchronization
    • Threaded::pop - 操作
    • Threaded::run - 执行
    • Threaded::shift - Manipulation
    • Threaded::synchronized - 同步控制
    • Threaded::wait - Synchronization
    • Throwable::getCode - 获取异常代码
    • Throwable::getFile - 获取创建对象的文件
    • Throwable::getLine - 获取初始化对象时候的行号
    • Throwable::getMessage - 获取信息
    • Throwable::getPrevious - 返回先前的 Throwable
    • Throwable::getTrace - 获取堆栈踪迹（Stack Trace）
    • Throwable::getTraceAsString - 以 string 形式获取堆栈踪迹
    • Throwable::__toString - 获取 Throwable 对象 string 形式的表达
    • tidy::$errorBuffer - Return warnings and errors which occurred parsing the specified document
    • tidy::body - Returns a tidyNode object starting from the <body> tag of the tidy parse tree
    • tidy::cleanRepair - Execute configured cleanup and repair operations on parsed markup
    • tidy::diagnose - Run configured diagnostics on parsed and repaired markup
    • tidy::getConfig - Get current Tidy configuration
    • tidy::getHtmlVer - Get the Detected HTML version for the specified document
    • tidy::getOpt - Returns the value of the specified configuration option for the tidy document
    • tidy::getOptDoc - Returns the documentation for the given option name
    • tidy::getRelease - Get release date (version) for Tidy library
    • tidy::getStatus - Get status of specified document
    • tidy::head - Returns a tidyNode object starting from the <head> tag of the tidy parse tree
    • tidy::html - Returns a tidyNode object starting from the <html> tag of the tidy parse tree
    • tidy::isXhtml - Indicates if the document is a XHTML document
    • tidy::isXml - Indicates if the document is a generic (non HTML/XHTML) XML document
    • tidy::parseFile - Parse markup in file or URI
    • tidy::parseString - Parse a document stored in a string
    • tidy::repairFile - Repair a file and return it as a string
    • tidy::repairString - Repair a string using an optionally provided configuration file
    • tidy::root - Returns a tidyNode object representing the root of the tidy parse tree
    • tidy::__construct - Constructs a new tidy object
    • tidyNode::getParent - Returns the parent node of the current node
    • tidyNode::hasChildren - Checks if a node has children
    • tidyNode::hasSiblings - Checks if a node has siblings
    • tidyNode::isAsp - Checks if this node is ASP
    • tidyNode::isComment - Checks if a node represents a comment
    • tidyNode::isHtml - Checks if a node is an element node
    • tidyNode::isJste - Checks if this node is JSTE
    • tidyNode::isPhp - Checks if a node is PHP
    • tidyNode::isText - Checks if a node represents text (no markup)
    • tidyNode::__construct - Private constructor to disallow direct instantiation
    • tidy_access_count - Returns the Number of Tidy accessibility warnings encountered for specified document
    • tidy_config_count - Returns the Number of Tidy configuration errors encountered for specified document
    • tidy_error_count - Returns the Number of Tidy errors encountered for specified document
    • tidy_get_output - Return a string representing the parsed tidy markup
    • tidy_warning_count - Returns the Number of Tidy warnings encountered for specified document
    • time - 返回当前的 Unix 时间戳
    • timezone_abbreviations_list - 别名 DateTimeZone::listAbbreviations
    • timezone_identifiers_list - 别名 DateTimeZone::listIdentifiers
    • timezone_location_get - 别名 DateTimeZone::getLocation
    • timezone_name_from_abbr - Returns a timezone name by guessing from abbreviation and UTC offset
    • timezone_name_get - 别名 DateTimeZone::getName
    • timezone_offset_get - 别名 DateTimeZone::getOffset
    • timezone_open - 别名 DateTimeZone::__construct
    • timezone_transitions_get - 别名 DateTimeZone::getTransitions
    • timezone_version_get - 获取 timezonedb 版本
    • time_nanosleep - 延缓执行若干秒和纳秒
    • time_sleep_until - 使脚本睡眠到指定的时间为止
    • tmpfile - 建立一个临时文件
    • token_get_all - 将提供的源码按 PHP 标记进行分割
    • token_name - 获取提供的 PHP 解析器代号的符号名称
    • touch - 设定文件的访问和修改时间
    • trader_acos - Vector Trigonometric ACos
    • trader_ad - Chaikin A/D Line
    • trader_add - Vector Arithmetic Add
    • trader_adosc - Chaikin A/D Oscillator
    • trader_adx - Average Directional Movement Index
    • trader_adxr - Average Directional Movement Index Rating
    • trader_apo - Absolute Price Oscillator
    • trader_aroon - Aroon
    • trader_aroonosc - Aroon Oscillator
    • trader_asin - Vector Trigonometric ASin
    • trader_atan - Vector Trigonometric ATan
    • trader_atr - Average True Range
    • trader_avgprice - Average Price
    • trader_bbands - Bollinger Bands
    • trader_beta - Beta
    • trader_bop - Balance Of Power
    • trader_cci - Commodity Channel Index
    • trader_cdl2crows - Two Crows
    • trader_cdl3blackcrows - Three Black Crows
    • trader_cdl3inside - Three Inside Up/Down
    • trader_cdl3linestrike - Three-Line Strike
    • trader_cdl3outside - Three Outside Up/Down
    • trader_cdl3starsinsouth - Three Stars In The South
    • trader_cdl3whitesoldiers - Three Advancing White Soldiers
    • trader_cdlabandonedbaby - Abandoned Baby
    • trader_cdladvanceblock - Advance Block
    • trader_cdlbelthold - Belt-hold
    • trader_cdlbreakaway - Breakaway
    • trader_cdlclosingmarubozu - Closing Marubozu
    • trader_cdlconcealbabyswall - Concealing Baby Swallow
    • trader_cdlcounterattack - Counterattack
    • trader_cdldarkcloudcover - Dark Cloud Cover
    • trader_cdldoji - Doji
    • trader_cdldojistar - Doji Star
    • trader_cdldragonflydoji - Dragonfly Doji
    • trader_cdlengulfing - Engulfing Pattern
    • trader_cdleveningdojistar - Evening Doji Star
    • trader_cdleveningstar - Evening Star
    • trader_cdlgapsidesidewhite - Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji - Gravestone Doji
    • trader_cdlhammer - Hammer
    • trader_cdlhangingman - Hanging Man
    • trader_cdlharami - Harami Pattern
    • trader_cdlharamicross - Harami Cross Pattern
    • trader_cdlhighwave - High-Wave Candle
    • trader_cdlhikkake - Hikkake Pattern
    • trader_cdlhikkakemod - Modified Hikkake Pattern
    • trader_cdlhomingpigeon - Homing Pigeon
    • trader_cdlidentical3crows - Identical Three Crows
    • trader_cdlinneck - In-Neck Pattern
    • trader_cdlinvertedhammer - Inverted Hammer
    • trader_cdlkicking - Kicking
    • trader_cdlkickingbylength - Kicking - bull/bear determined by the longer marubozu
    • trader_cdlladderbottom - Ladder Bottom
    • trader_cdllongleggeddoji - Long Legged Doji
    • trader_cdllongline - Long Line Candle
    • trader_cdlmarubozu - Marubozu
    • trader_cdlmatchinglow - Matching Low
    • trader_cdlmathold - Mat Hold
    • trader_cdlmorningdojistar - Morning Doji Star
    • trader_cdlmorningstar - Morning Star
    • trader_cdlonneck - On-Neck Pattern
    • trader_cdlpiercing - Piercing Pattern
    • trader_cdlrickshawman - Rickshaw Man
    • trader_cdlrisefall3methods - Rising/Falling Three Methods
    • trader_cdlseparatinglines - Separating Lines
    • trader_cdlshootingstar - Shooting Star
    • trader_cdlshortline - Short Line Candle
    • trader_cdlspinningtop - Spinning Top
    • trader_cdlstalledpattern - Stalled Pattern
    • trader_cdlsticksandwich - Stick Sandwich
    • trader_cdltakuri - Takuri (Dragonfly Doji with very long lower shadow)
    • trader_cdltasukigap - Tasuki Gap
    • trader_cdlthrusting - Thrusting Pattern
    • trader_cdltristar - Tristar Pattern
    • trader_cdlunique3river - Unique 3 River
    • trader_cdlupsidegap2crows - Upside Gap Two Crows
    • trader_cdlxsidegap3methods - Upside/Downside Gap Three Methods
    • trader_ceil - Vector Ceil
    • trader_cmo - Chande Momentum Oscillator
    • trader_correl - Pearson's Correlation Coefficient (r)
    • trader_cos - Vector Trigonometric Cos
    • trader_cosh - Vector Trigonometric Cosh
    • trader_dema - Double Exponential Moving Average
    • trader_div - Vector Arithmetic Div
    • trader_dx - Directional Movement Index
    • trader_ema - Exponential Moving Average
    • trader_errno - Get error code
    • trader_exp - Vector Arithmetic Exp
    • trader_floor - Vector Floor
    • trader_get_compat - Get compatibility mode
    • trader_get_unstable_period - Get unstable period
    • trader_ht_dcperiod - Hilbert Transform - Dominant Cycle Period
    • trader_ht_dcphase - Hilbert Transform - Dominant Cycle Phase
    • trader_ht_phasor - Hilbert Transform - Phasor Components
    • trader_ht_sine - Hilbert Transform - SineWave
    • trader_ht_trendline - Hilbert Transform - Instantaneous Trendline
    • trader_ht_trendmode - Hilbert Transform - Trend vs Cycle Mode
    • trader_kama - Kaufman Adaptive Moving Average
    • trader_linearreg - Linear Regression
    • trader_linearreg_angle - Linear Regression Angle
    • trader_linearreg_intercept - Linear Regression Intercept
    • trader_linearreg_slope - Linear Regression Slope
    • trader_ln - Vector Log Natural
    • trader_log10 - Vector Log10
    • trader_ma - Moving average
    • trader_macd - Moving Average Convergence/Divergence
    • trader_macdext - MACD with controllable MA type
    • trader_macdfix - Moving Average Convergence/Divergence Fix 12/26
    • trader_mama - MESA Adaptive Moving Average
    • trader_mavp - Moving average with variable period
    • trader_max - Highest value over a specified period
    • trader_maxindex - Index of highest value over a specified period
    • trader_medprice - Median Price
    • trader_mfi - Money Flow Index
    • trader_midpoint - MidPoint over period
    • trader_midprice - Midpoint Price over period
    • trader_min - Lowest value over a specified period
    • trader_minindex - Index of lowest value over a specified period
    • trader_minmax - Lowest and highest values over a specified period
    • trader_minmaxindex - Indexes of lowest and highest values over a specified period
    • trader_minus_di - Minus Directional Indicator
    • trader_minus_dm - Minus Directional Movement
    • trader_mom - Momentum
    • trader_mult - Vector Arithmetic Mult
    • trader_natr - Normalized Average True Range
    • trader_obv - On Balance Volume
    • trader_plus_di - Plus Directional Indicator
    • trader_plus_dm - Plus Directional Movement
    • trader_ppo - Percentage Price Oscillator
    • trader_roc - Rate of change : ((price/prevPrice)-1)*100
    • trader_rocp - Rate of change Percentage: (price-prevPrice)/prevPrice
    • trader_rocr - Rate of change ratio: (price/prevPrice)
    • trader_rocr100 - Rate of change ratio 100 scale: (price/prevPrice)*100
    • trader_rsi - Relative Strength Index
    • trader_sar - Parabolic SAR
    • trader_sarext - Parabolic SAR - Extended
    • trader_set_compat - Set compatibility mode
    • trader_set_unstable_period - Set unstable period
    • trader_sin - Vector Trigonometric Sin
    • trader_sinh - Vector Trigonometric Sinh
    • trader_sma - Simple Moving Average
    • trader_sqrt - Vector Square Root
    • trader_stddev - Standard Deviation
    • trader_stoch - Stochastic
    • trader_stochf - Stochastic Fast
    • trader_stochrsi - Stochastic Relative Strength Index
    • trader_sub - Vector Arithmetic Subtraction
    • trader_sum - Summation
    • trader_t3 - Triple Exponential Moving Average (T3)
    • trader_tan - Vector Trigonometric Tan
    • trader_tanh - Vector Trigonometric Tanh
    • trader_tema - Triple Exponential Moving Average
    • trader_trange - True Range
    • trader_trima - Triangular Moving Average
    • trader_trix - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
    • trader_tsf - Time Series Forecast
    • trader_typprice - Typical Price
    • trader_ultosc - Ultimate Oscillator
    • trader_var - Variance
    • trader_wclprice - Weighted Close Price
    • trader_willr - Williams' %R
    • trader_wma - Weighted Moving Average
    • trait_exists - 检查指定的 trait 是否存在
    • Transliterator::create - Create a transliterator
    • Transliterator::createFromRules - Create transliterator from rules
    • Transliterator::createInverse - Create an inverse transliterator
    • Transliterator::getErrorCode - Get last error code
    • Transliterator::getErrorMessage - Get last error message
    • Transliterator::listIDs - Get transliterator IDs
    • Transliterator::transliterate - Transliterate a string
    • Transliterator::__construct - Private constructor to deny instantiation
    • trigger_error - 产生一个用户级别的 error/warning/notice 信息
    • trim - 去除字符串首尾处的空白字符（或者其他字符）
  • u
    • uasort - 使用用户定义的比较函数对数组进行排序并保持索引关联
    • ucfirst - 将字符串的首字母转换为大写
    • UConverter::convert - Convert string from one charset to another
    • UConverter::fromUCallback - Default "from" callback function
    • UConverter::getAliases - Get the aliases of the given name
    • UConverter::getAvailable - Get the available canonical converter names
    • UConverter::getDestinationEncoding - Get the destination encoding
    • UConverter::getDestinationType - Get the destination converter type
    • UConverter::getErrorCode - Get last error code on the object
    • UConverter::getErrorMessage - Get last error message on the object
    • UConverter::getSourceEncoding - Get the source encoding
    • UConverter::getSourceType - Get the source converter type
    • UConverter::getStandards - Get standards associated to converter names
    • UConverter::getSubstChars - Get substitution chars
    • UConverter::reasonText - Get string representation of the callback reason
    • UConverter::setDestinationEncoding - Set the destination encoding
    • UConverter::setSourceEncoding - Set the source encoding
    • UConverter::setSubstChars - Set the substitution chars
    • UConverter::toUCallback - Default "to" callback function
    • UConverter::transcode - Convert a string from one character encoding to another
    • UConverter::__construct - Create UConverter object
    • ucwords - 将字符串中每个单词的首字母转换为大写
    • UI\Area::onDraw - Draw Callback
    • UI\Area::onKey - Key Callback
    • UI\Area::onMouse - Mouse Callback
    • UI\Area::redraw - Redraw Area
    • UI\Area::scrollTo - Area Scroll
    • UI\Area::setSize - Set Size
    • UI\Control::destroy - Destroy Control
    • UI\Control::disable - Disable Control
    • UI\Control::enable - Enable Control
    • UI\Control::getParent - Get Parent Control
    • UI\Control::getTopLevel - Get Top Level
    • UI\Control::hide - Hide Control
    • UI\Control::isEnabled - Determine if Control is enabled
    • UI\Control::isVisible - Determine if Control is visible
    • UI\Control::setParent - Set Parent Control
    • UI\Control::show - Control Show
    • UI\Controls\Box::append - Append Control
    • UI\Controls\Box::delete - Delete Control
    • UI\Controls\Box::getOrientation - Get Orientation
    • UI\Controls\Box::isPadded - Padding Detection
    • UI\Controls\Box::setPadded - Set Padding
    • UI\Controls\Box::__construct - Construct a new Box
    • UI\Controls\Button::getText - Get Text
    • UI\Controls\Button::onClick - Click Handler
    • UI\Controls\Button::setText - Set Text
    • UI\Controls\Button::__construct - Construct a new Button
    • UI\Controls\Check::getText - Get Text
    • UI\Controls\Check::isChecked - Checked Detection
    • UI\Controls\Check::onToggle - Toggle Callback
    • UI\Controls\Check::setChecked - Set Checked
    • UI\Controls\Check::setText - Set Text
    • UI\Controls\Check::__construct - Construct a new Check
    • UI\Controls\ColorButton::getColor - Get Color
    • UI\Controls\ColorButton::onChange - Change Handler
    • UI\Controls\ColorButton::setColor - Set Color
    • UI\Controls\Combo::append - Append Option
    • UI\Controls\Combo::getSelected - Get Selected Option
    • UI\Controls\Combo::onSelected - Selected Handler
    • UI\Controls\Combo::setSelected - Set Selected Option
    • UI\Controls\EditableCombo::append - Append Option
    • UI\Controls\EditableCombo::getText - Get Text
    • UI\Controls\EditableCombo::onChange - Change Handler
    • UI\Controls\EditableCombo::setText - Set Text
    • UI\Controls\Entry::getText - Get Text
    • UI\Controls\Entry::isReadOnly - Detect Read Only
    • UI\Controls\Entry::onChange - Change Handler
    • UI\Controls\Entry::setReadOnly - Set Read Only
    • UI\Controls\Entry::setText - Set Text
    • UI\Controls\Entry::__construct - Construct a new Entry
    • UI\Controls\Form::append - Append Control
    • UI\Controls\Form::delete - Delete Control
    • UI\Controls\Form::isPadded - Padding Detection
    • UI\Controls\Form::setPadded - Set Padding
    • UI\Controls\Grid::append - Append Control
    • UI\Controls\Grid::isPadded - Padding Detection
    • UI\Controls\Grid::setPadded - Set Padding
    • UI\Controls\Group::append - Append Control
    • UI\Controls\Group::getTitle - Get Title
    • UI\Controls\Group::hasMargin - Margin Detection
    • UI\Controls\Group::setMargin - Set Margin
    • UI\Controls\Group::setTitle - Set Title
    • UI\Controls\Group::__construct - Construct a new Group
    • UI\Controls\Label::getText - Get Text
    • UI\Controls\Label::setText - Set Text
    • UI\Controls\Label::__construct - Construct a new Label
    • UI\Controls\MultilineEntry::append - Append Text
    • UI\Controls\MultilineEntry::getText - Get Text
    • UI\Controls\MultilineEntry::isReadOnly - Read Only Detection
    • UI\Controls\MultilineEntry::onChange - Change Handler
    • UI\Controls\MultilineEntry::setReadOnly - Set Read Only
    • UI\Controls\MultilineEntry::setText - Set Text
    • UI\Controls\MultilineEntry::__construct - Construct a new Multiline Entry
    • UI\Controls\Picker::__construct - Construct a new Picker
    • UI\Controls\Progress::getValue - Get Value
    • UI\Controls\Progress::setValue - Set Value
    • UI\Controls\Radio::append - Append Option
    • UI\Controls\Radio::getSelected - Get Selected Option
    • UI\Controls\Radio::onSelected - Selected Handler
    • UI\Controls\Radio::setSelected - Set Selected Option
    • UI\Controls\Separator::__construct - Construct a new Separator
    • UI\Controls\Slider::getValue - Get Value
    • UI\Controls\Slider::onChange - Change Handler
    • UI\Controls\Slider::setValue - Set Value
    • UI\Controls\Slider::__construct - Construct a new Slider
    • UI\Controls\Spin::getValue - Get Value
    • UI\Controls\Spin::onChange - Change Handler
    • UI\Controls\Spin::setValue - Set Value
    • UI\Controls\Spin::__construct - Construct a new Spin
    • UI\Controls\Tab::append - Append Page
    • UI\Controls\Tab::delete - Delete Page
    • UI\Controls\Tab::hasMargin - Margin Detection
    • UI\Controls\Tab::insertAt - Insert Page
    • UI\Controls\Tab::pages - Page Count
    • UI\Controls\Tab::setMargin - Set Margin
    • UI\Draw\Brush::getColor - Get Color
    • UI\Draw\Brush::setColor - Set Color
    • UI\Draw\Brush::__construct - Construct a new Brush
    • UI\Draw\Brush\Gradient::addStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop - Stop Manipulation
    • UI\Draw\Brush\LinearGradient::__construct - Construct a Linear Gradient
    • UI\Draw\Brush\RadialGradient::__construct - Construct a new Radial Gradient
    • UI\Draw\Color::getChannel - Color Manipulation
    • UI\Draw\Color::setChannel - Color Manipulation
    • UI\Draw\Color::__construct - Construct new Color
    • UI\Draw\Matrix::invert - Invert Matrix
    • UI\Draw\Matrix::isInvertible - Invertible Detection
    • UI\Draw\Matrix::multiply - Multiply Matrix
    • UI\Draw\Matrix::rotate - Rotate Matrix
    • UI\Draw\Matrix::scale - Scale Matrix
    • UI\Draw\Matrix::skew - Skew Matrix
    • UI\Draw\Matrix::translate - Translate Matrix
    • UI\Draw\Path::addRectangle - Draw a Rectangle
    • UI\Draw\Path::arcTo - Draw an Arc
    • UI\Draw\Path::bezierTo - Draw Bezier Curve
    • UI\Draw\Path::closeFigure - Close Figure
    • UI\Draw\Path::end - Finalize Path
    • UI\Draw\Path::lineTo - Draw a Line
    • UI\Draw\Path::newFigure - Draw Figure
    • UI\Draw\Path::newFigureWithArc - Draw Figure with Arc
    • UI\Draw\Path::__construct - Construct a new Path
    • UI\Draw\Pen::clip - Clip a Path
    • UI\Draw\Pen::fill - Fill a Path
    • UI\Draw\Pen::restore - Restore
    • UI\Draw\Pen::save - Save
    • UI\Draw\Pen::stroke - Stroke a Path
    • UI\Draw\Pen::transform - Matrix Transform
    • UI\Draw\Pen::write - Draw Text at Point
    • UI\Draw\Stroke::getCap - Get Line Cap
    • UI\Draw\Stroke::getJoin - Get Line Join
    • UI\Draw\Stroke::getMiterLimit - Get Miter Limit
    • UI\Draw\Stroke::getThickness - Get Thickness
    • UI\Draw\Stroke::setCap - Set Line Cap
    • UI\Draw\Stroke::setJoin - Set Line Join
    • UI\Draw\Stroke::setMiterLimit - Set Miter Limit
    • UI\Draw\Stroke::setThickness - Set Thickness
    • UI\Draw\Stroke::__construct - Construct a new Stroke
    • UI\Draw\Text\Font::getAscent - Font Metrics
    • UI\Draw\Text\Font::getDescent - Font Metrics
    • UI\Draw\Text\Font::getLeading - Font Metrics
    • UI\Draw\Text\Font::getUnderlinePosition - Font Metrics
    • UI\Draw\Text\Font::getUnderlineThickness - Font Metrics
    • UI\Draw\Text\Font::__construct - Construct a new Font
    • UI\Draw\Text\Font\Descriptor::getFamily - Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic - Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize - Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch - Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight - Weight Detection
    • UI\Draw\Text\Font\Descriptor::__construct - Construct a new Font Descriptor
    • UI\Draw\Text\Font\fontFamilies - Retrieve Font Families
    • UI\Draw\Text\Layout::setColor - Set Color
    • UI\Draw\Text\Layout::setWidth - Set Width
    • UI\Draw\Text\Layout::__construct - Construct a new Text Layout
    • UI\Executor::kill - Stop Executor
    • UI\Executor::onExecute - Execution Callback
    • UI\Executor::setInterval - Interval Manipulation
    • UI\Executor::__construct - Construct a new Executor
    • UI\Menu::append - Append Menu Item
    • UI\Menu::appendAbout - Append About Menu Item
    • UI\Menu::appendCheck - Append Checkable Menu Item
    • UI\Menu::appendPreferences - Append Preferences Menu Item
    • UI\Menu::appendQuit - Append Quit Menu Item
    • UI\Menu::appendSeparator - Append Menu Item Separator
    • UI\Menu::__construct - Construct a new Menu
    • UI\MenuItem::disable - Disable Menu Item
    • UI\MenuItem::enable - Enable Menu Item
    • UI\MenuItem::isChecked - Detect Checked
    • UI\MenuItem::onClick - On Click Callback
    • UI\MenuItem::setChecked - Set Checked
    • UI\Point::at - Size Coercion
    • UI\Point::getX - Retrieves X
    • UI\Point::getY - Retrieves Y
    • UI\Point::setX - Set X
    • UI\Point::setY - Set Y
    • UI\Point::__construct - Construct a new Point
    • UI\quit - Quit UI Loop
    • UI\run - Enter UI Loop
    • UI\Size::getHeight - Retrieves Height
    • UI\Size::getWidth - Retrives Width
    • UI\Size::of - Point Coercion
    • UI\Size::setHeight - Set Height
    • UI\Size::setWidth - Set Width
    • UI\Size::__construct - Construct a new Size
    • UI\Window::add - Add a Control
    • UI\Window::error - Show Error Box
    • UI\Window::getSize - Get Window Size
    • UI\Window::getTitle - Get Title
    • UI\Window::hasBorders - Border Detection
    • UI\Window::hasMargin - Margin Detection
    • UI\Window::isFullScreen - Full Screen Detection
    • UI\Window::msg - Show Message Box
    • UI\Window::onClosing - Closing Callback
    • UI\Window::open - Open Dialog
    • UI\Window::save - Save Dialog
    • UI\Window::setBorders - Border Use
    • UI\Window::setFullScreen - Full Screen Use
    • UI\Window::setMargin - Margin Use
    • UI\Window::setSize - Set Size
    • UI\Window::setTitle - Window Title
    • UI\Window::__construct - Construct a new Window
    • uksort - 使用用户自定义的比较函数对数组中的键名进行排序
    • umask - 改变当前的 umask
    • uniqid - 生成一个唯一ID
    • UnitEnum::cases - 生成枚举的条目清单
    • unixtojd - 将 Unix 时间戳转换为儒略日数
    • unlink - 删除文件
    • unpack - Unpack data from binary string
    • unregister_tick_function - 注销每个 tick 上需要执行的函数
    • unserialize - 从已存储的表示中创建 PHP 的值
    • unset - 清除指定变量
    • untaint - Untaint strings
    • uopz_add_function - Adds non-existent function or method
    • uopz_allow_exit - Allows control over disabled exit opcode
    • uopz_backup - Backup a function
    • uopz_compose - Compose a class
    • uopz_copy - Copy a function
    • uopz_delete - Delete a function
    • uopz_del_function - Deletes previously added function or method
    • uopz_extend - Extend a class at runtime
    • uopz_flags - Get or set flags on function or class
    • uopz_function - Creates a function at runtime
    • uopz_get_exit_status - Retrieve the last set exit status
    • uopz_get_hook - Gets previously set hook on function or method
    • uopz_get_mock - Get the current mock for a class
    • uopz_get_property - Gets value of class or instance property
    • uopz_get_return - Gets a previous set return value for a function
    • uopz_get_static - Gets the static variables from function or method scope
    • uopz_implement - Implements an interface at runtime
    • uopz_overload - Overload a VM opcode
    • uopz_redefine - Redefine a constant
    • uopz_rename - Rename a function at runtime
    • uopz_restore - Restore a previously backed up function
    • uopz_set_hook - Sets hook to execute when entering a function or method
    • uopz_set_mock - Use mock instead of class for new objects
    • uopz_set_property - Sets value of existing class or instance property
    • uopz_set_return - Provide a return value for an existing function
    • uopz_set_static - Sets the static variables in function or method scope
    • uopz_undefine - Undefine a constant
    • uopz_unset_hook - Removes previously set hook on function or method
    • uopz_unset_mock - Unset previously set mock
    • uopz_unset_return - Unsets a previously set return value for a function
    • urldecode - 解码已编码的 URL 字符串
    • urlencode - 编码 URL 字符串
    • user_error - 别名 trigger_error
    • use_soap_error_handler - Set whether to use the SOAP error handler
    • usleep - 以指定的微秒数延迟执行
    • usort - 使用用户自定义的比较函数对数组中的值进行排序
    • utf8_decode - 将字符串从 UTF-8 转换为 ISO-8859-1，替换无效或者无法表示的字符。
    • utf8_encode - 将字符串从 ISO-8859-1 转换为 UTF-8 编码
  • v
    • V8Js::executeString - Execute a string as Javascript code
    • V8Js::getExtensions - Return an array of registered extensions
    • V8Js::getPendingException - Return pending uncaught Javascript exception
    • V8Js::registerExtension - Register Javascript extensions for V8Js
    • V8Js::__construct - Construct a new V8Js object
    • V8JsException::getJsFileName - The getJsFileName purpose
    • V8JsException::getJsLineNumber - The getJsLineNumber purpose
    • V8JsException::getJsSourceLine - The getJsSourceLine purpose
    • V8JsException::getJsTrace - The getJsTrace purpose
    • variant::__construct - variant class constructor
    • variant_abs - Returns the absolute value of a variant
    • variant_add - "Adds" two variant values together and returns the result
    • variant_and - Performs a bitwise AND operation between two variants
    • variant_cast - Convert a variant into a new variant object of another type
    • variant_cat - Concatenates two variant values together and returns the result
    • variant_cmp - Compares two variants
    • variant_date_from_timestamp - Returns a variant date representation of a Unix timestamp
    • variant_date_to_timestamp - Converts a variant date/time value to Unix timestamp
    • variant_div - Returns the result from dividing two variants
    • variant_eqv - Performs a bitwise equivalence on two variants
    • variant_fix - Returns the integer portion of a variant
    • variant_get_type - Returns the type of a variant object
    • variant_idiv - Converts variants to integers and then returns the result from dividing them
    • variant_imp - Performs a bitwise implication on two variants
    • variant_int - Returns the integer portion of a variant
    • variant_mod - Divides two variants and returns only the remainder
    • variant_mul - Multiplies the values of the two variants
    • variant_neg - Performs logical negation on a variant
    • variant_not - Performs bitwise not negation on a variant
    • variant_or - Performs a logical disjunction on two variants
    • variant_pow - Returns the result of performing the power function with two variants
    • variant_round - Rounds a variant to the specified number of decimal places
    • variant_set - Assigns a new value for a variant object
    • variant_set_type - Convert a variant into another type "in-place"
    • variant_sub - Subtracts the value of the right variant from the left variant value
    • variant_xor - Performs a logical exclusion on two variants
    • VarnishAdmin::auth - Authenticate on a varnish instance
    • VarnishAdmin::ban - Ban URLs using a VCL expression
    • VarnishAdmin::banUrl - Ban an URL using a VCL expression
    • VarnishAdmin::clearPanic - Clear varnish instance panic messages
    • VarnishAdmin::connect - Connect to a varnish instance administration interface
    • VarnishAdmin::disconnect - Disconnect from a varnish instance administration interface
    • VarnishAdmin::getPanic - Get the last panic message on a varnish instance
    • VarnishAdmin::getParams - Fetch current varnish instance configuration parameters
    • VarnishAdmin::isRunning - Check if the varnish slave process is currently running
    • VarnishAdmin::setCompat - Set the class compat configuration param
    • VarnishAdmin::setHost - Set the class host configuration param
    • VarnishAdmin::setIdent - Set the class ident configuration param
    • VarnishAdmin::setParam - Set configuration param on the current varnish instance
    • VarnishAdmin::setPort - Set the class port configuration param
    • VarnishAdmin::setSecret - Set the class secret configuration param
    • VarnishAdmin::setTimeout - Set the class timeout configuration param
    • VarnishAdmin::start - Start varnish worker process
    • VarnishAdmin::stop - Stop varnish worker process
    • VarnishAdmin::__construct - VarnishAdmin constructor
    • VarnishLog::getLine - Get next log line
    • VarnishLog::getTagName - Get the log tag string representation by its index
    • VarnishLog::__construct - Varnishlog constructor
    • VarnishStat::getSnapshot - Get the current varnish instance statistics snapshot
    • VarnishStat::__construct - VarnishStat constructor
    • var_dump - 打印变量的相关信息
    • var_export - 输出或返回变量的可解析字符串表示
    • var_representation - Returns a short, readable, parsable string representation of a variable
    • version_compare - 对比两个「PHP 规范化」的版本数字字符串
    • vfprintf - 将格式化字符串写入流
    • virtual - 执行 Apache 子请求
    • vprintf - 输出格式化字符串
    • vsprintf - 返回格式化字符串
    • Vtiful\Kernel\Excel::addSheet - Vtiful\Kernel\Excel addSheet
    • Vtiful\Kernel\Excel::autoFilter - Vtiful\Kernel\Excel autoFilter
    • Vtiful\Kernel\Excel::constMemory - Vtiful\Kernel\Excel constMemory
    • Vtiful\Kernel\Excel::data - Vtiful\Kernel\Excel data
    • Vtiful\Kernel\Excel::fileName - Vtiful\Kernel\Excel fileName
    • Vtiful\Kernel\Excel::getHandle - Vtiful\Kernel\Excel getHandle
    • Vtiful\Kernel\Excel::header - Vtiful\Kernel\Excel header
    • Vtiful\Kernel\Excel::insertFormula - Vtiful\Kernel\Excel insertFormula
    • Vtiful\Kernel\Excel::insertImage - Vtiful\Kernel\Excel insertImage
    • Vtiful\Kernel\Excel::insertText - Vtiful\Kernel\Excel insertText
    • Vtiful\Kernel\Excel::mergeCells - Vtiful\Kernel\Excel mergeCells
    • Vtiful\Kernel\Excel::output - Vtiful\Kernel\Excel output
    • Vtiful\Kernel\Excel::setColumn - Vtiful\Kernel\Excel setColumn
    • Vtiful\Kernel\Excel::setRow - Vtiful\Kernel\Excel setRow
    • Vtiful\Kernel\Excel::__construct - Vtiful\Kernel\Excel constructor
    • Vtiful\Kernel\Format::align - Vtiful\Kernel\Format align
    • Vtiful\Kernel\Format::bold - Vtiful\Kernel\Format bold
    • Vtiful\Kernel\Format::italic - Vtiful\Kernel\Format italic
    • Vtiful\Kernel\Format::underline - Vtiful\Kernel\Format underline
  • w
    • Warning::__construct - Warning constructor
    • wddx_add_vars - Add variables to a WDDX packet with the specified ID
    • wddx_deserialize - Unserializes a WDDX packet
    • wddx_packet_end - Ends a WDDX packet with the specified ID
    • wddx_packet_start - Starts a new WDDX packet with structure inside it
    • wddx_serialize_value - Serialize a single value into a WDDX packet
    • wddx_serialize_vars - Serialize variables into a WDDX packet
    • WeakMap::count - 统计 map 中存活实体的数量
    • WeakMap::getIterator - 接收一个外部迭代器
    • WeakMap::offsetExists - 检测 map 中是否存在某个对象
    • WeakMap::offsetGet - 返回某个对象指向的值
    • WeakMap::offsetSet - 更新 map 新的键值对
    • WeakMap::offsetUnset - 从 map 中移除一条
    • WeakReference::create - 创建新的弱引用
    • WeakReference::get - 获取弱引用对象
    • WeakReference::__construct - 不允许实例化的构造函数
    • win32_continue_service - Resumes a paused service
    • win32_create_service - Creates a new service entry in the SCM database
    • win32_delete_service - Deletes a service entry from the SCM database
    • win32_get_last_control_message - Returns the last control message that was sent to this service
    • win32_pause_service - Pauses a service
    • win32_query_service_status - Queries the status of a service
    • win32_send_custom_control - Send a custom control to the service
    • win32_set_service_exit_code - Define or return the exit code for the current running service
    • win32_set_service_exit_mode - Define or return the exit mode for the current running service
    • win32_set_service_status - Update the service status
    • win32_start_service - Starts a service
    • win32_start_service_ctrl_dispatcher - Registers the script with the SCM, so that it can act as the service with the given name
    • win32_stop_service - Stops a service
    • wincache_fcache_fileinfo - Retrieves information about files cached in the file cache
    • wincache_fcache_meminfo - Retrieves information about file cache memory usage
    • wincache_lock - Acquires an exclusive lock on a given key
    • wincache_ocache_fileinfo - Retrieves information about files cached in the opcode cache
    • wincache_ocache_meminfo - Retrieves information about opcode cache memory usage
    • wincache_refresh_if_changed - Refreshes the cache entries for the cached files
    • wincache_rplist_fileinfo - Retrieves information about resolve file path cache
    • wincache_rplist_meminfo - Retrieves information about memory usage by the resolve file path cache
    • wincache_scache_info - Retrieves information about files cached in the session cache
    • wincache_scache_meminfo - Retrieves information about session cache memory usage
    • wincache_ucache_add - Adds a variable in user cache only if variable does not already exist in the cache
    • wincache_ucache_cas - Compares the variable with old value and assigns new value to it
    • wincache_ucache_clear - Deletes entire content of the user cache
    • wincache_ucache_dec - Decrements the value associated with the key
    • wincache_ucache_delete - Deletes variables from the user cache
    • wincache_ucache_exists - Checks if a variable exists in the user cache
    • wincache_ucache_get - Gets a variable stored in the user cache
    • wincache_ucache_inc - Increments the value associated with the key
    • wincache_ucache_info - Retrieves information about data stored in the user cache
    • wincache_ucache_meminfo - Retrieves information about user cache memory usage
    • wincache_ucache_set - Adds a variable in user cache and overwrites a variable if it already exists in the cache
    • wincache_unlock - Releases an exclusive lock on a given key
    • wkhtmltox\Image\Converter::convert - Perform Image conversion
    • wkhtmltox\Image\Converter::getVersion - Determine version of Converter
    • wkhtmltox\Image\Converter::__construct - Create a new Image converter
    • wkhtmltox\PDF\Converter::add - Add an object for conversion
    • wkhtmltox\PDF\Converter::convert - Perform PDF conversion
    • wkhtmltox\PDF\Converter::getVersion - Determine version of Converter
    • wkhtmltox\PDF\Converter::__construct - Create a new PDF converter
    • wkhtmltox\PDF\Object::__construct - Create a new PDF Object
    • wordwrap - 打断字符串为指定数量的字串
    • Worker::collect - Collect references to completed tasks
    • Worker::getStacked - 获取剩余的栈大小
    • Worker::isShutdown - 状态检测
    • Worker::shutdown - 关闭 Worker
    • Worker::stack - 将要执行的任务入栈
    • Worker::unstack - 将要执行的任务出栈
  • x
    • xattr_get - Get an extended attribute
    • xattr_list - Get a list of extended attributes
    • xattr_remove - Remove an extended attribute
    • xattr_set - Set an extended attribute
    • xattr_supported - Check if filesystem supports extended attributes
    • xdiff_file_bdiff - Make binary diff of two files
    • xdiff_file_bdiff_size - Read a size of file created by applying a binary diff
    • xdiff_file_bpatch - Patch a file with a binary diff
    • xdiff_file_diff - Make unified diff of two files
    • xdiff_file_diff_binary - 别名 xdiff_file_bdiff
    • xdiff_file_merge3 - Merge 3 files into one
    • xdiff_file_patch - Patch a file with an unified diff
    • xdiff_file_patch_binary - 别名 xdiff_file_bpatch
    • xdiff_file_rabdiff - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
    • xdiff_string_bdiff - Make binary diff of two strings
    • xdiff_string_bdiff_size - Read a size of file created by applying a binary diff
    • xdiff_string_bpatch - Patch a string with a binary diff
    • xdiff_string_diff - Make unified diff of two strings
    • xdiff_string_diff_binary - 别名 xdiff_string_bdiff
    • xdiff_string_merge3 - Merge 3 strings into one
    • xdiff_string_patch - Patch a string with an unified diff
    • xdiff_string_patch_binary - 别名 xdiff_string_bpatch
    • xdiff_string_rabdiff - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm
    • xhprof_disable - 停止 xhprof 分析器
    • xhprof_enable - 启动 xhprof 性能分析器
    • xhprof_sample_disable - 停止 xhprof 性能采样分析器
    • xhprof_sample_enable - 以采样模式启动 XHProf 性能分析
    • XMLDiff\Base::diff - Produce diff of two XML documents
    • XMLDiff\Base::merge - Produce new XML document based on diff
    • XMLDiff\Base::__construct - Constructor
    • XMLDiff\DOM::diff - Diff two DOMDocument objects
    • XMLDiff\DOM::merge - Produce merged DOMDocument
    • XMLDiff\File::diff - Diff two XML files
    • XMLDiff\File::merge - Produce merged XML document
    • XMLDiff\Memory::diff - Diff two XML documents
    • XMLDiff\Memory::merge - Produce merged XML document
    • XMLReader::close - Close the XMLReader input
    • XMLReader::expand - Returns a copy of the current node as a DOM object
    • XMLReader::getAttribute - Get the value of a named attribute
    • XMLReader::getAttributeNo - Get the value of an attribute by index
    • XMLReader::getAttributeNs - Get the value of an attribute by localname and URI
    • XMLReader::getParserProperty - Indicates if specified property has been set
    • XMLReader::isValid - Indicates if the parsed document is valid
    • XMLReader::lookupNamespace - Lookup namespace for a prefix
    • XMLReader::moveToAttribute - Move cursor to a named attribute
    • XMLReader::moveToAttributeNo - Move cursor to an attribute by index
    • XMLReader::moveToAttributeNs - Move cursor to a named attribute
    • XMLReader::moveToElement - Position cursor on the parent Element of current Attribute
    • XMLReader::moveToFirstAttribute - Position cursor on the first Attribute
    • XMLReader::moveToNextAttribute - Position cursor on the next Attribute
    • XMLReader::next - Move cursor to next node skipping all subtrees
    • XMLReader::open - Set the URI containing the XML to parse
    • XMLReader::read - Move to next node in document
    • XMLReader::readInnerXml - Retrieve XML from current node
    • XMLReader::readOuterXml - Retrieve XML from current node, including itself
    • XMLReader::readString - Reads the contents of the current node as a string
    • XMLReader::setParserProperty - Set parser options
    • XMLReader::setRelaxNGSchema - Set the filename or URI for a RelaxNG Schema
    • XMLReader::setRelaxNGSchemaSource - Set the data containing a RelaxNG Schema
    • XMLReader::setSchema - Validate document against XSD
    • XMLReader::XML - Set the data containing the XML to parse
    • xmlrpc_decode - 将 XML 解码为原生 PHP 类型
    • xmlrpc_decode_request - 将 XML 解码为原生 PHP 类型
    • xmlrpc_encode - 为 PHP 值生成 XML
    • xmlrpc_encode_request - 为方法请求生成 XML
    • xmlrpc_get_type - 获取 PHP 值的 xmlrpc 类型
    • xmlrpc_is_fault - Determines if an array value represents an XMLRPC fault
    • xmlrpc_parse_method_descriptions - 将 XML 解码为方法描述列表
    • xmlrpc_server_add_introspection_data - 添加自我描述文档
    • xmlrpc_server_call_method - 解析 XML 请求和调用方法
    • xmlrpc_server_create - 创建 xmlrpc 服务器
    • xmlrpc_server_destroy - 销毁服务端资源
    • xmlrpc_server_register_introspection_callback - 注册 PHP 函数来生成文档
    • xmlrpc_server_register_method - 注册 PHP 函数搭到资源用于匹配 method_name
    • xmlrpc_set_type - 为 PHP 字符串值设置 xmlrpc 类型，base64 或 datetime
    • XMLWriter::endAttribute - End attribute
    • XMLWriter::endCdata - End current CDATA
    • XMLWriter::endComment - Create end comment
    • XMLWriter::endDocument - End current document
    • XMLWriter::endDtd - End current DTD
    • XMLWriter::endDtdAttlist - End current DTD AttList
    • XMLWriter::endDtdElement - End current DTD element
    • XMLWriter::endDtdEntity - End current DTD Entity
    • XMLWriter::endElement - End current element
    • XMLWriter::endPi - End current PI
    • XMLWriter::flush - Flush current buffer
    • XMLWriter::fullEndElement - End current element
    • XMLWriter::openMemory - Create new xmlwriter using memory for string output
    • XMLWriter::openUri - Create new xmlwriter using source uri for output
    • XMLWriter::outputMemory - Returns current buffer
    • XMLWriter::setIndent - Toggle indentation on/off
    • XMLWriter::setIndentString - Set string used for indenting
    • XMLWriter::startAttribute - Create start attribute
    • XMLWriter::startAttributeNs - Create start namespaced attribute
    • XMLWriter::startCdata - Create start CDATA tag
    • XMLWriter::startComment - Create start comment
    • XMLWriter::startDocument - Create document tag
    • XMLWriter::startDtd - Create start DTD tag
    • XMLWriter::startDtdAttlist - Create start DTD AttList
    • XMLWriter::startDtdElement - Create start DTD element
    • XMLWriter::startDtdEntity - Create start DTD Entity
    • XMLWriter::startElement - Create start element tag
    • XMLWriter::startElementNs - Create start namespaced element tag
    • XMLWriter::startPi - Create start PI tag
    • XMLWriter::text - Write text
    • XMLWriter::writeAttribute - Write full attribute
    • XMLWriter::writeAttributeNs - Write full namespaced attribute
    • XMLWriter::writeCdata - Write full CDATA tag
    • XMLWriter::writeComment - Write full comment tag
    • XMLWriter::writeDtd - Write full DTD tag
    • XMLWriter::writeDtdAttlist - Write full DTD AttList tag
    • XMLWriter::writeDtdElement - Write full DTD element tag
    • XMLWriter::writeDtdEntity - Write full DTD Entity tag
    • XMLWriter::writeElement - Write full element tag
    • XMLWriter::writeElementNs - Write full namespaced element tag
    • XMLWriter::writePi - Writes a PI
    • XMLWriter::writeRaw - Write a raw XML text
    • xml_error_string - 获取 XML 解析器的错误字符串
    • xml_get_current_byte_index - 获取 XML 解析器的当前字节索引
    • xml_get_current_column_number - 获取 XML 解析器的当前列号
    • xml_get_current_line_number - 获取 XML 解析器的当前行号
    • xml_get_error_code - 获取 XML 解析器错误代码
    • xml_parse - 开始解析 XML 文档
    • xml_parser_create - 创建 XML 解析器
    • xml_parser_create_ns - 创建支持命名空间的 XML 解析器
    • xml_parser_free - 释放 XML 解析器
    • xml_parser_get_option - 从 XML 解析器获取选项
    • xml_parser_set_option - 在 XML 解析器中设置选项
    • xml_parse_into_struct - 解析 XML 数据到数组中
    • xml_set_character_data_handler - 建立字符数据处理器
    • xml_set_default_handler - 建立默认处理程序
    • xml_set_element_handler - 建立起始和终止元素处理程序
    • xml_set_end_namespace_decl_handler - 设置终止命名空间声明处理程序
    • xml_set_external_entity_ref_handler - 设置外部实体引用处理程序
    • xml_set_notation_decl_handler - 设置符号声明处理程序
    • xml_set_object - 在对象中使用 XML 解析器
    • xml_set_processing_instruction_handler - 建立处理指令（PI）处理程序
    • xml_set_start_namespace_decl_handler - 设置起始命名空间声明处理程序
    • xml_set_unparsed_entity_decl_handler - 建立未解析实体定义声明处理程序
    • XSLTProcessor::getParameter - Get value of a parameter
    • XSLTProcessor::getSecurityPrefs - Get security preferences
    • XSLTProcessor::hasExsltSupport - Determine if PHP has EXSLT support
    • XSLTProcessor::importStylesheet - Import stylesheet
    • XSLTProcessor::registerPHPFunctions - Enables the ability to use PHP functions as XSLT functions
    • XSLTProcessor::removeParameter - Remove parameter
    • XSLTProcessor::setParameter - Set value for a parameter
    • XSLTProcessor::setProfiling - Sets profiling output file
    • XSLTProcessor::setSecurityPrefs - Set security preferences
    • XSLTProcessor::transformToDoc - Transform to a document
    • XSLTProcessor::transformToUri - Transform to URI
    • XSLTProcessor::transformToXml - Transform to XML
    • XSLTProcessor::__construct - Creates a new XSLTProcessor object
  • y
    • Yac::add - Store into cache
    • Yac::delete - Remove items from cache
    • Yac::dump - Dump cache
    • Yac::flush - Flush the cache
    • Yac::get - Retrieve values from cache
    • Yac::info - Status of cache
    • Yac::set - Store into cache
    • Yac::__construct - Constructor
    • Yac::__get - Getter
    • Yac::__set - Setter
    • Yaconf::get - Retrieve a item
    • Yaconf::has - Determine if a item exists
    • Yaf_Action_Abstract::execute - 动作入口点
    • Yaf_Action_Abstract::getController - 检索控制器对象
    • Yaf_Action_Abstract::getControllerName - Get controller name
    • Yaf_Application::app - 检索 Application 实例
    • Yaf_Application::bootstrap - 调用 bootstrap
    • Yaf_Application::clearLastError - 清除最后的错误信息
    • Yaf_Application::environ - 检索环境名
    • Yaf_Application::execute - 运行回调
    • Yaf_Application::getAppDirectory - 获取应用的目录
    • Yaf_Application::getConfig - 获取 Yaf_Config_Abstract 的实例
    • Yaf_Application::getDispatcher - 获取 Yaf_Dispatcher 的实例
    • Yaf_Application::getLastErrorMsg - 获取最近产生的错误的错误信息
    • Yaf_Application::getLastErrorNo - 获取最后产生的错误的错误代码
    • Yaf_Application::getModules - 获取定义的模块名
    • Yaf_Application::run - 运行 Yaf_Application
    • Yaf_Application::setAppDirectory - 改变应用目录
    • Yaf_Application::__construct - Yaf_Application 的构造函数
    • Yaf_Application::__destruct - __destruct 函数
    • Yaf_Config_Abstract::get - Getter
    • Yaf_Config_Abstract::readonly - 寻找只读配置
    • Yaf_Config_Abstract::set - Setter
    • Yaf_Config_Abstract::toArray - 转换为数组
    • Yaf_Config_Ini::count - Yaf_Config.ini 中所有元素的数量
    • Yaf_Config_Ini::current - 检索当前值
    • Yaf_Config_Ini::key - 返回当前元素的键
    • Yaf_Config_Ini::next - 向前移动到下一个元素
    • Yaf_Config_Ini::offsetExists - 检查一个偏移位置是否存在
    • Yaf_Config_Ini::offsetGet - 获取一个偏移位置的值
    • Yaf_Config_Ini::offsetSet - 设置一个偏移位置的值
    • Yaf_Config_Ini::offsetUnset - 复位一个偏移位置的值
    • Yaf_Config_Ini::readonly - 检查配置是否只读
    • Yaf_Config_Ini::rewind - 检查当前位置是否有效
    • Yaf_Config_Ini::toArray - 配置作为数组返回
    • Yaf_Config_Ini::valid - 检查迭代器是否有效
    • Yaf_Config_Ini::__construct - Yaf_Config_Ini 构造方法
    • Yaf_Config_Ini::__get - 检索元素
    • Yaf_Config_Ini::__isset - 检查节点是否存在
    • Yaf_Config_Ini::__set - The __set purpose
    • Yaf_Config_Simple::count - 返回配置的节数量
    • Yaf_Config_Simple::current - 返回当前节点
    • Yaf_Config_Simple::key - 返回当前元素的键
    • Yaf_Config_Simple::next - 向前移动到下一个元素
    • Yaf_Config_Simple::offsetExists - 检查一个偏移位置是否存在
    • Yaf_Config_Simple::offsetGet - 获取一个偏移位置的值
    • Yaf_Config_Simple::offsetSet - 设置一个偏移位置的值
    • Yaf_Config_Simple::offsetUnset - 复位一个偏移位置的值
    • Yaf_Config_Simple::readonly - 检查配置是否只读
    • Yaf_Config_Simple::rewind - 检查当前位置是否有效
    • Yaf_Config_Simple::toArray - 返回 PHP 数组
    • Yaf_Config_Simple::valid - 检查迭代器是否有效
    • Yaf_Config_Simple::__construct - 构造函数
    • Yaf_Config_Simple::__get - 读取节点配置
    • Yaf_Config_Simple::__isset - 检查节点是否存在
    • Yaf_Config_Simple::__set - 设置节点配置
    • Yaf_Controller_Abstract::display - The display purpose
    • Yaf_Controller_Abstract::forward - 转发到另一个动作
    • Yaf_Controller_Abstract::getInvokeArg - The getInvokeArg purpose
    • Yaf_Controller_Abstract::getInvokeArgs - The getInvokeArgs purpose
    • Yaf_Controller_Abstract::getModuleName - 获取当前控制器所属的模块名
    • Yaf_Controller_Abstract::getName - Get self name
    • Yaf_Controller_Abstract::getRequest - 检索当前请求对象
    • Yaf_Controller_Abstract::getResponse - 检索当前响应对象
    • Yaf_Controller_Abstract::getView - 获取当前的视图引擎
    • Yaf_Controller_Abstract::getViewpath - The getViewpath purpose
    • Yaf_Controller_Abstract::init - 控制器初始化
    • Yaf_Controller_Abstract::initView - The initView purpose
    • Yaf_Controller_Abstract::redirect - 重定向到 URL
    • Yaf_Controller_Abstract::render - 渲染视图模板
    • Yaf_Controller_Abstract::setViewpath - The setViewpath purpose
    • Yaf_Controller_Abstract::__construct - Yaf_Controller_Abstract 构造方法
    • Yaf_Dispatcher::autoRender - 开启/关闭自动渲染
    • Yaf_Dispatcher::catchException - 开启/关闭自动异常捕获
    • Yaf_Dispatcher::disableView - 关闭视图渲染
    • Yaf_Dispatcher::dispatch - 分发请求
    • Yaf_Dispatcher::enableView - 开启视图渲染
    • Yaf_Dispatcher::flushInstantly - 打开/关闭即时刷新
    • Yaf_Dispatcher::getApplication - 检索应用程序
    • Yaf_Dispatcher::getDefaultAction - Retrive the default action name
    • Yaf_Dispatcher::getDefaultController - Retrive the default controller name
    • Yaf_Dispatcher::getDefaultModule - Retrive the default module name
    • Yaf_Dispatcher::getInstance - 获取当前的Yaf_Dispatcher实例
    • Yaf_Dispatcher::getRequest - 检索请求实例
    • Yaf_Dispatcher::getRouter - 检索路由实例
    • Yaf_Dispatcher::initView - 初始化视图并返回
    • Yaf_Dispatcher::registerPlugin - 注册插件
    • Yaf_Dispatcher::returnResponse - The returnResponse purpose
    • Yaf_Dispatcher::setDefaultAction - 设置默认动作名
    • Yaf_Dispatcher::setDefaultController - 设置默认控制器名
    • Yaf_Dispatcher::setDefaultModule - 设置默认模块名
    • Yaf_Dispatcher::setErrorHandler - 设置错误处理
    • Yaf_Dispatcher::setRequest - The setRequest purpose
    • Yaf_Dispatcher::setView - 设置自定义视图引擎
    • Yaf_Dispatcher::throwException - 开启/关闭异常抛出
    • Yaf_Dispatcher::__construct - Yaf_Dispatcher 构造方法
    • Yaf_Exception::getPrevious - The getPrevious purpose
    • Yaf_Exception::__construct - The __construct purpose
    • Yaf_Loader::autoload - The autoload purpose
    • Yaf_Loader::clearLocalNamespace - The clearLocalNamespace purpose
    • Yaf_Loader::getInstance - The getInstance purpose
    • Yaf_Loader::getLibraryPath - 获取库路径
    • Yaf_Loader::getLocalNamespace - Retrive all register namespaces info
    • Yaf_Loader::getNamespacePath - Retieve path of a registered namespace
    • Yaf_Loader::import - The import purpose
    • Yaf_Loader::isLocalName - The isLocalName purpose
    • Yaf_Loader::registerLocalNamespace - 注册本地类前缀
    • Yaf_Loader::registerNamespace - Register namespace with searching path
    • Yaf_Loader::setLibraryPath - 改变 library 路径
    • Yaf_Loader::__construct - The __construct purpose
    • Yaf_Plugin_Abstract::dispatchLoopShutdown - The dispatchLoopShutdown purpose
    • Yaf_Plugin_Abstract::dispatchLoopStartup - 在调度循环之前的 Hook
    • Yaf_Plugin_Abstract::postDispatch - The postDispatch purpose
    • Yaf_Plugin_Abstract::preDispatch - The preDispatch purpose
    • Yaf_Plugin_Abstract::preResponse - The preResponse purpose
    • Yaf_Plugin_Abstract::routerShutdown - The routerShutdown purpose
    • Yaf_Plugin_Abstract::routerStartup - RouterStartup hook
    • Yaf_Registry::del - 从注册表中移除条目
    • Yaf_Registry::get - 从注册表中检索条目
    • Yaf_Registry::has - 检测条目是否存在
    • Yaf_Registry::set - 向注册表添加条目
    • Yaf_Registry::__construct - Yaf_Registry 实现单例
    • Yaf_Request_Abstract::clearParams - Remove all params
    • Yaf_Request_Abstract::getActionName - The getActionName purpose
    • Yaf_Request_Abstract::getBaseUri - The getBaseUri purpose
    • Yaf_Request_Abstract::getControllerName - The getControllerName purpose
    • Yaf_Request_Abstract::getEnv - 检索 ENV 变量
    • Yaf_Request_Abstract::getException - The getException purpose
    • Yaf_Request_Abstract::getLanguage - 检索客户端的首选语言
    • Yaf_Request_Abstract::getMethod - 检索请求方法
    • Yaf_Request_Abstract::getModuleName - The getModuleName purpose
    • Yaf_Request_Abstract::getParam - 检索调用的参数
    • Yaf_Request_Abstract::getParams - 获取所有调用的参数
    • Yaf_Request_Abstract::getRequestUri - The getRequestUri purpose
    • Yaf_Request_Abstract::getServer - 检索 SERVER 变量
    • Yaf_Request_Abstract::isCli - 判断请求是否是 CLI 请求
    • Yaf_Request_Abstract::isDispatched - 判断请求是否已发送
    • Yaf_Request_Abstract::isGet - 判断请求是否是 GET 请求
    • Yaf_Request_Abstract::isHead - 判断请求是否是 HEAD 请求
    • Yaf_Request_Abstract::isOptions - 判断请求是否是 OPTIONS 请求
    • Yaf_Request_Abstract::isPost - 判断请求是否是 POST 请求
    • Yaf_Request_Abstract::isPut - 判断请求是否是 PUT 请求
    • Yaf_Request_Abstract::isRouted - 判断请求是否已路由
    • Yaf_Request_Abstract::isXmlHttpRequest - 判断请求是否是 AJAX 请求
    • Yaf_Request_Abstract::setActionName - 设置 action 名
    • Yaf_Request_Abstract::setBaseUri - 设置基础 URI
    • Yaf_Request_Abstract::setControllerName - 设置控制器名
    • Yaf_Request_Abstract::setDispatched - The setDispatched purpose
    • Yaf_Request_Abstract::setModuleName - 设置模块名
    • Yaf_Request_Abstract::setParam - 设置调用参数到请求
    • Yaf_Request_Abstract::setRequestUri - The setRequestUri purpose
    • Yaf_Request_Abstract::setRouted - The setRouted purpose
    • Yaf_Request_Http::get - 从客户端检索变量
    • Yaf_Request_Http::getCookie - 检索 Cookie 变量
    • Yaf_Request_Http::getFiles - The getFiles purpose
    • Yaf_Request_Http::getPost - 检索 POST 变量
    • Yaf_Request_Http::getQuery - 获取 query 参数
    • Yaf_Request_Http::getRaw - Retrieve Raw request body
    • Yaf_Request_Http::getRequest - The getRequest purpose
    • Yaf_Request_Http::isXmlHttpRequest - 是否为Ajax请求
    • Yaf_Request_Http::__construct - Yaf_Request_Http 构造方法
    • Yaf_Request_Simple::get - The get purpose
    • Yaf_Request_Simple::getCookie - The getCookie purpose
    • Yaf_Request_Simple::getFiles - The getFiles purpose
    • Yaf_Request_Simple::getPost - The getPost purpose
    • Yaf_Request_Simple::getQuery - The getQuery purpose
    • Yaf_Request_Simple::getRequest - The getRequest purpose
    • Yaf_Request_Simple::isXmlHttpRequest - 判断请求是否是 Ajax 请求
    • Yaf_Request_Simple::__construct - Yaf_Request_Simple 构造方法
    • Yaf_Response_Abstract::appendBody - 向响应 body 追加内容
    • Yaf_Response_Abstract::clearBody - 丢弃所有已存在的响应 body
    • Yaf_Response_Abstract::clearHeaders - 丢弃所有设置的 header
    • Yaf_Response_Abstract::getBody - 获取已存在的内容
    • Yaf_Response_Abstract::getHeader - The getHeader purpose
    • Yaf_Response_Abstract::prependBody - The prependBody purpose
    • Yaf_Response_Abstract::response - 发送响应
    • Yaf_Response_Abstract::setAllHeaders - The setAllHeaders purpose
    • Yaf_Response_Abstract::setBody - 设置内容到响应
    • Yaf_Response_Abstract::setHeader - 设置响应 header
    • Yaf_Response_Abstract::setRedirect - The setRedirect purpose
    • Yaf_Response_Abstract::__construct - The __construct purpose
    • Yaf_Response_Abstract::__destruct - The __destruct purpose
    • Yaf_Response_Abstract::__toString - 获取字符串形式的所有 body
    • Yaf_Router::addConfig - 向 Router 中添加配置文件中定义的路由
    • Yaf_Router::addRoute - 往 Router 中添加新的路由
    • Yaf_Router::getCurrentRoute - 取得当前有效的路由名
    • Yaf_Router::getRoute - 通过名称检索路由
    • Yaf_Router::getRoutes - 检索已注册的路由
    • Yaf_Router::route - The route purpose
    • Yaf_Router::__construct - Yaf_Router 构造方法
    • Yaf_Route_Interface::assemble - 将指定路由规则组合成一个 url
    • Yaf_Route_Interface::route - 路由请求
    • Yaf_Route_Map::assemble - 组合url
    • Yaf_Route_Map::route - The route purpose
    • Yaf_Route_Map::__construct - The __construct purpose
    • Yaf_Route_Regex::assemble - 组合 url
    • Yaf_Route_Regex::route - The route purpose
    • Yaf_Route_Regex::__construct - Yaf_Route_Regex 构造方法
    • Yaf_Route_Rewrite::assemble - 组合 url
    • Yaf_Route_Rewrite::route - The route purpose
    • Yaf_Route_Rewrite::__construct - Yaf_Route_Rewrite 构造方法
    • Yaf_Route_Simple::assemble - 组合url
    • Yaf_Route_Simple::route - 路由请求
    • Yaf_Route_Simple::__construct - Yaf_Route_Simple 构造方法
    • Yaf_Route_Static::assemble - 组合 url
    • Yaf_Route_Static::match - The match purpose
    • Yaf_Route_Static::route - 路由请求
    • Yaf_Route_Supervar::assemble - 组合 url
    • Yaf_Route_Supervar::route - The route purpose
    • Yaf_Route_Supervar::__construct - The __construct purpose
    • Yaf_Session::count - The count purpose
    • Yaf_Session::current - The current purpose
    • Yaf_Session::del - The del purpose
    • Yaf_Session::getInstance - The getInstance purpose
    • Yaf_Session::has - The has purpose
    • Yaf_Session::key - The key purpose
    • Yaf_Session::next - The next purpose
    • Yaf_Session::offsetExists - The offsetExists purpose
    • Yaf_Session::offsetGet - The offsetGet purpose
    • Yaf_Session::offsetSet - The offsetSet purpose
    • Yaf_Session::offsetUnset - The offsetUnset purpose
    • Yaf_Session::rewind - The rewind purpose
    • Yaf_Session::start - The start purpose
    • Yaf_Session::valid - The valid purpose
    • Yaf_Session::__construct - Yaf_Session 构造方法
    • Yaf_Session::__get - The __get purpose
    • Yaf_Session::__isset - The __isset purpose
    • Yaf_Session::__set - The __set purpose
    • Yaf_Session::__unset - The __unset purpose
    • Yaf_View_Interface::assign - 为视图引擎分配模板变量
    • Yaf_View_Interface::display - 渲染并输出模板
    • Yaf_View_Interface::getScriptPath - The getScriptPath purpose
    • Yaf_View_Interface::render - 渲染模板
    • Yaf_View_Interface::setScriptPath - The setScriptPath purpose
    • Yaf_View_Simple::assign - 为视图引擎分配一个模板变量
    • Yaf_View_Simple::assignRef - The assignRef purpose
    • Yaf_View_Simple::clear - 清除分配的值
    • Yaf_View_Simple::display - 渲染一个视图模板, 并直接输出给请求端
    • Yaf_View_Simple::eval - 渲染模板
    • Yaf_View_Simple::getScriptPath - 获取模板目录
    • Yaf_View_Simple::render - 渲染模板
    • Yaf_View_Simple::setScriptPath - 设置模板的目录
    • Yaf_View_Simple::__construct - Yaf_View_Simple 的构造方法
    • Yaf_View_Simple::__get - 获取视图引擎的一个模板变量值
    • Yaf_View_Simple::__isset - The __isset purpose
    • Yaf_View_Simple::__set - 为视图引擎分配一个模板变量
    • yaml_emit - Returns the YAML representation of a value
    • yaml_emit_file - Send the YAML representation of a value to a file
    • yaml_parse - Parse a YAML stream
    • yaml_parse_file - Parse a YAML stream from a file
    • yaml_parse_url - Parse a Yaml stream from a URL
    • Yar_Client::setOpt - 设置调用的配置
    • Yar_Client::__call - 调用远程服务
    • Yar_Client::__construct - 创建一个客户端实例
    • Yar_Client_Exception::getType - 检索异常的类型
    • Yar_Concurrent_Client::call - 注册一个并行的服务调用
    • Yar_Concurrent_Client::loop - 发送所有注册的并行调用
    • Yar_Concurrent_Client::reset - Clean all registered calls
    • Yar_Server::handle - 启动HTTP RPC Server
    • Yar_Server::__construct - 注册 HTTP RPC Server
    • Yar_Server_Exception::getType - 检索异常的原始类型
    • yaz_addinfo - Returns additional error information
    • yaz_ccl_conf - Configure CCL parser
    • yaz_ccl_parse - Invoke CCL Parser
    • yaz_close - Close YAZ connection
    • yaz_connect - Prepares for a connection to a Z39.50 server
    • yaz_database - Specifies the databases within a session
    • yaz_element - Specifies Element-Set Name for retrieval
    • yaz_errno - Returns error number
    • yaz_error - Returns error description
    • yaz_es - Prepares for an Extended Service Request
    • yaz_es_result - Inspects Extended Services Result
    • yaz_get_option - Returns value of option for connection
    • yaz_hits - Returns number of hits for last search
    • yaz_itemorder - Prepares for Z39.50 Item Order with an ILL-Request package
    • yaz_present - Prepares for retrieval (Z39.50 present)
    • yaz_range - Specifies a range of records to retrieve
    • yaz_record - Returns a record
    • yaz_scan - Prepares for a scan
    • yaz_scan_result - Returns Scan Response result
    • yaz_schema - Specifies schema for retrieval
    • yaz_search - Prepares for a search
    • yaz_set_option - Sets one or more options for connection
    • yaz_sort - Sets sorting criteria
    • yaz_syntax - Specifies the preferred record syntax for retrieval
    • yaz_wait - Wait for Z39.50 requests to complete
  • z
    • zend_thread_id - 返回当前线程的唯一识别符
    • zend_version - 获取当前 Zend 引擎的版本
    • ZipArchive::addEmptyDir - Add a new directory
    • ZipArchive::addFile - Adds a file to a ZIP archive from the given path
    • ZipArchive::addFromString - Add a file to a ZIP archive using its contents
    • ZipArchive::addGlob - Add files from a directory by glob pattern
    • ZipArchive::addPattern - Add files from a directory by PCRE pattern
    • ZipArchive::clearError - 清除状态错误消息、系统和/或 zip 消息
    • ZipArchive::close - Close the active archive (opened or newly created)
    • ZipArchive::count - Counts the number of files in the archive
    • ZipArchive::deleteIndex - Delete an entry in the archive using its index
    • ZipArchive::deleteName - Delete an entry in the archive using its name
    • ZipArchive::extractTo - 解压缩文件
    • ZipArchive::getArchiveComment - Returns the Zip archive comment
    • ZipArchive::getArchiveFlag - 返回 Zip 归档全局 flag 的值
    • ZipArchive::getCommentIndex - Returns the comment of an entry using the entry index
    • ZipArchive::getCommentName - Returns the comment of an entry using the entry name
    • ZipArchive::getExternalAttributesIndex - Retrieve the external attributes of an entry defined by its index
    • ZipArchive::getExternalAttributesName - Retrieve the external attributes of an entry defined by its name
    • ZipArchive::getFromIndex - Returns the entry contents using its index
    • ZipArchive::getFromName - Returns the entry contents using its name
    • ZipArchive::getNameIndex - Returns the name of an entry using its index
    • ZipArchive::getStatusString - Returns the status error message, system and/or zip messages
    • ZipArchive::getStream - Get a file handler to the entry defined by its name (read only)
    • ZipArchive::getStreamIndex - Get a file handler to the entry defined by its index (read only)
    • ZipArchive::getStreamName - Get a file handler to the entry defined by its name (read only)
    • ZipArchive::isCompressionMethodSupported - Check if a compression method is supported by libzip
    • ZipArchive::isEncryptionMethodSupported - Check if a encryption method is supported by libzip
    • ZipArchive::locateName - Returns the index of the entry in the archive
    • ZipArchive::open - Open a ZIP file archive
    • ZipArchive::registerCancelCallback - Register a callback to allow cancellation during archive close.
    • ZipArchive::registerProgressCallback - Register a callback to provide updates during archive close.
    • ZipArchive::renameIndex - Renames an entry defined by its index
    • ZipArchive::renameName - Renames an entry defined by its name
    • ZipArchive::replaceFile - Replace file in ZIP archive with a given path
    • ZipArchive::setArchiveComment - Set the comment of a ZIP archive
    • ZipArchive::setArchiveFlag - 设置 ZIP 归档的全局 flag
    • ZipArchive::setCommentIndex - Set the comment of an entry defined by its index
    • ZipArchive::setCommentName - Set the comment of an entry defined by its name
    • ZipArchive::setCompressionIndex - Set the compression method of an entry defined by its index
    • ZipArchive::setCompressionName - Set the compression method of an entry defined by its name
    • ZipArchive::setEncryptionIndex - Set the encryption method of an entry defined by its index
    • ZipArchive::setEncryptionName - Set the encryption method of an entry defined by its name
    • ZipArchive::setExternalAttributesIndex - Set the external attributes of an entry defined by its index
    • ZipArchive::setExternalAttributesName - Set the external attributes of an entry defined by its name
    • ZipArchive::setMtimeIndex - Set the modification time of an entry defined by its index
    • ZipArchive::setMtimeName - Set the modification time of an entry defined by its name
    • ZipArchive::setPassword - Set the password for the active archive
    • ZipArchive::statIndex - Get the details of an entry defined by its index
    • ZipArchive::statName - Get the details of an entry defined by its name
    • ZipArchive::unchangeAll - Undo all changes done in the archive
    • ZipArchive::unchangeArchive - Revert all global changes done in the archive
    • ZipArchive::unchangeIndex - Revert all changes done to an entry at the given index
    • ZipArchive::unchangeName - Revert all changes done to an entry with the given name
    • zip_close - 关闭一个ZIP档案文件
    • zip_entry_close - 关闭目录项
    • zip_entry_compressedsize - 检索目录项压缩过后的大小
    • zip_entry_compressionmethod - 检索目录实体的压缩方法
    • zip_entry_filesize - 检索目录实体的实际大小
    • zip_entry_name - 检索目录项的名称
    • zip_entry_open - 打开用于读取的目录实体
    • zip_entry_read - 读取一个打开了的压缩目录实体
    • zip_open - 打开 ZIP 文件归档
    • zip_read - 读取 ZIP 文件归档中下一项
    • zlib_decode - Uncompress any raw/gzip/zlib encoded data
    • zlib_encode - Compress data with the specified encoding
    • zlib_get_coding_type - Returns the coding type used for output compression
    • ZMQ::__construct - ZMQ constructor
    • ZMQContext::getOpt - Get context option
    • ZMQContext::getSocket - Create a new socket
    • ZMQContext::isPersistent - Whether the context is persistent
    • ZMQContext::setOpt - Set a socket option
    • ZMQContext::__construct - Construct a new ZMQContext object
    • ZMQDevice::getIdleTimeout - Get the idle timeout
    • ZMQDevice::getTimerTimeout - Get the timer timeout
    • ZMQDevice::run - Run the new device
    • ZMQDevice::setIdleCallback - Set the idle callback function
    • ZMQDevice::setIdleTimeout - Set the idle timeout
    • ZMQDevice::setTimerCallback - Set the timer callback function
    • ZMQDevice::setTimerTimeout - Set the timer timeout
    • ZMQDevice::__construct - Construct a new device
    • ZMQPoll::add - Add item to the poll set
    • ZMQPoll::clear - Clear the poll set
    • ZMQPoll::count - Count items in the poll set
    • ZMQPoll::getLastErrors - Get poll errors
    • ZMQPoll::poll - Poll the items
    • ZMQPoll::remove - Remove item from poll set
    • ZMQSocket::bind - Bind the socket
    • ZMQSocket::connect - Connect the socket
    • ZMQSocket::disconnect - Disconnect a socket
    • ZMQSocket::getEndpoints - Get list of endpoints
    • ZMQSocket::getPersistentId - Get the persistent id
    • ZMQSocket::getSocketType - Get the socket type
    • ZMQSocket::getSockOpt - Get socket option
    • ZMQSocket::isPersistent - Whether the socket is persistent
    • ZMQSocket::recv - Receives a message
    • ZMQSocket::recvMulti - Receives a multipart message
    • ZMQSocket::send - Sends a message
    • ZMQSocket::sendmulti - Sends a multipart message
    • ZMQSocket::setSockOpt - Set a socket option
    • ZMQSocket::unbind - Unbind the socket
    • ZMQSocket::__construct - Construct a new ZMQSocket
    • Zookeeper::addAuth - Specify application credentials
    • Zookeeper::close - Close the zookeeper handle and free up any resources
    • Zookeeper::connect - Create a handle to used communicate with zookeeper
    • Zookeeper::create - Create a node synchronously
    • Zookeeper::delete - Delete a node in zookeeper synchronously
    • Zookeeper::exists - Checks the existence of a node in zookeeper synchronously
    • Zookeeper::get - Gets the data associated with a node synchronously
    • Zookeeper::getAcl - Gets the acl associated with a node synchronously
    • Zookeeper::getChildren - Lists the children of a node synchronously
    • Zookeeper::getClientId - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getConfig - Get instance of ZookeeperConfig
    • Zookeeper::getRecvTimeout - Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
    • Zookeeper::getState - Get the state of the zookeeper connection
    • Zookeeper::isRecoverable - Checks if the current zookeeper connection state can be recovered
    • Zookeeper::set - Sets the data associated with a node
    • Zookeeper::setAcl - Sets the acl associated with a node synchronously
    • Zookeeper::setDebugLevel - Sets the debugging level for the library
    • Zookeeper::setDeterministicConnOrder - Enable/disable quorum endpoint order randomization
    • Zookeeper::setLogStream - Sets the stream to be used by the library for logging
    • Zookeeper::setWatcher - Set a watcher function
    • Zookeeper::__construct - Create a handle to used communicate with zookeeper
    • ZookeeperConfig::add - Add servers to the ensemble
    • ZookeeperConfig::get - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
    • ZookeeperConfig::remove - Remove servers from the ensemble
    • ZookeeperConfig::set - Change ZK cluster ensemble membership and roles of ensemble peers
    • zookeeper_dispatch - Calls callbacks for pending operations
  • _
    • _ - 别名 gettext
    • __autoload - 尝试加载未定义的类
    • __halt_compiler - 中断编译器的执行

User Contributed Notes

There are no user contributed notes for this page.


示例列表

手册中所有示例的列表

  • Example#0 - 一个介绍性的范例
  • Example#1 - 第一个 PHP 脚本：hello.php
  • Example#2 - 从 PHP 获取系统信息
  • Example#3 - 打印一个变量（数组元素）
  • Example#4 - 流程控制与函数的使用
  • Example#5 - 混和 HTML 和 PHP 模式
  • Example#6 - 一个简单的 HTML 表单
  • Example#7 - 打印来自表单的数据
  • Example#8 - 部分 lighttpd.conf
  • Example#9 - 产生 FastCGI 应答器
  • Example#10 - 连接远程 php-fastcgi 实例
  • Example#11 - 在 OpenBSD 系统下的软件包的安装示例
  • Example#12 - Debian 下将 PHP 安装入 Apache 2 的例子
  • Example#13 - 安装完 PHP 后停止并启动 Apache
  • Example#14 - 取得 PHP 附加软件包的列表
  • Example#15 - 安装 PHP 的 MySQL 和 cURL 支持
  • Example#16 - 推荐的 OpCache 配置
  • Example#17 - 推荐的 WinCache 配置
  • Example#18 - 命令行下配置 IIS 和 PHP
  • Example#19 - 注册表变化
  • Example#20 - PHP 在 Apache 2.x 中作为 handler
  • Example#21 - Apache 2.x 下 CGI 方式的 PHP
  • Example#22 - 配置 Apache 以 FastCGI 方式运行 PHP
  • Example#23 - 给运行池传递环境变量和设置 PHP 的配置值
  • Example#24 - 在 nginx.conf 中设定 PHP
  • Example#25 - 调用 phpinfo
  • Example#26 - php.ini 中的环境变量
  • Example#27 - php.ini 例子
  • Example#28 - Apache 配置例子
  • Example#29 - PHP 开始和结束标记
  • Example#30 - 使用条件的高级分离术
  • Example#31 - 包含末尾换行符的结束标记的例子
  • Example#32 - 整数文字表达
  • Example#33 - 32 位系统下的整数溢出
  • Example#34 - 64 位系统下的整数溢出
  • Example#35 - PHP 7.3.0 之后的基础 Heredoc 示例
  • Example#36 - 结束标识符的缩进不能超过正文的任何一行
  • Example#37 - 内容（空白）和结束标识符的不同缩进
  • Example#38 - 在结束标识符后继续表达式
  • Example#39 - 字符串内容中的结束标识符往往会导致 ParseError
  • Example#40 - PHP 7.3.0 之前的错误示例
  • Example#41 - 在 PHP 7.3.0 之前有效示例
  • Example#42 - Heredoc 结构的字符串示例
  • Example#43 - Heredoc 结构在参数中的示例
  • Example#44 - 使用 Heredoc 结构来初始化静态值
  • Example#45 - 在 heredoc 结构中使用双引号
  • Example#46 - Nowdoc 结构字符串示例
  • Example#47 - 含变量引用的 Nowdoc 字符串示例
  • Example#48 - 静态数据的示例
  • Example#49 - 简单语法示例
  • Example#50 - 负数索引
  • Example#51 - 一些字符串示例
  • Example#52 - 字符串无效下标的例子
  • Example#53 - 一个简单数组
  • Example#54 - 类型转换与覆盖的示例
  • Example#55 - 混合 int 和 string 键名
  • Example#56 - 没有键名的索引数组
  • Example#57 - 仅对部分单元指定键名
  • Example#58 - 复杂类型转换和覆盖的例子
  • Example#59 - 访问数组单元
  • Example#60 - 数组解引用
  • Example#61 - 简单的数组解包
  • Example#62 - 重复 key 的数组解包
  • Example#63 - 使用 array()
  • Example#64 - 集合
  • Example#65 - 在循环中改变单元
  • Example#66 - 下标从 1 开始的数组
  • Example#67 - 填充数组
  • Example#68 - 数组排序
  • Example#69 - 递归和多维数组
  • Example#70 - 回调函数示例
  • Example#71 - 使用 Closure 的示例
  • Example#72 - 可迭代生成器返回类型的示例
  • Example#73 - 通过引用传递的参数类型
  • Example#74 - 使参数可以为 null 的旧方法
  • Example#75 - 基础类类型声明
  • Example#76 - 基础接口类型声明
  • Example#77 - 基础返回类型声明
  • Example#78 - 返回对象
  • Example#79 - 可为 null 参数类型声明
  • Example#80 - 可为 null 返回类型声明
  • Example#81 - 类属性类型化声明
  • Example#82 - 参数值的严格类型
  • Example#83 - 参数值的类型强制转化
  • Example#84 - 返回值的严格类型
  • Example#85 - 类型转换为 union 类型中的一个的示例
  • Example#86 - 未初始化变量的默认值
  • Example#87 - 使用 global
  • Example#88 - 使用 $GLOBALS 替代 global
  • Example#89 - 演示超全局变量和作用域的例子
  • Example#90 - 演示需要静态变量的例子
  • Example#91 - 使用静态变量的例子
  • Example#92 - 静态变量与递归函数
  • Example#93 - 声明静态变量
  • Example#94 - 在继承方法中使用静态变量
  • Example#95 - 可变属性示例
  • Example#96 - 一个简单的 HTML 表单
  • Example#97 - 从一个简单的 POST HTML 表单访问数据
  • Example#98 - 更复杂的表单变量
  • Example#99 - 一个 setcookie 的示例
  • Example#100 - 合法与非法的常量名
  • Example#101 - 定义常量
  • Example#102 - 使用关键字 const 定义常量
  • Example#103 - 结合方向
  • Example#104 - 未定义执行顺序
  • Example#105 - +、- 、. 具有相同的优先级
  • Example#106 - PERL 字符串递减功能
  • Example#107 - 数字字母字符串转换为浮点数
  • Example#108 - 引用赋值
  • Example#109 - 整数的 AND，OR 和 XOR 位运算符
  • Example#110 - 字符串的 XOR 运算符
  • Example#111 - 整数的位移
  • Example#112 - Boolean/null comparison
  • Example#113 - 标准数组比较代码
  • Example#114 - 赋默认值
  • Example#115 - 不清晰的三元运算符行为
  • Example#116 - Short-ternary chaining
  • Example#117 - 设置默认值
  • Example#118 - 嵌套 NULL 合并运算符
  • Example#119 - 逻辑运算符示例
  • Example#120 - 比较数组
  • Example#121 - 对类使用 instanceof
  • Example#122 - 对继承类使用 instanceof
  • Example#123 - 使用 instanceof 检查对象不是某个类的实例
  • Example#124 - 对接口使用 instanceof
  • Example#125 - 对其它变量使用 instanceof
  • Example#126 - 用 instanceof 检测其它变量
  • Example#127 - 使用 instanceof 测试常量
  • Example#128 - 将 instanceof 与任意表达式一起使用
  • Example#129 - switch 结构
  • Example#130 - match 的基础用法
  • Example#131 - 使用 match 和比较运算符的示例
  • Example#132 - match 表达式结构
  • Example#133 - match 表达式存在未处理的示例
  • Example#134 - 针对整数范围，使用宽泛的表达式匹配分支
  • Example#135 - 针对字符串内容，使用宽泛的表达式匹配分支
  • Example#136 - Tick 的用法示例
  • Example#137 - 对脚本指定编码方式
  • Example#138 - 基本的 include 例子
  • Example#139 - 函数中的包含
  • Example#140 - 通过 HTTP 进行的 include
  • Example#141 - 比较 include 的返回值
  • Example#142 - include 和 return 语句
  • Example#143 - 使用输出缓冲来将 PHP 文件包含入一个字符串
  • Example#144 - goto 示例
  • Example#145 - goto 跳出循环示例
  • Example#146 - 以下写法无效
  • Example#147 - 展示函数用途的伪代码
  • Example#148 - 有条件的函数
  • Example#149 - 函数中的函数
  • Example#150 - 递归函数
  • Example#151 - 向函数传递数组
  • Example#152 - 函数参数使用尾部逗号
  • Example#153 - 用引用传递函数参数
  • Example#154 - 在函数中使用默认参数
  • Example#155 - 使用非标量类型作为默认参数
  • Example#156 - 使用对象作为默认值（自 PHP 8.1.0 起）
  • Example#157 - 函数默认参数的不正确用法
  • Example#158 - 函数默认参数正确的用法
  • Example#159 - 函数默认参数正确的用法
  • Example#160 - 强制参数后声明可选参数
  • Example#161 - 使用 ... 来访问变量参数
  • Example#162 - 使用 ... 来传递参数
  • Example#163 - 输入提示的变量参数
  • Example#164 - 命名参数的语法
  • Example#165 - 通过位置传参与命名参数的对比
  • Example#166 - 参数顺序不同的示例（同上例）
  • Example#167 - 命名参数与位置参数结合使用
  • Example#168 - 传递多个相同参数将会导致抛出 Error
  • Example#169 - 解包后使用命名参数
  • Example#170 - return 的使用
  • Example#171 - 返回一个数组以得到多个返回值
  • Example#172 - 从函数返回一个引用
  • Example#173 - 可变函数示例
  • Example#174 - 可变方法范例
  • Example#175 - Variable 方法和静态属性示例
  • Example#176 - 复杂调用
  • Example#177 - 匿名函数示例
  • Example#178 - 匿名函数变量赋值示例
  • Example#179 - 从父作用域继承变量
  • Example#180 - Closures 和作用域
  • Example#181 - 自动绑定 $this
  • Example#182 - 试图在静态匿名函数中使用 $this
  • Example#183 - 试图将对象绑定到静态匿名函数
  • Example#184 - 箭头函数自动捕捉变量的值
  • Example#185 - 箭头函数自动捕捉变量的值，即使在嵌套的情况下
  • Example#186 - 合法的箭头函数例子
  • Example#187 - 来自外部范围的值不能在箭头函数内修改
  • Example#188 - 简单的 first class 可调用语法
  • Example#189 - Scope comparison of CallableExpr(...) and traditional callable
  • Example#190 - 简单的类定义
  • Example#191 - 使用 $this 伪变量的示例
  • Example#192 - 创建实例
  • Example#193 - 使用任意表达式创建实例
  • Example#194 - 对象赋值
  • Example#195 - 创建新对象
  • Example#196 - 访问新创建对象的成员
  • Example#197 - 访问类属性 vs. 调用类方法
  • Example#198 - 类属性被赋值为匿名函数时的调用示例
  • Example#199 - 简单的类继承
  • Example#200 - 兼容子类方法
  • Example#201 - 子类方法移除参数后，导致 Fatal 错误
  • Example#202 - 子类方法把可选参数改成强制参数，导致 Fatal 错误
  • Example#203 - 在子类中重命一个命名参数，导致 Error
  • Example#204 - 类名的解析
  • Example#205 - 解析不存在的类名
  • Example#206 - 类名解析
  • Example#207 - Nullsafe 操作符
  • Example#208 - 属性声明
  • Example#209 - 类型声明的示例
  • Example#210 - 访问属性
  • Example#211 - 只读属性示例
  • Example#212 - 初始化只读属性异常
  • Example#213 - 定义和使用一个类常量
  • Example#214 - 命名空间的 ::class 示例
  • Example#215 - 类常量表达式示例
  • Example#216 - 自 PHP 7.1.0 起，类常量支持可见性修饰符
  • Example#217 - 自动加载示例
  • Example#218 - 另一个例子
  • Example#219 - 继承中的构造函数
  • Example#220 - 使用构造器参数
  • Example#221 - 使用构造器属性提升
  • Example#222 - 初始化中使用 new
  • Example#223 - 使用 static 创造方法
  • Example#224 - 析构函数示例
  • Example#225 - 属性声明
  • Example#226 - 方法声明
  • Example#227 - PHP 7.1.0 中的常量声明
  • Example#228 - 访问同一个对象类型的 private 成员
  • Example#229 - 继承示例
  • Example#230 - The overriding method does not declare any return type
  • Example#231 - The overriding method declares a wrong return type
  • Example#232 - The overriding method declares a wrong return type without a deprecation notice
  • Example#233 - 在类的外部使用 :: 操作符
  • Example#234 - 在类定义内部使用 ::
  • Example#235 - 调用父类的方法
  • Example#236 - 静态方法示例
  • Example#237 - 静态属性示例
  • Example#238 - 抽象类示例
  • Example#239 - 抽象类示例
  • Example#240 - 接口示例
  • Example#241 - 可扩充的接口
  • Example#242 - 多接口的差异兼容性
  • Example#243 - 扩展多个接口
  • Example#244 - 使用接口常量
  • Example#245 - 抽象（abstract）类的接口使用
  • Example#246 - 同时使用扩展和实现
  • Example#247 - Trait 示例
  • Example#248 - 优先顺序示例
  • Example#249 - 另一个优先级顺序的例子
  • Example#250 - 多个 trait 的用法
  • Example#251 - 冲突的解决
  • Example#252 - 修改方法的访问控制
  • Example#253 - 从 trait 来组成 trait
  • Example#254 - 表示通过抽象方法来进行强制要求
  • Example#255 - 静态变量
  • Example#256 - 静态方法
  • Example#257 - 静态属性
  • Example#258 - 定义属性
  • Example#259 - 解决冲突
  • Example#260 - 定义常量
  • Example#261 - 解决冲突
  • Example#262 - 使用 __get()，__set()，__isset() 和 __unset() 进行属性重载
  • Example#263 - 使用 __call() 和 __callStatic() 对方法重载
  • Example#264 - 简单的对象遍历
  • Example#265 - Sleep 和 wakeup
  • Example#266 - 序列化和反序列化
  • Example#267 - 简单示例
  • Example#268 - 使用 __invoke()
  • Example#269 - 使用 __invoke()
  • Example#270 - 使用 __set_state()>
  • Example#271 - 使用 __debugInfo()
  • Example#272 - Final 方法示例
  • Example#273 - Final 类示例
  • Example#274 - PHP 8.1.0 起可用的 final 常量示例
  • Example#275 - 复制一个对象
  • Example#276 - 访问新克隆的对象的成员
  • Example#277 - 对象比较的例子
  • Example#278 - self:: 用法
  • Example#279 - static:: 简单用法
  • Example#280 - 非静态环境下使用 static::
  • Example#281 - 转发和非转发调用
  • Example#282 - 引用和对象
  • Example#283 - 命名空间语法示例
  • Example#284 - 声明单个命名空间
  • Example#285 - 声明单个命名空间
  • Example#286 - 声明分层次的单个命名空间
  • Example#287 - 定义多个命名空间，简单组合语法
  • Example#288 - 定义多个命名空间，大括号语法
  • Example#289 - 定义多个命名空间和不包含在命名空间中的代码
  • Example#290 - 定义多个命名空间和不包含在命名空间中的代码
  • Example#291 - 在命名空间内部访问全局类、函数和常量
  • Example#292 - 动态访问元素
  • Example#293 - 动态访问命名空间的元素
  • Example#294 - __NAMESPACE__ 示例, 在命名空间中的代码
  • Example#295 - __NAMESPACE__ 示例，全局代码
  • Example#296 - 使用 __NAMESPACE__ 动态创建名称
  • Example#297 - namespace 操作符，命名空间中的代码
  • Example#298 - namespace 操作符, 全局代码
  • Example#299 - 使用 use 操作符导入/使用别名
  • Example#300 - 通过 use 操作符导入/使用别名，一行中包含多个 use 语句
  • Example#301 - 导入和动态名称
  • Example#302 - 导入和完全限定名称
  • Example#303 - 不合规的导入规则
  • Example#304 - 使用全局空间说明
  • Example#305 - 在命名空间中访问全局类
  • Example#306 - 命名空间中后备的全局函数/常量
  • Example#307 - 名称解析示例
  • Example#308 - 在命名空间之外访问全局类
  • Example#309 - 在命名空间之外访问全局类
  • Example#310 - 在命名空间内访问内置的类
  • Example#311 - 在命名空间中访问内置的类、函数、常量
  • Example#312 - 完全限定名称
  • Example#313 - 限定名称
  • Example#314 - 非限定类名
  • Example#315 - 非限定函数和常量名
  • Example#316 - 在双引号字符串中使用命名空间的危险性
  • Example#317 - 未定义的常量
  • Example#318 - 未定义的常量
  • Example#319 - 值受限的基本用法
  • Example#320 - 值排他的高级用法
  • Example#321 - 将错误报告转成异常
  • Example#322 - 抛出一个异常
  • Example#323 - 带 finally 块的异常处理
  • Example#324 - finally 和 return 相互之间的影响
  • Example#325 - 异常嵌套
  • Example#326 - 多个异常的捕获处理
  • Example#327 - 忽略捕获的变量
  • Example#328 - 以表达式的形式抛出
  • Example#329 - 内置的异常处理类
  • Example#330 - 扩展 PHP 内置的异常处理类
  • Example#331 - 基础用法
  • Example#332 - 将 range 实现为生成器
  • Example#333 - 一个简单的生成值的例子
  • Example#334 - 生成一个键值对
  • Example#335 - 生成nulls
  • Example#336 - 使用引用来生成值
  • Example#337 - 使用 iterator_to_array 的 yield from
  • Example#338 - yield from 的基本用法
  • Example#339 - yield from 并返回多个值
  • Example#340 - 用注解实现接口的可选方法
  • Example#341 - 注解语法
  • Example#342 - 通过反射 API 读取注解
  • Example#343 - 使用反射 API 读取指定的注解
  • Example#344 - 简单的 Attribute 类
  • Example#345 - 目标限定使用的注解
  • Example#346 - 使用 IS_REPEATABLE 允许注解在声明中出现多次
  • Example#347 - 对未定义的变量使用引用
  • Example#348 - 在函数内引用全局变量
  • Example#349 - 引用与 foreach 语句
  • Example#350 - $GLOBALS 范例
  • Example#351 - 写入整个 $GLOBALS 将会导致错误。
  • Example#352 - $_SERVER 范例
  • Example#353 - $_GET 范例
  • Example#354 - $_POST 范例
  • Example#355 - $_ENV 范例
  • Example#356 - $_COOKIE 范例
  • Example#357 - $php_errormsg 范例
  • Example#358 - $http_response_header 范例
  • Example#359 - $argc 范例
  • Example#360 - $argv 范例
  • Example#361 - Exception::getMessage示例
  • Example#362 - Exception::getPrevious示例
  • Example#363 - Exception::getCode示例
  • Example#364 - Exception::getFile示例
  • Example#365 - Exception::getLine示例
  • Example#366 - Exception::getTrace示例
  • Example#367 - Exception::getTraceAsString示例
  • Example#368 - Exception::__toString示例
  • Example#369 - 使用 set_error_handler 函数将错误信息托管至 ErrorException。
  • Example#370 - ErrorException::getSeverity 例子
  • Example#371 - Error::getMessage 例子
  • Example#372 - Error::getPrevious 例子
  • Example#373 - Error::getCode 例子
  • Example#374 - Error::getFile 例子
  • Example#375 - Error::getLine 例子
  • Example#376 - Error::getTrace 例子
  • Example#377 - Error::getTraceAsString 例子
  • Example#378 - Error::__toString 例子
  • Example#379 - 基本用法
  • Example#380 - 基本用法
  • Example#381 - 基础用法
  • Example#382 - ArrayAccess::offsetExists 示例
  • Example#383 - 基础用法
  • Example#384 - Closure::bind 示例
  • Example#385 - Closure::bindTo 实例
  • Example#386 - Closure::call 示例
  • Example#387 - 通过类型转换为对象创建
  • Example#388 - 通过 json_decode 创建
  • Example#389 - 声明动态属性
  • Example#390 - Generator::getReturn 示例
  • Example#391 - Generator::key example
  • Example#392 - 用 Generator::send 向生成器函数中传值
  • Example#393 - 抛出异常到生成器
  • Example#394 - 弱引用的基础用法
  • Example#395 - Weakmap 用法示例
  • Example#396 - 基础 Stringable 用法
  • Example#397 - 基本用法
  • Example#398 - 基本用法
  • Example#399 - 基本用法
  • Example#400 - Passing a SensitiveParameterValue object to var_dump
  • Example#401 - SensitiveParameterValue::getValue example
  • Example#402 - 基础的 bindto 用法示例
  • Example#403 - 获取一个页面并发送 POST 数据
  • Example#404 - 忽略重定向并获取 header 和内容
  • Example#405 - 基础 password 用法示例
  • Example#406 - 检测重定向后最终的 URL
  • Example#407 - php://temp/maxmemory
  • Example#408 - php://filter/resource=<待过滤的数据流>
  • Example#409 - php://filter/read=<读链需要应用的过滤器列表>
  • Example#410 - php://filter/write=<写链需要应用的过滤器列表>
  • Example#411 - php://memory 和 php://temp 是一次性的
  • Example#412 - 打印 data:// 的内容
  • Example#413 - 获取媒体类型
  • Example#414 - 基本用法
  • Example#415 - 从一个活跃的连接中打开流
  • Example#416 - $session 变量必须保持可用！
  • Example#417 - 遍历 RAR 归档
  • Example#418 - 打开加密文件（报头加密）
  • Example#419 - 不对变量检查会导致....
  • Example#420 - ... 文件系统攻击
  • Example#421 - 更安全的文件名检查
  • Example#422 - 更安全的文件名检查
  • Example#423 - 会被空字符攻击的代码
  • Example#424 - 验证输入的正确性
  • Example#425 - Hashing password field
  • Example#426 - 将结果集切割成页面……并创建超级用户（PostgreSQL）。
  • Example#427 - 列出文章……以及一些密码（任何数据库服务器）
  • Example#428 - 从重置密码……到获得更多权限（任何数据库服务器）
  • Example#429 - 攻击数据库主机操作系统（MSSQL Server）
  • Example#430 - 通过使用 PDO 预处理语句来避免 SQL 注入
  • Example#431 - 用自定义的 HTML 页面攻击变量
  • Example#432 - 利用变量打开调式功能
  • Example#433 - 用 E_ALL 来查找危险的变量
  • Example#434 - 危险的变量用法
  • Example#435 - 把 PHP 隐藏为另一种语言
  • Example#436 - 使用未知的扩展名作为 PHP 的扩展名
  • Example#437 - 使用 HTML 作为 PHP 扩展名
  • Example#438 - Basic HTTP 认证范例
  • Example#439 - Digest HTTP 认证范例
  • Example#440 - 强迫重新输入用户名和密码的 HTTP 认证的范例
  • Example#441 - 文件上传表单
  • Example#442 - 验证上传的文件
  • Example#443 - 上传一组文件
  • Example#444 - 上传多个文件
  • Example#445 - 保存 HTTP PUT 文件
  • Example#446 - 获取远程页面的标题
  • Example#447 - 将数据保存到远程服务器
  • Example#448 - 使用 -d 设置 INI 配置的示例
  • Example#449 - 打印内置（且已加载的） PHP 和 Zend 模块
  • Example#450 - 当使用双引号时会造成语法错误
  • Example#451 - 使用单引号防止 shell 变量替换
  • Example#452 - 使用 -B 、 -R 、 -E 选项统计项目总行数。
  • Example#453 - 使用 -v 获取 SAPI 的名称以及 PHP 和 Zend 的版本号
  • Example#454 - --ini 示例
  • Example#455 - 基础 --rf 用法
  • Example#456 - --rc 示例
  • Example#457 - --re 示例
  • Example#458 - --ri 示例
  • Example#459 - PHP 脚本作为 shell 脚本执行
  • Example#460 - 试图以命令行方式运行的 PHP 脚本（script.php）
  • Example#461 - 运行 PHP 命令行脚本的批处理文件（script.bat）
  • Example#462 - 使用交互式 shell 执行代码
  • Example#463 - Tab 键补全
  • Example#464 - 在交互式 shell 中设置 php.ini 配置
  • Example#465 - 启动 Web 服务器
  • Example#466 - 启动时指定文档根目录
  • Example#467 - 使用 router 脚本
  • Example#468 - 检查 CLI Web 服务器的使用
  • Example#469 - 处理不支持的文件类型
  • Example#470 - 从远程计算机访问 CLI Web 服务器
  • Example#471 - 创建新 zval 容器
  • Example#472 - 显示 zval 信息
  • Example#473 - 增加 zval 的 refcount
  • Example#474 - 减少 zval refcount
  • Example#475 - 创建 array zval
  • Example#476 - 添加已存在的元素到数组
  • Example#477 - 从数组中删除元素
  • Example#478 - 将数组本身作为其自身的一个元素添加进去
  • Example#479 - 清除 $a
  • Example#480 - Memory usage example
  • Example#481 - GC性能影响
  • Example#482 - 执行以上脚本
  • Example#483 - 重新编译PHP以启用GC benchmarking
  • Example#484 - GC 统计数据
  • Example#485 - all_probes.d for tracing all PHP Static Probes with DTrace
  • Example#486 - all_probes.stp for tracing all PHP Static Probes with SystemTap
  • Example#487 - apcu_add 示例
  • Example#488 - apcu_cache_info 示例
  • Example#489 - apcu_cas example
  • Example#490 - apcu_dec example
  • Example#491 - A apcu_delete example
  • Example#492 - An apcu_entry example
  • Example#493 - apcu_exists example
  • Example#494 - A apcu_fetch example
  • Example#495 - apcu_inc example
  • Example#496 - A apcu_key_info example
  • Example#497 - A apcu_sma_info example
  • Example#498 - apcu_store 示例
  • Example#499 - A APCUIterator::__construct example
  • Example#500 - 在脚本中使用错误句柄
  • Example#501 - debug_backtrace 范例
  • Example#502 - debug_print_backtrace 范例
  • Example#503 - error_clear_last 例子
  • Example#504 - An error_get_last 范例
  • Example#505 - error_log 范例
  • Example#506 - error_reporting 范例
  • Example#507 - restore_error_handler 范例
  • Example#508 - restore_exception_handler 范例
  • Example#509 - 用 set_error_handler 和 trigger_error 进行错误处理
  • Example#510 - set_exception_handler 范例
  • Example#511 - trigger_error 示例
  • Example#512 - 从共享库中调用函数
  • Example#513 - 调用函数，通过参数返回结构体
  • Example#514 - 访问已存在的 C 变量
  • Example#515 - 创建和修改 C 变量
  • Example#516 - 使用 C 数组
  • Example#517 - 使用 C 枚举
  • Example#518 - 将 PHP Closure 指派给 C 函数指针
  • Example#519 - 输出控制举例
  • Example#520 - 输出重写示例
  • Example#521 - ob_end_clean 示例
  • Example#522 - ob_end_flush 示例
  • Example#523 - ob_get_clean 的简单示例
  • Example#524 - ob_get_contents 简单示例
  • Example#525 - ob_get_flush 示例
  • Example#526 - ob_get_length 的简单示例
  • Example#527 - 当 full_status 是 false 的返回数组
  • Example#528 - 当 full_status 是 true 的返回数组
  • Example#529 - ob_list_handlers 示例
  • Example#530 - 用户自定义回调函数的示例
  • Example#531 - 创建不可擦除的输出缓冲区
  • Example#532 - output_add_rewrite_var 示例
  • Example#533 - output_reset_rewrite_vars 示例
  • Example#534 - assert 示例
  • Example#535 - 使用自定义信息
  • Example#536 - 使用自定义异常类
  • Example#537 - assert_options 示例
  • Example#538 - cli_get_process_title example
  • Example#539 - cli_set_process_title example
  • Example#540 - dl 示例
  • Example#541 - extension_loaded 示例
  • Example#542 - gc_enabled 示例
  • Example#543 - gc_status 用法
  • Example#544 - get_current_user 示例
  • Example#545 - get_defined_constants 示例
  • Example#546 - 打印 XML 函数
  • Example#547 - get_include_path 示例
  • Example#548 - get_included_files 示例
  • Example#549 - get_loaded_extensions 示例
  • Example#550 - Unfiltered get_resources
  • Example#551 - Filtered get_resources
  • Example#552 - getenv 示例
  • Example#553 - getlastmod 示例
  • Example#554 - getopt 示例：基本用法
  • Example#555 - getopt 示例：引入长选项
  • Example#556 - getopt 示例：传递同一多个选项
  • Example#557 - getopt 示例：使用 rest_index
  • Example#558 - getrusage 示例
  • Example#559 - 一些 ini_get 示例
  • Example#560 - ini_get_all 示例
  • Example#561 - 禁用 details
  • Example#562 - A few ini_parse_quantity examples
  • Example#563 - ini_restore 示例
  • Example#564 - 设置一个 ini 选项
  • Example#565 - 一个 memory_get_usage 示例
  • Example#566 - memory_reset_peak_usage example
  • Example#567 - php_ini_loaded_file 示例
  • Example#568 - 列出返回的 ini 文件的简单示例
  • Example#569 - php_sapi_name 示例
  • Example#570 - 一些 php_uname 的示例
  • Example#571 - 一些系统相关常量的示例
  • Example#572 - 打印普遍名单
  • Example#573 - 打印核心开发者和文档组
  • Example#574 - 打印所有贡献者
  • Example#575 - phpinfo 示例
  • Example#576 - phpversion 示例
  • Example#577 - PHP_VERSION_ID 示例和用法
  • Example#578 - 设置一个环境变量
  • Example#579 - restore_include_path 示例
  • Example#580 - set_include_path 示例
  • Example#581 - 添加到include path
  • Example#582 - sys_get_temp_dir 示例
  • Example#583 - version_compare examples
  • Example#584 - zend_thread_id 示例
  • Example#585 - zend_version 示例
  • Example#586 - Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini
  • Example#587 - A runkit7_function_add example
  • Example#588 - A runkit7_function_copy example
  • Example#589 - A runkit7_function_redefine example
  • Example#590 - runkit7_method_add example
  • Example#591 - runkit7_method_copy example
  • Example#592 - runkit7_method_redefine example
  • Example#593 - runkit7_method_remove example
  • Example#594 - runkit7_method_rename example
  • Example#595 - runkit7_zval_inspect example
  • Example#596 - Basic uopz_add_function Usage
  • Example#597 - uopz_allow_exit example
  • Example#598 - uopz_backup example
  • Example#599 - uopz_compose example
  • Example#600 - uopz_copy example
  • Example#601 - Basic uopz_del_function Usage
  • Example#602 - uopz_delete example
  • Example#603 - uopz_delete class example
  • Example#604 - uopz_extend example
  • Example#605 - uopz_flags example
  • Example#606 - "Unfinalize" a Class
  • Example#607 - uopz_function example
  • Example#608 - uopz_function class example
  • Example#609 - uopz_get_exit_status example
  • Example#610 - Basic uopz_get_hook Usage
  • Example#611 - uopz_get_mock example
  • Example#612 - Basic uopz_get_property Usage
  • Example#613 - uopz_get_return example
  • Example#614 - Basic uopz_get_static Usage
  • Example#615 - uopz_implement example
  • Example#616 - uopz_overload example
  • Example#617 - uopz_redefine example
  • Example#618 - uopz_rename example
  • Example#619 - uopz_rename class example
  • Example#620 - uopz_restore example
  • Example#621 - Basic uopz_set_hook Usage
  • Example#622 - uopz_set_mock example
  • Example#623 - uopz_set_mock example
  • Example#624 - uopz_set_mock and static members
  • Example#625 - Basic uopz_set_property Usage
  • Example#626 - uopz_set_return example
  • Example#627 - uopz_set_return example
  • Example#628 - uopz_set_return class example
  • Example#629 - Basic uopz_set_static Usage
  • Example#630 - uopz_undefine example
  • Example#631 - Basic uopz_unset_hook Usage
  • Example#632 - uopz_unset_mock example
  • Example#633 - uopz_unset_return example
  • Example#634 - wincache.ignorelist example
  • Example#635 - Authentication configuration for wincache.php
  • Example#636 - Enabling WinCache session handler
  • Example#637 - Enabling WinCache functions reroutes
  • Example#638 - Reroute.ini file content
  • Example#639 - A wincache_fcache_fileinfo example
  • Example#640 - A wincache_fcache_meminfo example
  • Example#641 - Using wincache_lock
  • Example#642 - A wincache_ocache_fileinfo example
  • Example#643 - A wincache_ocache_meminfo example
  • Example#644 - A wincache_refresh_if_changed example
  • Example#645 - A wincache_rplist_fileinfo example
  • Example#646 - A wincache_rplist_meminfo example
  • Example#647 - A wincache_scache_info example
  • Example#648 - A wincache_scache_meminfo example
  • Example#649 - wincache_ucache_add with key as a string
  • Example#650 - wincache_ucache_add with key as an array
  • Example#651 - Using wincache_ucache_cas
  • Example#652 - using wincache_ucache_clear
  • Example#653 - Using wincache_ucache_dec
  • Example#654 - Using wincache_ucache_delete with key as a string
  • Example#655 - Usingwincache_ucache_delete with key as an array
  • Example#656 - Using wincache_ucache_delete with key as an array where some elements cannot be deleted
  • Example#657 - Using wincache_ucache_exists
  • Example#658 - wincache_ucache_get with key as a string
  • Example#659 - wincache_ucache_get with key as an array
  • Example#660 - Using wincache_ucache_inc
  • Example#661 - Using wincache_ucache_info
  • Example#662 - A wincache_ucache_meminfo example
  • Example#663 - wincache_ucache_set with key as a string
  • Example#664 - wincache_ucache_set with key as an array
  • Example#665 - Using wincache_unlock
  • Example#666 - Xhprof 范例，可选使用图形界面
  • Example#667 - xhprof_disable 范例
  • Example#668 - xhprof_enable 示例
  • Example#669 - xhprof_sample_disable 范例
  • Example#670 - Make sure the item is stored
  • Example#671 - Using CHAP passwords
  • Example#672 - radius_acct_open example
  • Example#673 - radius_add_server example
  • Example#674 - radius_auth_open example
  • Example#675 - radius_create_request example
  • Example#676 - radius_cvt_addr example
  • Example#677 - radius_cvt_int example
  • Example#678 - radius_cvt_string example
  • Example#679 - radius_get_attr example
  • Example#680 - radius_get_tagged_attr_data example
  • Example#681 - radius_get_tagged_attr_tag example
  • Example#682 - radius_get_vendor_attr example
  • Example#683 - radius_put_attr example
  • Example#684 - radius_put_int example
  • Example#685 - radius_put_string example
  • Example#686 - radius_put_vendor_attr example
  • Example#687 - readline 示例
  • Example#688 - Readline 回调接口示例
  • Example#689 - bzip2 小例子
  • Example#690 - 压缩数据
  • Example#691 - 解压一个字符串
  • Example#692 - bzerror 范例
  • Example#693 - bzopen 范例
  • Example#694 - bzread 范例
  • Example#695 - bzwrite 范例
  • Example#696 - 使用外部文件
  • Example#697 - 使用 phar 归档内部文件
  • Example#698 - 将 phar 归档从 phar 转换为 tar 文件格式
  • Example#699 - phar.cache_list 用法示例
  • Example#700 - 一个 Phar::addEmptyDir 示例
  • Example#701 - 一个 Phar::addFile 示例
  • Example#702 - 一个 Phar::addFromString 示例
  • Example#703 - A Phar::apiVersion example
  • Example#704 - A Phar::buildFromDirectory example
  • Example#705 - A Phar::buildFromIterator with SplFileInfo
  • Example#706 - A Phar::buildFromIterator with other iterators
  • Example#707 - A Phar::canCompress example
  • Example#708 - A Phar::canWrite example
  • Example#709 - A Phar::compress example
  • Example#710 - A Phar::compressFiles example
  • Example#711 - A Phar::__construct example
  • Example#712 - A Phar::convertToData example
  • Example#713 - A Phar::convertToExecutable example
  • Example#714 - A Phar::copy example
  • Example#715 - A Phar::count example
  • Example#716 - A Phar::createDefaultStub example
  • Example#717 - A Phar::decompress example
  • Example#718 - A Phar::decompressFiles example
  • Example#719 - A Phar::delMetaData example
  • Example#720 - Phar::delete 示例
  • Example#721 - A Phar::extractTo example
  • Example#722 - A Phar::getMetadata example
  • Example#723 - A Phar::getStub example
  • Example#724 - A Phar::hasMetadata example
  • Example#725 - A Phar::interceptFileFuncs example
  • Example#726 - A Phar::interceptFileFuncs example
  • Example#727 - A Phar::isBuffering example
  • Example#728 - A Phar::isCompressed example
  • Example#729 - A Phar::loadPhar example
  • Example#730 - A Phar::mapPhar example
  • Example#731 - A Phar::mount example
  • Example#732 - A Phar::mungServer example
  • Example#733 - A Phar::offsetExists example
  • Example#734 - Phar::offsetGet example
  • Example#735 - A Phar::offsetSet example
  • Example#736 - A Phar::offsetUnset example
  • Example#737 - A Phar::running example
  • Example#738 - A Phar::setAlias example
  • Example#739 - A Phar::setDefaultStub example
  • Example#740 - A Phar::setMetadata example
  • Example#741 - A Phar::setStub example
  • Example#742 - A Phar::startBuffering example
  • Example#743 - A Phar::stopBuffering example
  • Example#744 - A Phar::unlinkArchive example
  • Example#745 - A Phar::webPhar example
  • Example#746 - A PharData::addEmptyDir example
  • Example#747 - A PharData::addFile example
  • Example#748 - A PharData::addFromString example
  • Example#749 - A PharData::buildFromDirectory example
  • Example#750 - A PharData::buildFromIterator with SplFileInfo
  • Example#751 - A PharData::buildFromIterator with other iterators
  • Example#752 - A PharData::compress example
  • Example#753 - A PharData::compressFiles example
  • Example#754 - A PharData::__construct example
  • Example#755 - A PharData::convertToData example
  • Example#756 - A PharData::convertToExecutable example
  • Example#757 - A PharData::copy example
  • Example#758 - A PharData::decompress example
  • Example#759 - A PharData::decompressFiles example
  • Example#760 - A PharData::delMetaData example
  • Example#761 - A PharData::delete example
  • Example#762 - A PharData::extractTo example
  • Example#763 - A PharData::offsetSet example
  • Example#764 - A PharData::offsetUnset example
  • Example#765 - A Phar::setMetadata example
  • Example#766 - A PharFileInfo::chmod example
  • Example#767 - A PharFileInfo::compress example
  • Example#768 - A PharFileInfo::__construct example
  • Example#769 - A PharFileInfo::decompress example
  • Example#770 - A PharFileInfo::delMetaData example
  • Example#771 - A PharFileInfo::getCRC32 example
  • Example#772 - A PharFileInfo::getCompressedSize example
  • Example#773 - A PharFileInfo::getMetadata example
  • Example#774 - A PharFileInfo::getPharFlags example
  • Example#775 - A PharFileInfo::isCRCChecked example
  • Example#776 - A PharFileInfo::isCompressed example
  • Example#777 - A PharFileInfo::setMetadata example
  • Example#778 - Rar installation
  • Example#779 - On-the-fly decompression
  • Example#780 - RAR extension filesystem extraction example
  • Example#781 - 面向对象风格
  • Example#782 - 过程化风格
  • Example#783 - 面向对象风格
  • Example#784 - 过程化风格
  • Example#785 - 面向对象风格
  • Example#786 - 过程化风格
  • Example#787 - 面向对象风格
  • Example#788 - 过程化风格
  • Example#789 - 面向对象风格
  • Example#790 - 过程化风格
  • Example#791 - 面向对象风格
  • Example#792 - 过程化风格
  • Example#793 - 面向对象风格
  • Example#794 - 过程化风格
  • Example#795 - Volume Callback
  • Example#796 - 面向对象风格
  • Example#797 - 过程化风格
  • Example#798 - RarArchive::__toString example
  • Example#799 - RarEntry::extract example
  • Example#800 - How to extract all files in archive:
  • Example#801 - RarEntry::getAttr example
  • Example#802 - RarEntry::getHostOs example (version >= 2.0.0)
  • Example#803 - RarEntry::getHostOs example (version <= 1.0.0)
  • Example#804 - RarEntry::getMethod example
  • Example#805 - RarEntry::getName example
  • Example#806 - RarEntry::getPackedSize example
  • Example#807 - RarEntry::getStream example
  • Example#808 - RarEntry::getUnpackedSize example
  • Example#809 - RarEntry::getVersion example
  • Example#810 - RarException::isUsingExceptions example
  • Example#811 - RarException::setUsingExceptions example
  • Example#812 - 创建 Zip 归档
  • Example#813 - 输出文档细节和列表
  • Example#814 - Zip 流封装，读取 OpenOffice 文件的元信息
  • Example#815 - Zip 使用范例
  • Example#816 - Create a new directory in an archive
  • Example#817 - Open and add
  • Example#818 - Add an entry to a new archive
  • Example#819 - Add file to a directory inside an archive
  • Example#820 - ZipArchive::addGlob example
  • Example#821 - ZipArchive::addPattern example
  • Example#822 - Delete file from archive using its index
  • Example#823 - Deleting a file and directory from an archive, using names
  • Example#824 - 提取所有条目
  • Example#825 - 提取两个条目
  • Example#826 - Dump an archive comment
  • Example#827 - 测试归档是否是 torrentzip 格式
  • Example#828 - Dump an entry comment
  • Example#829 - Dump an entry comment
  • Example#830 - Extract all entries with Unix rights
  • Example#831 - Get the file contents
  • Example#832 - Get the file contents
  • Example#833 - Convert an image from a zip entry
  • Example#834 - ZipArchive::getNameIndex example
  • Example#835 - Get the entry contents with fread and store it
  • Example#836 - Same as the previous example but with fopen and the zip stream wrapper
  • Example#837 - Stream wrapper and image, can be used with the xml function as well
  • Example#838 - Get the entry contents with fread and store it
  • Example#839 - Get the entry contents with fread and store it
  • Example#840 - Create an archive and then use it with ZipArchive::locateName
  • Example#841 - Open and extract
  • Example#842 - Create an archive
  • Example#843 - Create an temporary archive
  • Example#844 - Archive a file
  • Example#845 - Archive a file
  • Example#846 - Rename one entry
  • Example#847 - Rename one entry
  • Example#848 - Open and replace
  • Example#849 - Create an archive and set a comment
  • Example#850 - 创建 torrentzip 归档
  • Example#851 - Open an archive and set a comment for an entry
  • Example#852 - Open an archive and set a comment for an entry
  • Example#853 - Add files with different compression methods to an archive
  • Example#854 - Add files with different compression methods to an archive
  • Example#855 - Add file and set compression method
  • Example#856 - Archive and encrypt a file
  • Example#857 - Archive a file, with its Unix rights
  • Example#858 - Archive a file
  • Example#859 - Archive a file
  • Example#860 - Dump the stat info of an entry
  • Example#861 - Dump the stat info of an entry
  • Example#862 - Small Zlib Example
  • Example#863 - Working with the incremental compression and decompression API
  • Example#864 - gzclose example
  • Example#865 - gzcompress example
  • Example#866 - gzdeflate example
  • Example#867 - Creating a gzip file
  • Example#868 - gzeof example
  • Example#869 - gzfile example
  • Example#870 - gzgetc example
  • Example#871 - gzgets example
  • Example#872 - gzgetss example
  • Example#873 - gzinflate example
  • Example#874 - gzopen Example
  • Example#875 - gzpassthru example
  • Example#876 - gzread example
  • Example#877 - gzseek example
  • Example#878 - gzuncompress example
  • Example#879 - gzwrite example
  • Example#880 - ob_gzhandler 示例
  • Example#881 - zlib_encode example
  • Example#882 - hash 示例
  • Example#883 - hash_algos 示例
  • Example#884 - hash_copy 示例
  • Example#885 - hash_equals 示例
  • Example#886 - hash_file 示例
  • Example#887 - hash_hkdf example
  • Example#888 - hash_hmac 示例
  • Example#889 - hash_hmac_algos 示例
  • Example#890 - hash_hmac_file 示例
  • Example#891 - 增量散列运算示例
  • Example#892 - hash_pbkdf2 示例，基础用法
  • Example#893 - hash_update_stream 示例
  • Example#894 - mcrypt_create_iv 示例
  • Example#895 - mcrypt_enc_get_algorithms_name 示例
  • Example#896 - mcrypt_enc_get_modes_name 示例
  • Example#897 - mcrypt_enc_get_supported_key_sizes 示例
  • Example#898 - mcrypt_encrypt 示例
  • Example#899 - mcrypt_get_block_size 示例
  • Example#900 - mcrypt_get_cipher_name 示例
  • Example#901 - mcrypt_get_iv_size 示例
  • Example#902 - mcrypt_get_key_size 示例
  • Example#903 - mcrypt_list_algorithms 示例
  • Example#904 - mcrypt_list_modes 示例
  • Example#905 - mcrypt_module_open 示例
  • Example#906 - 在加密中使用 mcrypt_module_open
  • Example#907 - mcrypt_module_self_test 示例
  • Example#908 - mdecrypt_generic 示例
  • Example#909 - Computes the MD5 digest and hmac and print it out as hex
  • Example#910 - Traversing all hashes
  • Example#911 - mhash_get_block_size Example
  • Example#912 - mhash_get_hash_name Example
  • Example#913 - openssl_cipher_iv_length 范例
  • Example#914 - openssl_cipher_key_length example
  • Example#915 - openssl_cms_sign example
  • Example#916 - openssl_csr_export() 示例
  • Example#917 - openssl_csr_export_to_file() 范例
  • Example#918 - openssl_csr_get_public_key() 示例
  • Example#919 - openssl_csr_get_subject() 示例
  • Example#920 - 创建一个自签名的证书
  • Example#921 - 创建一个自签名的 ECC 证书（从 PHP 7.1.0 开始）
  • Example#922 - openssl_csr_sign 示例——签署 CSR（如何实现自己的 CA）
  • Example#923 - 计算共享秘密
  • Example#924 - 在 php 中生成 DH 公/私钥对
  • Example#925 - PHP 7.1 之前的 GCM 模式的 AES 认证加密示例
  • Example#926 - PHP 5.6+ 的 AES 认证加密例子
  • Example#927 - openssl_error_string example
  • Example#928 - openssl_get_cert_locations 范例
  • Example#929 - openssl_get_cipher_methods example
  • Example#930 - openssl_get_curve_names 示例
  • Example#931 - openssl_get_md_methods 范例：
  • Example#932 - openssl_open 示例
  • Example#933 - openssl_pbkdf2() 示例
  • Example#934 - openssl_pkcs12_read 示例
  • Example#935 - openssl_pkcs7_decrypt 示例
  • Example#936 - openssl_pkcs7_encrypt 示例
  • Example#937 - 根据 P7B 文件获取 PEM 数组
  • Example#938 - openssl_pkcs7_sign 示例
  • Example#939 - openssl_pkey_derive example
  • Example#940 - Obtain the public key from a private key
  • Example#941 - openssl_random_pseudo_bytes 示例
  • Example#942 - openssl_seal 示例
  • Example#943 - openssl_sign example
  • Example#944 - openssl_sign example
  • Example#945 - openssl_spki_export 示例
  • Example#946 - openssl_spki_export 来自 <keygen> 的示例
  • Example#947 - openssl_spki_export_challenge 示例
  • Example#948 - openssl_spki_export_challenge 来自 <keygen> 的示例
  • Example#949 - openssl_spki_new 示例
  • Example#950 - openssl_spki_verify 示例
  • Example#951 - openssl_spki_verify 来自 <keygen> 的示例
  • Example#952 - openssl_verify 示例
  • Example#953 - openssl_verify 示例
  • Example#954 - openssl_x509_verify example
  • Example#955 - Basic password usage
  • Example#956 - password_hash 示例
  • Example#957 - password_hash 手动设置 cost 的示例
  • Example#958 - 寻找最佳 cost 的 password_hash 示例
  • Example#959 - 使用 Argon2i 的 password_hash 示例
  • Example#960 - password_needs_rehash用法
  • Example#961 - password_verify 示例
  • Example#962 - RNP clearsign example
  • Example#963 - simple callback function example
  • Example#964 - sodium_crypto_box_seal example
  • Example#965 - sodium_crypto_box_seal_open example
  • Example#966 - sodium_crypto_core_ristretto255_add example
  • Example#967 - sodium_crypto_core_ristretto255_from_hash example
  • Example#968 - sodium_crypto_core_ristretto255_is_valid_point example
  • Example#969 - sodium_crypto_core_ristretto255_random example
  • Example#970 - sodium_crypto_core_ristretto255_scalar_add example
  • Example#971 - sodium_crypto_core_ristretto255_scalar_invert example
  • Example#972 - sodium_crypto_core_ristretto255_scalar_negate example
  • Example#973 - sodium_crypto_core_ristretto255_scalar_random example
  • Example#974 - sodium_crypto_core_ristretto255_scalar_sub example
  • Example#975 - sodium_crypto_core_ristretto255_sub example
  • Example#976 - sodium_crypto_generichash_final example
  • Example#977 - sodium_crypto_generichash_init example
  • Example#978 - sodium_crypto_generichash_update example
  • Example#979 - sodium_crypto_kx_keypair usage
  • Example#980 - sodium_crypto_pwhash example
  • Example#981 - sodium_crypto_pwhash_str example
  • Example#982 - sodium_crypto_secretbox example
  • Example#983 - sodium_crypto_secretbox_keygen example
  • Example#984 - Comparing sodium_crypto_secretbox_keygen with random_bytes
  • Example#985 - sodium_crypto_secretbox_open example
  • Example#986 - sodium_crypto_secretstream_xchacha20poly1305_init_pull example
  • Example#987 - sodium_crypto_secretstream_xchacha20poly1305_init_push example
  • Example#988 - sodium_crypto_stream_xchacha20_xor_ic example
  • Example#989 - DBA example
  • Example#990 - Traversing a database
  • Example#991 - dba_handlers Example
  • Example#992 - List Privileges for a Column
  • Example#993 - List Columns of a Table
  • Example#994 - DSN-less connections
  • Example#995 - odbc_connection_string_quote example
  • Example#996 - List available DSNs
  • Example#997 - odbc_execute and odbc_prepare example
  • Example#998 - odbc_fetch_into examples
  • Example#999 - odbc_next_result
  • Example#1000 - odbc_execute and odbc_prepare example
  • Example#1001 - List primary Keys of a Column
  • Example#1002 - List Columns of a stored Procedure
  • Example#1003 - List stored Procedures of a Database
  • Example#1004 - odbc_result examples
  • Example#1005 - odbc_setoption examples
  • Example#1006 - List Statistics of a Table
  • Example#1007 - List Privileges of a Table
  • Example#1008 - List Tables in a Catalog
  • Example#1009 - 使用 PDO::ATTR_DRIVER_NAME 的例子
  • Example#1010 - 连接到 MySQL
  • Example#1011 - 处理连接错误
  • Example#1012 - 关闭连接
  • Example#1013 - 持久化连接
  • Example#1014 - 在事务中执行批处理
  • Example#1015 - 用预处理语句进行重复插入
  • Example#1016 - 用预处理语句进行重复插入
  • Example#1017 - 使用预处理语句获取数据
  • Example#1018 - Calling a stored procedure with an output parameter
  • Example#1019 - 带输入/输出参数调用存储过程
  • Example#1020 - 占位符的无效使用
  • Example#1021 - 创建 PDO 实例并设置错误模式
  • Example#1022 - 创建 PDO 实例并在构造函数中设置错误模式
  • Example#1023 - 从数据库中显示一张图片
  • Example#1024 - 插入一张图片到数据库
  • Example#1025 - 插入一张图片到数据库：Oracle
  • Example#1026 - 回滚一个事务
  • Example#1027 - 提交一个基础事务
  • Example#1028 - 提交一个DDL事务
  • Example#1029 - 通过驱动程序调用创建 PDO 实例
  • Example#1030 - 通过 URI 调用创建 PDO 实例
  • Example#1031 - 使用别名创建一个PDO实例
  • Example#1032 - 取得一个 SQLSTATE 码
  • Example#1033 - Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database
  • Example#1034 - 发出 DELETE 语句
  • Example#1035 - 取回数据库连接属性
  • Example#1036 - PDO::getAvailableDrivers 示例
  • Example#1037 - 命名参数形式的 SQL 语句模板
  • Example#1038 - 问号形式的 SQL 语句模板
  • Example#1039 - 问号转义的 SQL 语句模板
  • Example#1040 - 没有占位符的 SQL 可以使用 PDO::query 执行
  • Example#1041 - 普通字符串加引号
  • Example#1042 - 危险字符串加引号
  • Example#1043 - 复杂字符串加引号
  • Example#1044 - 回滚一个事务
  • Example#1045 - 把结果集输出绑定到 PHP 变量
  • Example#1046 - 执行一条使用命名占位符的预处理语句
  • Example#1047 - 执行一条使用问号占位符的预处理语句
  • Example#1048 - 使用 INOUT 参数调用一个存储过程
  • Example#1049 - 执行一条使用命名占位符的预处理语句
  • Example#1050 - 执行一条使用问号占位符的预处理语句
  • Example#1051 - PDOStatement::closeCursor 示例
  • Example#1052 - 计算列数
  • Example#1053 - PDOStatement::debugDumpParams 使用命名参数的示例
  • Example#1054 - PDOStatement::debugDumpParams 使用未命名参数的示例
  • Example#1055 - 检索 SQLSTATE 码
  • Example#1056 - 显示连接到DB2数据库的 PDO_ODBC 连接的 errorInfo() 的字段
  • Example#1057 - 执行绑定变量和值的预处理语句
  • Example#1058 - 使用命名值数组执行预处理语句
  • Example#1059 - 使用位置值数组执行预处理语句
  • Example#1060 - 使用绑定到位置占位符的变量执行预处理语句
  • Example#1061 - 使用数组执行一条含有 IN 子句的预处理语句
  • Example#1062 - 使用不同的提取方式获取行
  • Example#1063 - 使用一个可滚动游标获取行
  • Example#1064 - 构造顺序
  • Example#1065 - 获取结果集中所有剩余的行
  • Example#1066 - 获取结果集中单独一列的所有值
  • Example#1067 - 根据单独的一列把所有值分组
  • Example#1068 - 每行结果实例化一个类
  • Example#1069 - 每行调用一次函数
  • Example#1070 - 返回下一行的第一列
  • Example#1071 - 检索列的元数据
  • Example#1072 - 获取由一个存储过程返回的多个行集合
  • Example#1073 - 返回删除的行数
  • Example#1074 - 计算由一个 SELECT 语句返回的行数
  • Example#1075 - 设置获取模式
  • Example#1076 - Insert LOBs in CUBRID PDO
  • Example#1077 - Fetch LOBs in CUBRID PDO
  • Example#1078 - Insert set in CUBRID PDO with default data type.
  • Example#1079 - Specify data type when insert set in CUBRID PDO
  • Example#1080 - PDO_CUBRID DSN examples
  • Example#1081 - A PDO::cubrid_schema example
  • Example#1082 - PDO_DBLIB DSN examples
  • Example#1083 - PDO_FIREBIRD DSN example with path
  • Example#1084 - PDO_FIREBIRD DSN example with port and path
  • Example#1085 - PDO_FIREBIRD DSN example with localhost and path to employee.fdb on Debian system
  • Example#1086 - PDO_FIREBIRD DSN to connect to a dialect 1 database
  • Example#1087 - PDO_IBM DSN example using db2cli.ini
  • Example#1088 - PDO_IBM DSN example using a connection string
  • Example#1089 - PDO_INFORMIX DSN example using odbc.ini
  • Example#1090 - PDO_INFORMIX DSN example using a connection string
  • Example#1091 - Setting MySQL unbuffered mode
  • Example#1092 - PDO_MYSQL DSN examples
  • Example#1093 - PDO_SQLSRV DSN examples
  • Example#1094 - PDO_OCI DSN examples
  • Example#1095 - PDO_ODBC DSN example (ODBC driver manager)
  • Example#1096 - PDO_ODBC DSN example (IBM DB2 uncataloged connection)
  • Example#1097 - PDO_ODBC DSN example (Microsoft Access uncataloged connection)
  • Example#1098 - PDO_PGSQL DSN examples
  • Example#1099 - A PDO::pgsqlLOBCreate example
  • Example#1100 - A PDO::pgsqlLOBOpen example
  • Example#1101 - A PDO::pgsqlLOBUnlink example
  • Example#1102 - PDO_SQLITE DSN examples
  • Example#1103 - max_length aggregation function example
  • Example#1104 - PDO::sqliteCreateCollation example
  • Example#1105 - PDO::sqliteCreateFunction example
  • Example#1106 - 数据查询的例子
  • Example#1107 - 数据插入的例子
  • Example#1108 - cubrid_bind example
  • Example#1109 - cubrid_bind BLOB/CLOB example
  • Example#1110 - cubrid_bind BLOB/CLOB example
  • Example#1111 - cubrid_close_prepare example
  • Example#1112 - cubrid_close_request example
  • Example#1113 - cubrid_col_get example
  • Example#1114 - cubrid_col_size example
  • Example#1115 - cubrid_column_names example
  • Example#1116 - cubrid_column_types example
  • Example#1117 - cubrid_commit example
  • Example#1118 - cubrid_connect example
  • Example#1119 - cubrid_connect_with_url url without properties example
  • Example#1120 - cubrid_connect_with_url url with properties example
  • Example#1121 - cubrid_current_oid example
  • Example#1122 - cubrid_disconnect example
  • Example#1123 - cubrid_drop example
  • Example#1124 - cubrid_error_code example
  • Example#1125 - cubrid_error_code_facility example
  • Example#1126 - cubrid_error_msg example
  • Example#1127 - cubrid_execute example
  • Example#1128 - cubrid_fetch example
  • Example#1129 - cubrid_free_result example
  • Example#1130 - cubrid_get example
  • Example#1131 - cubrid_get_charset example
  • Example#1132 - cubrid_get_class_name example
  • Example#1133 - cubrid_get_client_info example
  • Example#1134 - cubrid_get_db_parameter example
  • Example#1135 - cubrid_get_query_timeout example
  • Example#1136 - cubrid_get_server_info example
  • Example#1137 - cubrid_insert_id example
  • Example#1138 - cubrid_is_instance example
  • Example#1139 - cubrid_lob_close example
  • Example#1140 - cubrid_lob_export example
  • Example#1141 - cubrid_lob_get example
  • Example#1142 - cubrid_lob_send example
  • Example#1143 - cubrid_lob_size example
  • Example#1144 - cubrid_lob2_bind example
  • Example#1145 - cubrid_lob2_export example
  • Example#1146 - cubrid_lob2_export example
  • Example#1147 - cubrid_lob2_read example 1
  • Example#1148 - cubrid_lob2_read example 2
  • Example#1149 - cubrid_lob2_seek example
  • Example#1150 - cubrid_lob2_seek64 example
  • Example#1151 - cubrid_lob2_write example 1
  • Example#1152 - cubrid_lob2_write example 2
  • Example#1153 - cubrid_lock_read example
  • Example#1154 - cubrid_lock_write example
  • Example#1155 - cubrid_move_cursor example
  • Example#1156 - cubrid_next_result example
  • Example#1157 - cubrid_num_cols example
  • Example#1158 - cubrid_num_rows example
  • Example#1159 - cubrid_connect example
  • Example#1160 - cubrid_pconnect_with_url url without properties example
  • Example#1161 - cubrid_pconnect_with_url url with properties example
  • Example#1162 - cubrid_prepare example
  • Example#1163 - cubrid_put example
  • Example#1164 - cubrid_rollback example
  • Example#1165 - cubrid_schema example
  • Example#1166 - cubrid_seq_drop example
  • Example#1167 - cubrid_seq_insert example
  • Example#1168 - cubrid_seq_put example
  • Example#1169 - cubrid_set_add example
  • Example#1170 - cubrid_get_db_parameter example
  • Example#1171 - cubrid_set_drop example
  • Example#1172 - cubrid_version example
  • Example#1173 - cubrid_affected_rows example
  • Example#1174 - cubrid_client_encoding example
  • Example#1175 - cubrid_close example
  • Example#1176 - cubrid_data_seek example
  • Example#1177 - cubrid_db_name example
  • Example#1178 - cubrid_errno example
  • Example#1179 - cubrid_error example
  • Example#1180 - cubrid_fetch_array example
  • Example#1181 - cubrid_fetch_assoc example
  • Example#1182 - cubrid_fetch_field example
  • Example#1183 - cubrid_fetch_lengths example
  • Example#1184 - cubrid_fetch_object example
  • Example#1185 - cubrid_fetch_row example
  • Example#1186 - cubrid_field_flags example
  • Example#1187 - cubrid_field_len example
  • Example#1188 - cubrid_field_name example
  • Example#1189 - cubrid_field_seek example
  • Example#1190 - cubrid_field_table example
  • Example#1191 - cubrid_field_type example
  • Example#1192 - cubrid_list_dbs example
  • Example#1193 - cubrid_num_fields example
  • Example#1194 - cubrid_ping example
  • Example#1195 - Invalid Query
  • Example#1196 - Valid Query
  • Example#1197 - cubrid_real_escape_string example
  • Example#1198 - cubrid_result example
  • Example#1199 - cubrid_unbuffered_query example
  • Example#1200 - cubrid_load_from_glo example
  • Example#1201 - cubrid_new_glo example
  • Example#1202 - cubrid_save_to_glo example
  • Example#1203 - cubrid_send_glo example
  • Example#1204 - Inserting a record in a dBase database
  • Example#1205 - Closing a dBase database file
  • Example#1206 - Creating a dBase database file
  • Example#1207 - Showing header information for a dBase database file
  • Example#1208 - Listing all the registered members in the database
  • Example#1209 - dbase_numfields Example
  • Example#1210 - Looping over all the records of the database
  • Example#1211 - Opening a dBase database file
  • Example#1212 - Emptying a dBase database
  • Example#1213 - Updating a record in the database
  • Example#1214 - ibase_backup example
  • Example#1215 - ibase_backup example with arguments
  • Example#1216 - ibase_blob_get example
  • Example#1217 - ibase_blob_import example
  • Example#1218 - ibase_connect example
  • Example#1219 - ibase_execute example
  • Example#1220 - ibase_fetch_object example
  • Example#1221 - ibase_field_info example
  • Example#1222 - ibase_name_result example
  • Example#1223 - ibase_num_fields example
  • Example#1224 - ibase_query example
  • Example#1225 - ibase_restore example
  • Example#1226 - ibase_restore example with arguments
  • Example#1227 - ibase_service_attach example
  • Example#1228 - ibase_service_attach example
  • Example#1229 - ibase_service_attach example using hostname/port syntax
  • Example#1230 - ibase_service_detach example
  • Example#1231 - ibase_set_event_handler example
  • Example#1232 - Retrieving the AUTOCOMMIT value for a connection
  • Example#1233 - Setting the AUTOCOMMIT value for a connection
  • Example#1234 - Binding PHP variables to a prepared statement
  • Example#1235 - Calling stored procedures with IN and OUT parameters
  • Example#1236 - Inserting a binary large object (BLOB) directly from a file
  • Example#1237 - A db2_client_info example
  • Example#1238 - Closing a connection
  • Example#1239 - Retrieving an SQLSTATE value for a failed connection attempt
  • Example#1240 - Retrieving the error message returned by a failed connection attempt
  • Example#1241 - Creating a cataloged connection
  • Example#1242 - Creating an uncataloged connection
  • Example#1243 - Creating a connection with autocommit off by default
  • Example#1244 - i5/OS best performance
  • Example#1245 - Using trusted context
  • Example#1246 - A db2_escape_string example
  • Example#1247 - Creating a table with db2_exec
  • Example#1248 - Executing a SELECT statement with a scrollable cursor
  • Example#1249 - Returning XML data as an SQL ResultSet
  • Example#1250 - Performing a "JOIN" with XML data
  • Example#1251 - Returning SQL data as part of a larger XML document
  • Example#1252 - Preparing and executing an SQL statement with parameter markers
  • Example#1253 - Calling a stored procedure with an OUT parameter
  • Example#1254 - Returning XML data as an SQL ResultSet
  • Example#1255 - Performing a "JOIN" with XML data
  • Example#1256 - Returning SQL data as part of a larger XML document
  • Example#1257 - Iterating through a forward-only cursor
  • Example#1258 - Retrieving specific rows with db2_fetch_array from a scrollable cursor
  • Example#1259 - Iterating through a forward-only cursor
  • Example#1260 - Retrieving specific rows with db2_fetch_assoc from a scrollable cursor
  • Example#1261 - Iterating through a forward-only cursor
  • Example#1262 - Retrieving specific rows with db2_fetch_both from a scrollable cursor
  • Example#1263 - A db2_fetch_object example
  • Example#1264 - Iterating through a result set
  • Example#1265 - i5/OS recommended alternatives to db2_fetch_row/db2_result
  • Example#1266 - Setting and retrieving parameters through a connection resource
  • Example#1267 - A db2_last_insert_id example
  • Example#1268 - Iterating through different types of data
  • Example#1269 - Calling a stored procedure that returns multiple result sets
  • Example#1270 - Retrieving the number of fields in a result set
  • Example#1271 - Closing a persistent connection
  • Example#1272 - A db2_pconnect example
  • Example#1273 - Using trusted context
  • Example#1274 - Preparing and executing an SQL statement with parameter markers
  • Example#1275 - A db2_result example
  • Example#1276 - Rolling back a DELETE statement
  • Example#1277 - A db2_server_info example
  • Example#1278 - Setting one parameter with a connection resource
  • Example#1279 - Setting multiple parameters with a connection resource
  • Example#1280 - Setting multiple parameters with an invalid key
  • Example#1281 - Setting multiple parameters with an invalid value
  • Example#1282 - Setting multiple parameters with a connection resource and the wrong type
  • Example#1283 - Setting multiple parameters with the wrong resource
  • Example#1284 - Putting it all together
  • Example#1285 - i5/OS cursors are read-only
  • Example#1286 - MongoDB\Driver\Manager::__construct basic example
  • Example#1287 - MongoDB\Driver\Manager::__construct basic examples
  • Example#1288 - MongoDB\Driver\Manager::executeBulkWrite example
  • Example#1289 - MongoDB\Driver\Manager::executeCommand with a command returning a single result document
  • Example#1290 - MongoDB\Driver\Manager::executeCommand with a command returning a cursor
  • Example#1291 - Limiting execution time for a command
  • Example#1292 - MongoDB\Driver\Manager::executeQuery example
  • Example#1293 - Limiting execution time for a query
  • Example#1294 - MongoDB\Driver\Manager::getReadConcern example
  • Example#1295 - MongoDB\Driver\Manager::getReadPreference example
  • Example#1296 - MongoDB\Driver\Manager::getServers example
  • Example#1297 - MongoDB\Driver\Manager::getWriteConcern example
  • Example#1298 - Composing MongoDB\Driver\Command to provide a helper to create collections
  • Example#1299 - MongoDB\Driver\Command::__construct example
  • Example#1300 - MongoDB\Driver\Command::__construct example
  • Example#1301 - MongoDB\Driver\Query::__construct example
  • Example#1302 - Mixed write operations are grouped by type
  • Example#1303 - Ordered write operations causing an error
  • Example#1304 - MongoDB\Driver\BulkWrite::__construct example
  • Example#1305 - MongoDB\Driver\BulkWrite::count example
  • Example#1306 - MongoDB\Driver\BulkWrite::delete example
  • Example#1307 - MongoDB\Driver\BulkWrite::insert example
  • Example#1308 - MongoDB\Driver\BulkWrite::update example
  • Example#1309 - Declare an API version on a manager
  • Example#1310 - Declare a strict API version on a manager
  • Example#1311 - MongoDB\Driver\WriteConcern::bsonSerialize with majority write concern
  • Example#1312 - MongoDB\Driver\WriteConcern::bsonSerialize with wtimeout and journal
  • Example#1313 - MongoDB\Driver\WriteConcern::__construct example
  • Example#1314 - MongoDB\Driver\WriteConcern::getJournal example
  • Example#1315 - MongoDB\Driver\WriteConcern::getW example
  • Example#1316 - MongoDB\Driver\WriteConcern::getWtimeout example
  • Example#1317 - MongoDB\Driver\WriteConcern::isDefault example
  • Example#1318 - MongoDB\Driver\ReadPreference::bsonSerialize with primary read preference
  • Example#1319 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and tag sets
  • Example#1320 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and max staleness
  • Example#1321 - MongoDB\Driver\ReadPreference::__construct example
  • Example#1322 - MongoDB\Driver\ReadPreference::getMaxStalenessSeconds example
  • Example#1323 - MongoDB\Driver\ReadPreference::getMode example
  • Example#1324 - MongoDB\Driver\ReadPreference::getModeString example
  • Example#1325 - MongoDB\Driver\ReadPreference::getTagSets example
  • Example#1326 - MongoDB\Driver\ReadConcern::bsonSerialize with empty read concern
  • Example#1327 - MongoDB\Driver\ReadConcern::bsonSerialize with local read concern
  • Example#1328 - MongoDB\Driver\ReadConcern::__construct example
  • Example#1329 - MongoDB\Driver\ReadConcern::getLevel example
  • Example#1330 - MongoDB\Driver\ReadConcern::isDefault example
  • Example#1331 - Reading a result set
  • Example#1332 - Reading a result set for a tailable cursor
  • Example#1333 - MongoDB\Driver\Cursor::getId example
  • Example#1334 - MongoDB\Driver\Cursor::getServer example
  • Example#1335 - MongoDB\Driver\Cursor::isDead example
  • Example#1336 - MongoDB\Driver\Cursor::setTypeMap example
  • Example#1337 - MongoDB\Driver\Cursor::toArray example
  • Example#1338 - MongoDB\Driver\CursorId::__toString example
  • Example#1339 - MongoDB\Driver\Server::getHost example
  • Example#1340 - MongoDB\Driver\Server::getInfo example
  • Example#1341 - MongoDB\Driver\Server::getLatency example
  • Example#1342 - MongoDB\Driver\Server::getPort example
  • Example#1343 - MongoDB\Driver\WriteConcernError::getCode example
  • Example#1344 - MongoDB\Driver\WriteConcernError::getInfo example
  • Example#1345 - MongoDB\Driver\WriteConcernError::getMessage example
  • Example#1346 - MongoDB\Driver\WriteError::getCode example
  • Example#1347 - MongoDB\Driver\WriteError::getIndex example
  • Example#1348 - MongoDB\Driver\WriteError::getMessage example
  • Example#1349 - MongoDB\Driver\WriteResult::getDeletedCount example
  • Example#1350 - MongoDB\Driver\WriteResult::getInsertedCount example
  • Example#1351 - MongoDB\Driver\WriteResult::getMatchedCount example
  • Example#1352 - MongoDB\Driver\WriteResult::getModifiedCount example
  • Example#1353 - MongoDB\Driver\WriteResult::getServer example
  • Example#1354 - MongoDB\Driver\WriteResult::getUpsertedCount example
  • Example#1355 - MongoDB\Driver\WriteResult::getUpsertedIds example
  • Example#1356 - MongoDB\Driver\WriteResult::getWriteConcernError example
  • Example#1357 - MongoDB\Driver\WriteResult::getWriteErrors with a single error
  • Example#1358 - MongoDB\Driver\WriteResult::getWriteErrors with multiple errors
  • Example#1359 - MongoDB\Driver\WriteResult::isAcknowledged with acknowledged write concern
  • Example#1360 - MongoDB\Driver\WriteResult::isAcknowledged with unacknowledged write concern
  • Example#1361 - MongoDB\BSON\fromJSON example
  • Example#1362 - MongoDB\BSON\fromPHP example
  • Example#1363 - MongoDB\BSON\toCanonicalExtendedJSON example
  • Example#1364 - MongoDB\BSON\toJSON example
  • Example#1365 - MongoDB\BSON\toPHP example
  • Example#1366 - MongoDB\BSON\toRelaxedExtendedJSON example
  • Example#1367 - MongoDB\BSON\Document::toCanonicalExtendedJSON example
  • Example#1368 - MongoDB\BSON\Document::toRelaxedExtendedJSON example
  • Example#1369 - MongoDB\BSON\Binary::__construct example
  • Example#1370 - MongoDB\BSON\Binary::getData example
  • Example#1371 - MongoDB\BSON\Binary::getType example
  • Example#1372 - MongoDB\BSON\Binary::__toString example
  • Example#1373 - MongoDB\BSON\Decimal128::__construct example
  • Example#1374 - MongoDB\BSON\Decimal128::__toString example
  • Example#1375 - MongoDB\BSON\Javascript::__construct example
  • Example#1376 - MongoDB\BSON\Javascript::getCode example
  • Example#1377 - MongoDB\BSON\Javascript::getScope example
  • Example#1378 - MongoDB\BSON\Javascript::__toString example
  • Example#1379 - MongoDB\BSON\MaxKey::__construct example
  • Example#1380 - MongoDB\BSON\MinKey::__construct example
  • Example#1381 - MongoDB\BSON\ObjectId::__construct example
  • Example#1382 - MongoDB\BSON\ObjectId::getTimestamp example
  • Example#1383 - MongoDB\BSON\ObjectId::__toString example
  • Example#1384 - MongoDB\BSON\Regex::__construct example
  • Example#1385 - MongoDB\BSON\Regex::getFlags example
  • Example#1386 - MongoDB\BSON\Regex::getPattern example
  • Example#1387 - MongoDB\BSON\Regex::__toString example
  • Example#1388 - MongoDB\BSON\Timestamp::__construct example
  • Example#1389 - MongoDB\BSON\Timestamp::__toString example
  • Example#1390 - MongoDB\BSON\UTCDateTime::__construct example
  • Example#1391 - MongoDB\BSON\UTCDatetime::toDateTime example
  • Example#1392 - MongoDB\BSON\UTCDatetime::toDateTimeImmutable example
  • Example#1393 - MongoDB\BSON\UTCDateTime::__toString example
  • Example#1394 - MongoDB\BSON\Serializable::bsonSerialize returning an associative array for root document
  • Example#1395 - MongoDB\BSON\Serializable::bsonSerialize returning a sequential array for root document
  • Example#1396 - MongoDB\BSON\Serializable::bsonSerialize returning an associative array for document field
  • Example#1397 - MongoDB\BSON\Serializable::bsonSerialize returning a sequential array for document field
  • Example#1398 - MongoDB\BSON\Unserializable::bsonUnserialize example
  • Example#1399 - MongoDB\BSON\Int64::__toString example
  • Example#1400 - MongoDB\Driver\Exception\WriteException::getWriteResult example
  • Example#1401 - Comparing the MySQL APIs
  • Example#1402 - Comparing prepared statements
  • Example#1403 - Configure commands for using mysqlnd or libmysqlclient
  • Example#1404 - Unbuffered query example: mysqli
  • Example#1405 - Unbuffered query example: pdo_mysql
  • Example#1406 - Problems with setting the character set with SQL
  • Example#1407 - Setting the character set example: mysqli
  • Example#1408 - Setting the character set example: pdo_mysql
  • Example#1409 - 从旧的 mysql 扩展轻松迁移
  • Example#1410 - 面向对象和面向过程接口
  • Example#1411 - 糟糕的编码风格
  • Example#1412 - Special meaning of localhost
  • Example#1413 - Setting defaults
  • Example#1414 - Executing queries
  • Example#1415 - Navigation through buffered results
  • Example#1416 - Navigation through unbuffered results
  • Example#1417 - Text protocol returns strings by default
  • Example#1418 - Native data types with mysqlnd and connection option
  • Example#1419 - Prepared statement
  • Example#1420 - INSERT prepared once, executed multiple times
  • Example#1421 - Less round trips using multi-INSERT SQL
  • Example#1422 - Native datatypes
  • Example#1423 - Output variable binding
  • Example#1424 - Using mysqli_result to fetch results
  • Example#1425 - Buffered result set for flexible read out
  • Example#1426 - Calling a stored procedure
  • Example#1427 - Using session variables
  • Example#1428 - Fetching results from stored procedures
  • Example#1429 - Stored Procedures and Prepared Statements
  • Example#1430 - Stored Procedures and Prepared Statements using bind API
  • Example#1431 - Multiple Statements
  • Example#1432 - SQL Injection
  • Example#1433 - Setting autocommit mode with SQL and through the API
  • Example#1434 - Commit and rollback
  • Example#1435 - Accessing result set meta data
  • Example#1436 - Prepared statements metadata
  • Example#1437 - $mysqli->affected_rows example
  • Example#1438 - mysqli::autocommit 示例
  • Example#1439 - mysqli::begin_transaction example
  • Example#1440 - mysqli::change_user example
  • Example#1441 - mysqli::character_set_name 示例
  • Example#1442 - mysqli::close 示例
  • Example#1443 - $mysqli->connect_errno example
  • Example#1444 - $mysqli->connect_error example
  • Example#1445 - mysqli::__construct example
  • Example#1446 - Extending mysqli class
  • Example#1447 - Manual error handling
  • Example#1448 - Generating a Trace File
  • Example#1449 - $mysqli->errno 示例
  • Example#1450 - $mysqli->error example
  • Example#1451 - $mysqli->error_list example
  • Example#1452 - mysqli::execute_query example
  • Example#1453 - $mysqli->field_count example
  • Example#1454 - mysqli::get_charset example
  • Example#1455 - mysqli_get_client_info
  • Example#1456 - mysqli_get_client_version
  • Example#1457 - A mysqli_get_connection_stats 示例
  • Example#1458 - $mysqli->host_info 示例
  • Example#1459 - $mysqli->protocol_version 示例
  • Example#1460 - $mysqli->server_info 示例
  • Example#1461 - $mysqli->server_version 示例
  • Example#1462 - $mysqli->info 示例
  • Example#1463 - $mysqli->insert_id 示例
  • Example#1464 - mysqli::kill 示例
  • Example#1465 - mysqli::multi_query 示例
  • Example#1466 - mysqli::ping 示例
  • Example#1467 - mysqli_poll 示例
  • Example#1468 - mysqli::prepare 示例
  • Example#1469 - mysqli::query 示例
  • Example#1470 - mysqli::real_connect 示例
  • Example#1471 - mysqli::real_escape_string 示例
  • Example#1472 - mysqli::select_db 示例
  • Example#1473 - mysqli::set_charset 示例
  • Example#1474 - $mysqli->sqlstate 示例
  • Example#1475 - mysqli::stat 示例
  • Example#1476 - $mysqli->thread_id 示例
  • Example#1477 - mysqli::use_result example
  • Example#1478 - $mysqli->warning_count example
  • Example#1479 - mysqli_stmt_affected_rows example
  • Example#1480 - mysqli_stmt::bind_param example
  • Example#1481 - Using ... to provide arguments
  • Example#1482 - 面向对象风格
  • Example#1483 - 过程化风格
  • Example#1484 - 面向对象风格
  • Example#1485 - 过程化风格
  • Example#1486 - 面向对象风格
  • Example#1487 - 过程化风格
  • Example#1488 - 面向对象风格
  • Example#1489 - 过程化风格
  • Example#1490 - 面向对象风格
  • Example#1491 - 过程化风格
  • Example#1492 - Execute a prepared statement with bound variables
  • Example#1493 - Execute a prepared statement with an array of values
  • Example#1494 - 面向对象风格
  • Example#1495 - 过程化风格
  • Example#1496 - 面向对象风格
  • Example#1497 - 过程化风格
  • Example#1498 - 面向对象风格
  • Example#1499 - 过程化风格
  • Example#1500 - 面向对象风格
  • Example#1501 - 过程化风格
  • Example#1502 - 面向对象风格
  • Example#1503 - 过程化风格
  • Example#1504 - mysqli_stmt::prepare example
  • Example#1505 - 面向对象风格
  • Example#1506 - 过程化风格
  • Example#1507 - 面向对象风格
  • Example#1508 - 面向对象风格
  • Example#1509 - 过程化风格
  • Example#1510 - 面向对象风格
  • Example#1511 - 过程化风格
  • Example#1512 - Creation of a mysqli_result object
  • Example#1513 - 面向对象风格
  • Example#1514 - 过程化风格
  • Example#1515 - mysqli::data_seek example
  • Example#1516 - Adjusting the result pointer when iterating
  • Example#1517 - mysqli_result::fetch_all example
  • Example#1518 - mysqli_result::fetch_array example
  • Example#1519 - mysqli_result::fetch_assoc example
  • Example#1520 - Comparison of mysqli_result iterator and mysqli_result::fetch_assoc usage
  • Example#1521 - mysqli_result::fetch_column example
  • Example#1522 - 面向对象风格
  • Example#1523 - 过程化风格
  • Example#1524 - 面向对象风格
  • Example#1525 - 过程化风格
  • Example#1526 - 面向对象风格
  • Example#1527 - 过程化风格
  • Example#1528 - mysqli_result::fetch_object example
  • Example#1529 - mysqli_result::fetch_row example
  • Example#1530 - 面向对象风格
  • Example#1531 - 过程化风格
  • Example#1532 - 面向对象风格
  • Example#1533 - 过程化风格
  • Example#1534 - 面向对象风格
  • Example#1535 - 过程化风格
  • Example#1536 - 面向对象风格
  • Example#1537 - 过程化风格
  • Example#1538 - 面向对象风格
  • Example#1539 - 过程化风格
  • Example#1540 - Error reporting except bad index errors
  • Example#1541 - A mysqli_get_client_stats 示例
  • Example#1542 - Connecting to a MySQL Server
  • Example#1543 - Creating a Schema and Collection on the MySQL Server
  • Example#1544 - Storing and Retrieving Data
  • Example#1545 - Fetching and Iterating Multiple Documents
  • Example#1546 - mysql_xdevapi\Expression example
  • Example#1547 - URI examples
  • Example#1548 - mysql_xdevapi\getSession example
  • Example#1549 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1550 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1551 - mysql_xdevapi\Client::__construct example
  • Example#1552 - mysql_xdevapi\Collection::add example
  • Example#1553 - mysql_xdevapi\Collection::addOrReplaceOne example
  • Example#1554 - mysql_xdevapi\Collection::getOne example
  • Example#1555 - mysql_xdevapi\Collection::count example
  • Example#1556 - mysql_xdevapi\Collection::createIndex example
  • Example#1557 - mysql_xdevapi\Collection::dropIndex example
  • Example#1558 - mysql_xdevapi\Collection::existsInDatabase example
  • Example#1559 - mysql_xdevapi\Collection::find example
  • Example#1560 - mysql_xdevapi\Collection::getName example
  • Example#1561 - mysql_xdevapi\Collection::getOne example
  • Example#1562 - mysql_xdevapi\Collection::getSchema example
  • Example#1563 - mysql_xdevapi\Collection::getSession example
  • Example#1564 - mysql_xdevapi\Collection::modify example
  • Example#1565 - mysql_xdevapi\Collection::remove example
  • Example#1566 - mysql_xdevapi\Collection::removeOne example
  • Example#1567 - mysql_xdevapi\Collection::replaceOne example
  • Example#1568 - mysql_xdevapi\CollectionAdd::__construct example
  • Example#1569 - mysql_xdevapi\CollectionAdd::execute example
  • Example#1570 - mysql_xdevapi\CollectionFind::bind example
  • Example#1571 - CollectionFind example
  • Example#1572 - CollectionFind example
  • Example#1573 - mysql_xdevapi\CollectionFind::fields example
  • Example#1574 - mysql_xdevapi\CollectionFind::groupBy example
  • Example#1575 - mysql_xdevapi\CollectionFind::having example
  • Example#1576 - mysql_xdevapi\CollectionFind::limit example
  • Example#1577 - mysql_xdevapi\CollectionFind::lockExclusive example
  • Example#1578 - mysql_xdevapi\CollectionFind::lockShared example
  • Example#1579 - mysql_xdevapi\CollectionFind::offset example
  • Example#1580 - mysql_xdevapi\CollectionFind::sort example
  • Example#1581 - mysql_xdevapi\CollectionModify::arrayAppend example
  • Example#1582 - mysql_xdevapi\CollectionModify::arrayInsert example
  • Example#1583 - mysql_xdevapi\CollectionModify::bind example
  • Example#1584 - mysql_xdevapi\CollectionModify::__construct example
  • Example#1585 - mysql_xdevapi\CollectionModify::execute example
  • Example#1586 - mysql_xdevapi\CollectionModify::limit example
  • Example#1587 - mysql_xdevapi\CollectionModify::patch example
  • Example#1588 - mysql_xdevapi\CollectionModify::replace example
  • Example#1589 - mysql_xdevapi\CollectionModify::set example
  • Example#1590 - mysql_xdevapi\CollectionModify::skip example
  • Example#1591 - mysql_xdevapi\CollectionModify::sort example
  • Example#1592 - mysql_xdevapi\CollectionModify::unset example
  • Example#1593 - mysql_xdevapi\CollectionRemove::bind example
  • Example#1594 - mysql_xdevapi\Collection::remove example
  • Example#1595 - mysql_xdevapi\CollectionRemove::execute example
  • Example#1596 - mysql_xdevapi\CollectionRemove::limit example
  • Example#1597 - mysql_xdevapi\CollectionRemove::sort example
  • Example#1598 - mysql_xdevapi\ColumnResult::__construct example
  • Example#1599 - mysql_xdevapi\ColumnResult::getCharacterSetName example
  • Example#1600 - mysql_xdevapi\ColumnResult::getCollationName example
  • Example#1601 - mysql_xdevapi\ColumnResult::getColumnLabel example
  • Example#1602 - mysql_xdevapi\ColumnResult::getColumnName example
  • Example#1603 - mysql_xdevapi\ColumnResult::getFractionalDigits example
  • Example#1604 - mysql_xdevapi\ColumnResult::getLength example
  • Example#1605 - mysql_xdevapi\ColumnResult::getSchemaName example
  • Example#1606 - mysql_xdevapi\ColumnResult::getTableLabel example
  • Example#1607 - mysql_xdevapi\ColumnResult::getTableName example
  • Example#1608 - mysql_xdevapi\ColumnResult::getType example
  • Example#1609 - mysql_xdevapi\ColumnResult::isNumberSigned example
  • Example#1610 - mysql_xdevapi\ColumnResult::isPadded example
  • Example#1611 - mysql_xdevapi\CrudOperationBindable::bind example
  • Example#1612 - mysql_xdevapi\CrudOperationLimitable::limit example
  • Example#1613 - mysql_xdevapi\CrudOperationSkippable::skip example
  • Example#1614 - mysql_xdevapi\CrudOperationSortable::sort example
  • Example#1615 - mysql_xdevapi\DatabaseObject::existsInDatabase example
  • Example#1616 - mysql_xdevapi\DatabaseObject::getName example
  • Example#1617 - mysql_xdevapi\DatabaseObject::getSession example
  • Example#1618 - A DocResult example
  • Example#1619 - mysql_xdevapi\DocResult::fetchAll example
  • Example#1620 - mysql_xdevapi\DocResult::fetchOne example
  • Example#1621 - mysql_xdevapi\DocResult::getWarnings example
  • Example#1622 - mysql_xdevapi\DocResult::getWarningsCount example
  • Example#1623 - execute() examples
  • Example#1624 - mysql_xdevapi\ExecutionStatus::__construct example
  • Example#1625 - mysql_xdevapi\Expression::__construct example
  • Example#1626 - mysql_xdevapi\Result::__construct example
  • Example#1627 - mysql_xdevapi\Result::getAffectedItemsCount example
  • Example#1628 - mysql_xdevapi\Result::getAutoIncrementValue example
  • Example#1629 - mysql_xdevapi\Result::getGeneratedIds example
  • Example#1630 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1631 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1632 - mysql_xdevapi\RowResult::__construct example
  • Example#1633 - mysql_xdevapi\RowResult::fetchAll example
  • Example#1634 - mysql_xdevapi\RowResult::fetchOne example
  • Example#1635 - mysql_xdevapi\RowResult::getColumnsCount example
  • Example#1636 - mysql_xdevapi\RowResult::getColumnNames example
  • Example#1637 - mysql_xdevapi\RowResult::getColumns example
  • Example#1638 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1639 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1640 - mysql_xdevapi\Schema::__construct example
  • Example#1641 - mysql_xdevapi\Schema::createCollection example
  • Example#1642 - mysql_xdevapi\Schema::createCollection example
  • Example#1643 - mysql_xdevapi\Schema::dropCollection example
  • Example#1644 - mysql_xdevapi\Schema::existsInDatabase example
  • Example#1645 - mysql_xdevapi\Schema::getCollection example
  • Example#1646 - mysql_xdevapi\Schema::getCollectionAsTable example
  • Example#1647 - mysql_xdevapi\Schema::getCollections example
  • Example#1648 - mysql_xdevapi\Schema::getName example
  • Example#1649 - mysql_xdevapi\Schema::getSession example
  • Example#1650 - mysql_xdevapi\Schema::getTable example
  • Example#1651 - mysql_xdevapi\Schema::getTables example
  • Example#1652 - mysql_xdevapi\Session::getSchema example
  • Example#1653 - mysql_xdevapi\Session::close example
  • Example#1654 - mysql_xdevapi\Session::commit example
  • Example#1655 - mysql_xdevapi\Session::__construct example
  • Example#1656 - mysql_xdevapi\Session::createSchema example
  • Example#1657 - mysql_xdevapi\Session::dropSchema example
  • Example#1658 - mysql_xdevapi\Session::generateUuid example
  • Example#1659 - mysql_xdevapi\Session::getSchema example
  • Example#1660 - mysql_xdevapi\Session::getSchema example
  • Example#1661 - mysql_xdevapi\Session::getSchemas example
  • Example#1662 - mysql_xdevapi\Session::getServerVersion example
  • Example#1663 - mysql_xdevapi\Session::listClients example
  • Example#1664 - mysql_xdevapi\Session::quoteName example
  • Example#1665 - mysql_xdevapi\Session::releaseSavepoint example
  • Example#1666 - mysql_xdevapi\Session::rollback example
  • Example#1667 - mysql_xdevapi\Session::rollbackTo example
  • Example#1668 - mysql_xdevapi\Session::setSavepoint example
  • Example#1669 - mysql_xdevapi\Session::sql example
  • Example#1670 - mysql_xdevapi\Session::startTransaction example
  • Example#1671 - mysql_xdevapi\SqlStatement::bind example
  • Example#1672 - mysql_xdevapi\SqlStatement::__construct example
  • Example#1673 - mysql_xdevapi\SqlStatement::execute example
  • Example#1674 - mysql_xdevapi\SqlStatement::getNextResult example
  • Example#1675 - mysql_xdevapi\SqlStatement::getResult example
  • Example#1676 - mysql_xdevapi\SqlStatement::hasMoreResults example
  • Example#1677 - mysql_xdevapi\SqlStatementResult::__construct example
  • Example#1678 - mysql_xdevapi\SqlStatementResult::fetchAll example
  • Example#1679 - mysql_xdevapi\SqlStatementResult::fetchOne example
  • Example#1680 - mysql_xdevapi\SqlStatementResult::getAffectedItemsCount example
  • Example#1681 - mysql_xdevapi\SqlStatementResult::getColumnsCount example
  • Example#1682 - mysql_xdevapi\SqlStatementResult::getColumnNames example
  • Example#1683 - mysql_xdevapi\SqlStatementResult::getColumns example
  • Example#1684 - mysql_xdevapi\SqlStatementResult::getGeneratedIds example
  • Example#1685 - mysql_xdevapi\SqlStatementResult::getLastInsertId example
  • Example#1686 - mysql_xdevapi\SqlStatementResult::getWarnings example
  • Example#1687 - mysql_xdevapi\SqlStatementResult::getWarningsCount example
  • Example#1688 - mysql_xdevapi\SqlStatementResult::hasData example
  • Example#1689 - mysql_xdevapi\SqlStatementResult::nextResult example
  • Example#1690 - mysql_xdevapi\Statement::__construct example
  • Example#1691 - mysql_xdevapi\Statement::getNextResult example
  • Example#1692 - mysql_xdevapi\Statement::getResult example
  • Example#1693 - mysql_xdevapi\Statement::hasMoreResults example
  • Example#1694 - mysql_xdevapi\Table::__construct example
  • Example#1695 - mysql_xdevapi\Table::count example
  • Example#1696 - mysql_xdevapi\Table::delete example
  • Example#1697 - mysql_xdevapi\Table::existsInDatabase example
  • Example#1698 - mysql_xdevapi\Table::getName example
  • Example#1699 - mysql_xdevapi\Table::getSchema example
  • Example#1700 - mysql_xdevapi\Table::getSession example
  • Example#1701 - mysql_xdevapi\Table::insert example
  • Example#1702 - mysql_xdevapi\Table::isView example
  • Example#1703 - mysql_xdevapi\Table::count example
  • Example#1704 - mysql_xdevapi\Table::update example
  • Example#1705 - mysql_xdevapi\TableDelete::bind example
  • Example#1706 - mysql_xdevapi\TableDelete::__construct example
  • Example#1707 - mysql_xdevapi\TableDelete::execute example
  • Example#1708 - mysql_xdevapi\TableDelete::limit example
  • Example#1709 - mysql_xdevapi\TableDelete::orderBy example
  • Example#1710 - mysql_xdevapi\TableDelete::where example
  • Example#1711 - mysql_xdevapi\TableInsert::__construct example
  • Example#1712 - mysql_xdevapi\TableInsert::execute example
  • Example#1713 - mysql_xdevapi\TableInsert::values example
  • Example#1714 - mysql_xdevapi\TableSelect::bind example
  • Example#1715 - mysql_xdevapi\TableSelect::__construct example
  • Example#1716 - mysql_xdevapi\TableSelect::execute example
  • Example#1717 - mysql_xdevapi\TableSelect::groupBy example
  • Example#1718 - mysql_xdevapi\TableSelect::having example
  • Example#1719 - mysql_xdevapi\TableSelect::limit example
  • Example#1720 - mysql_xdevapi\TableSelect::lockExclusive example
  • Example#1721 - mysql_xdevapi\TableSelect::lockShared example
  • Example#1722 - mysql_xdevapi\TableSelect::offset example
  • Example#1723 - mysql_xdevapi\TableSelect::orderBy example
  • Example#1724 - mysql_xdevapi\TableSelect::where example
  • Example#1725 - mysql_xdevapi\TableUpdate::bind example
  • Example#1726 - mysql_xdevapi\TableUpdate::__construct example
  • Example#1727 - mysql_xdevapi\TableUpdate::execute example
  • Example#1728 - mysql_xdevapi\TableUpdate::limit example
  • Example#1729 - mysql_xdevapi\TableUpdate::orderby example
  • Example#1730 - mysql_xdevapi\TableUpdate::set example
  • Example#1731 - mysql_xdevapi\TableUpdate::where example
  • Example#1732 - mysql_xdevapi\Warning::__construct example
  • Example#1733 - MySQL 扩展概述范例
  • Example#1734 - mysql_affected_rows 例子
  • Example#1735 - 使用事务处理的 mysql_affected_rows 例子
  • Example#1736 - mysql_client_encoding 示例
  • Example#1737 - mysql_close 示例
  • Example#1738 - mysql_connect 示例
  • Example#1739 - mysql_connect 示例：使用 hostname:port 语法
  • Example#1740 - mysql_connect 示例：使用 ":/path/to/socket" 语法
  • Example#1741 - 替代 mysql_create_db 示例
  • Example#1742 - mysql_data_seek 示例
  • Example#1743 - mysql_db_name 示例
  • Example#1744 - 替代 mysql_db_query 示例
  • Example#1745 - mysql_drop_db alternative example
  • Example#1746 - mysql_errno 示例
  • Example#1747 - mysql_error 示例
  • Example#1748 - mysql_escape_string 示例
  • Example#1749 - msql_fetch_array 示例
  • Example#1750 - 扩展的 mysql_fetch_assoc 例子
  • Example#1751 - mysql_fetch_field
  • Example#1752 - mysql_fetch_field example
  • Example#1753 - mysql_fetch_lengths 示例
  • Example#1754 - mysql_fetch_object example
  • Example#1755 - mysql_fetch_object example
  • Example#1756 - Fetching one row with mysql_fetch_row
  • Example#1757 - mysql_field_flags 示例
  • Example#1758 - mysql_field_len 示例
  • Example#1759 - mysql_field_name 例子
  • Example#1760 - mysql_field_name example
  • Example#1761 - mysql_field_table 示例
  • Example#1762 - mysql_field_type 例子
  • Example#1763 - mysql_field_type example
  • Example#1764 - A mysql_free_result example
  • Example#1765 - mysql_get_client_info 示例
  • Example#1766 - mysql_get_host_info 示例
  • Example#1767 - mysql_get_proto_info 示例
  • Example#1768 - mysql_get_server_info 示例
  • Example#1769 - 相关的 MySQL 语句
  • Example#1770 - mysql_insert_id 示例
  • Example#1771 - mysql_list_dbs 示例
  • Example#1772 - 替代弃用 mysql_list_fields
  • Example#1773 - mysql_list_processes 示例
  • Example#1774 - mysql_list_tables 例子
  • Example#1775 - mysql_num_fields 示例
  • Example#1776 - mysql_num_rows 示例
  • Example#1777 - mysql_ping 示例
  • Example#1778 - 无效的查询
  • Example#1779 - 有效的查询
  • Example#1780 - 简单 mysql_real_escape_string 示例
  • Example#1781 - mysql_real_escape_string requires a connection example
  • Example#1782 - An example SQL Injection Attack
  • Example#1783 - mysql_result 示例
  • Example#1784 - mysql_select_db 例子
  • Example#1785 - mysql_select_db example
  • Example#1786 - mysql_stat 示例
  • Example#1787 - 替代 mysql_stat 示例
  • Example#1788 - mysql_tablename example
  • Example#1789 - mysql_thread_id 示例
  • Example#1790 - Examples of code snippets that cause an explicit close
  • Example#1791 - Examples of code snippets that cause an implicit close
  • Example#1792 - Usage examples
  • Example#1793 - Basic query
  • Example#1794 - Inserting with bind variables
  • Example#1795 - Binding in the WHERE clause of a query
  • Example#1796 - Inserting and fetching a CLOB
  • Example#1797 - Using a PL/SQL stored function
  • Example#1798 - Using a PL/SQL stored procedure
  • Example#1799 - Calling a PL/SQL function that returns a REF CURSOR
  • Example#1800 - Registering a TAF callback
  • Example#1801 - user_oci8_probes.d for tracing all user-level PHP OCI8 Static Probes with DTrace
  • Example#1802 - oci_bind_array_by_name example
  • Example#1803 - 使用 oci_bind_by_name 插入数据
  • Example#1804 - 一次绑定多次执行
  • Example#1805 - 使用 foreach 循环绑定
  • Example#1806 - 在 WHERE 子句中绑定
  • Example#1807 - 使用 LIKE 子句绑定
  • Example#1808 - 与 REGEXP_LIKE 绑定
  • Example#1809 - 在 IN 子句中绑定多个值
  • Example#1810 - Binding a ROWID returned by a query
  • Example#1811 - INSERT 时绑定 ROWID
  • Example#1812 - 为 PL/SQL 存储函数绑定
  • Example#1813 - 为 PL/SQL 存储过程绑定参数
  • Example#1814 - 绑定 CLOB 列
  • Example#1815 - 绑定 PL/SQL BOOLEAN
  • Example#1816 - oci_client_version example
  • Example#1817 - 关闭连接
  • Example#1818 - 在关闭所有引用之前不会关闭数据库连接
  • Example#1819 - 关闭多次打开的连接
  • Example#1820 - 当变量超出作用域时关闭连接
  • Example#1821 - oci_commit 示例
  • Example#1822 - 使用 Easy Connect 语法的基础 oci_connect
  • Example#1823 - 使用 Network Connect 名称的基础 oci_connect
  • Example#1824 - 带有显式字符集的 oci_connect
  • Example#1825 - 多次调用 oci_connect
  • Example#1826 - oci_define_by_name 示例
  • Example#1827 - oci_define_by_name 带有区分大小写的列名
  • Example#1828 - oci_define_by_name 带有 LOB 列
  • Example#1829 - oci_define_by_name 带有显式类型
  • Example#1830 - 连接错误后显示 Oracle 错误消息
  • Example#1831 - 语法解析错误后显示 Oracle 错误消息
  • Example#1832 - 显示 Oracle 错误信息、问题语句、执行错误问题所在位置
  • Example#1833 - oci_execute 用于查询
  • Example#1834 - oci_execute 未指定模式示例
  • Example#1835 - oci_execute 和 OCI_NO_AUTO_COMMIT 示例
  • Example#1836 - 具有不同提交模式的 oci_execute 示例
  • Example#1837 - oci_execute 与 OCI_DESCRIBE_ONLY 示例
  • Example#1838 - oci_fetch 与已定义的变量
  • Example#1839 - oci_fetch 和 oci_result
  • Example#1840 - oci_fetch_all 示例
  • Example#1841 - 带有 OCI_FETCHSTATEMENT_BY_ROW 的 oci_fetch_all 示例
  • Example#1842 - 带有 OCI_NUM 的 oci_fetch_all
  • Example#1843 - oci_fetch_array with OCI_BOTH
  • Example#1844 - oci_fetch_array with OCI_NUM
  • Example#1845 - oci_fetch_array with OCI_ASSOC
  • Example#1846 - oci_fetch_array with OCI_RETURN_NULLS
  • Example#1847 - oci_fetch_array with OCI_RETURN_LOBS
  • Example#1848 - oci_fetch_array with case sensitive column names
  • Example#1849 - oci_fetch_array with columns having duplicate names
  • Example#1850 - oci_fetch_array with DATE columns
  • Example#1851 - oci_fetch_array with REF CURSOR
  • Example#1852 - Pagination with oci_fetch_array using a LIMIT-like query
  • Example#1853 - oci_fetch_array with Oracle Database Implicit Result Sets
  • Example#1854 - oci_fetch_assoc Example
  • Example#1855 - oci_fetch_object example
  • Example#1856 - oci_fetch_object with case sensitive column names
  • Example#1857 - oci_fetch_object with LOBs
  • Example#1858 - oci_fetch_row Example
  • Example#1859 - oci_field_name 示例
  • Example#1860 - oci_field_name 示例
  • Example#1861 - oci_field_precision 示例
  • Example#1862 - oci_field_scale 示例
  • Example#1863 - oci_field_size 示例
  • Example#1864 - oci_field_type 示例
  • Example#1865 - oci_field_type_raw 示例
  • Example#1866 - Fetching Implicit Result Sets in a loop
  • Example#1867 - Getting child statement handles individually
  • Example#1868 - Explicitly setting the Prefetch Count
  • Example#1869 - Implicit Result Set example without using oci_get_implicit_resultset
  • Example#1870 - oci_new_connect 示例
  • Example#1871 - 在调用 Oracle 存储过程中绑定 REF CURSOR
  • Example#1872 - oci_new_descriptor 示例
  • Example#1873 - oci_new_descriptor 示例
  • Example#1874 - oci_num_fields 示例
  • Example#1875 - oci_num_rows 示例
  • Example#1876 - oci_parse 的 SQL 语句示例
  • Example#1877 - oci_parse 的 PL/SQL 语句示例
  • Example#1878 - oci_password_change 示例，更改已连接用户的密码
  • Example#1879 - oci_password_change 示例之一步更改密码并连接
  • Example#1880 - 基础 oci_pconnect 示例，使用 Easy Connect 语法
  • Example#1881 - oci_fetch 和 oci_result
  • Example#1882 - oci_rollback 示例
  • Example#1883 - 回滚到 SAVEPOINT 示例
  • Example#1884 - oci_server_version 示例
  • Example#1885 - Setting the action
  • Example#1886 - Setting the timeout
  • Example#1887 - Setting the client identifier to the application user
  • Example#1888 - Setting the client information
  • Example#1889 - Setting the DBOP
  • Example#1890 - Two scripts can use different versions of myfunc() at the same time
  • Example#1891 - Setting the module name
  • Example#1892 - 更改查询的默认预读取值
  • Example#1893 - 更改 REF CURSOR 获取的默认预获取值
  • Example#1894 - 将 REF CURSOR 传回 Oracle 时设置读取值
  • Example#1895 - Changing the LOB prefetch value for a query
  • Example#1896 - oci_statement_type 示例
  • Example#1897 - PostgreSQL extension overview example
  • Example#1898 - PostgreSQL user defined functions example
  • Example#1899 - pg_affected_rows 示例
  • Example#1900 - pg_cancel_query 示例
  • Example#1901 - pg_client_encoding 示例
  • Example#1902 - pg_close 示例
  • Example#1903 - 使用 pg_connect
  • Example#1904 - pg_connection_busy 示例
  • Example#1905 - pg_connection_reset 示例
  • Example#1906 - pg_connection_status 示例
  • Example#1907 - pg_convert 示例
  • Example#1908 - pg_copy_from 示例
  • Example#1909 - pg_copy_to 示例
  • Example#1910 - pg_dbname 示例
  • Example#1911 - pg_delete 示例
  • Example#1912 - pg_end_copy 示例
  • Example#1913 - pg_escape_bytea 示例
  • Example#1914 - pg_escape_identifier example
  • Example#1915 - pg_escape_literal example
  • Example#1916 - pg_escape_string 示例
  • Example#1917 - Using pg_execute
  • Example#1918 - PostgreSQL 获取全部
  • Example#1919 - pg_fetch_all_columns example
  • Example#1920 - pg_fetch_array 示例
  • Example#1921 - pg_fetch_assoc 示例
  • Example#1922 - pg_fetch_object 示例
  • Example#1923 - pg_fetch_result 示例
  • Example#1924 - pg_fetch_row 示例
  • Example#1925 - pg_field_is_null 示例
  • Example#1926 - 获取字段信息
  • Example#1927 - 获取字段信息
  • Example#1928 - 获取字段的信息
  • Example#1929 - 获取字段信息
  • Example#1930 - Getting table information about a field
  • Example#1931 - 获取字段信息
  • Example#1932 - Getting information about fields
  • Example#1933 - pg_free_result 示例
  • Example#1934 - PostgreSQL NOTIFY 消息
  • Example#1935 - PostgreSQL 后端 PID
  • Example#1936 - pg_get_result 示例
  • Example#1937 - pg_host 示例
  • Example#1938 - pg_insert 示例
  • Example#1939 - pg_last_error 示例
  • Example#1940 - pg_last_notice 示例
  • Example#1941 - pg_last_oid 示例
  • Example#1942 - pg_lo_close 示例
  • Example#1943 - pg_lo_create 示例
  • Example#1944 - pg_lo_export 示例
  • Example#1945 - pg_lo_import 示例
  • Example#1946 - pg_lo_open 示例
  • Example#1947 - pg_lo_read 示例
  • Example#1948 - pg_lo_read_all 示例
  • Example#1949 - pg_lo_seek 示例
  • Example#1950 - pg_lo_tell 示例
  • Example#1951 - pg_lo_truncate example
  • Example#1952 - pg_lo_unlink 示例
  • Example#1953 - pg_lo_write 示例
  • Example#1954 - 取得表的元数据
  • Example#1955 - pg_num_fields 示例
  • Example#1956 - pg_num_rows 示例
  • Example#1957 - pg_options 示例
  • Example#1958 - pg_parameter_status example
  • Example#1959 - 使用 pg_pconnect
  • Example#1960 - pg_ping 示例
  • Example#1961 - pg_port 示例
  • Example#1962 - Using pg_prepare
  • Example#1963 - pg_put_line 示例
  • Example#1964 - pg_query 示例
  • Example#1965 - 使用多条语句的 pg_query
  • Example#1966 - Using pg_query_params
  • Example#1967 - pg_result_error 示例
  • Example#1968 - pg_result_error_field example
  • Example#1969 - pg_result_seek 示例
  • Example#1970 - pg_result_status 示例
  • Example#1971 - pg_select 示例
  • Example#1972 - Using pg_send_execute
  • Example#1973 - Using pg_send_prepare
  • Example#1974 - pg_send_query 示例
  • Example#1975 - Using pg_send_query_params
  • Example#1976 - pg_set_client_encoding 示例
  • Example#1977 - pg_set_error_context_visibility example
  • Example#1978 - pg_set_error_verbosity example
  • Example#1979 - pg_trace 示例
  • Example#1980 - pg_transaction_status example
  • Example#1981 - pg_tty 示例
  • Example#1982 - pg_unescape_bytea 示例
  • Example#1983 - pg_untrace 示例
  • Example#1984 - pg_update 示例
  • Example#1985 - pg_version example
  • Example#1986 - Backup an existing database
  • Example#1987 - SQLite3::changes example
  • Example#1988 - SQLite3::close example
  • Example#1989 - SQLite3::__construct 示例
  • Example#1990 - max_length aggregation function example
  • Example#1991 - SQLite3::createCollation example
  • Example#1992 - SQLite3::createFunction example
  • Example#1993 - SQLite3::enableExceptions example
  • Example#1994 - SQLite3::exec example
  • Example#1995 - SQLite3::loadExtension example
  • Example#1996 - SQLite3::open example
  • Example#1997 - SQLite3::openBlob example
  • Example#1998 - Incrementally writing a BLOB
  • Example#1999 - SQLite3::prepare example
  • Example#2000 - SQLite3::query example
  • Example#2001 - SQLite3::querySingle example
  • Example#2002 - SQLite3::setAuthorizer example
  • Example#2003 - SQLite3::version example
  • Example#2004 - SQLite3Stmt::bindParam Usage
  • Example#2005 - SQLite3Stmt::bindValue example
  • Example#2006 - Inspecting the expanded SQL
  • Example#2007 - sqlsrv_begin_transaction example
  • Example#2008 - sqlsrv_cancel example
  • Example#2009 - sqlsrv_client_info example
  • Example#2010 - sqlsrv_close example
  • Example#2011 - sqlsrv_commit example
  • Example#2012 - Connect using Windows Authentication.
  • Example#2013 - Connect by specifying a user name and password.
  • Example#2014 - Connect on a specified port.
  • Example#2015 - functionname example
  • Example#2016 - sqlsrv_execute example
  • Example#2017 - sqlsrv_fetch example
  • Example#2018 - Retrieving an associative array.
  • Example#2019 - Retrieving a numeric array.
  • Example#2020 - sqlsrv_fetch_object example
  • Example#2021 - sqlsrv_field_metadata example
  • Example#2022 - sqlsrv_free_stmt example
  • Example#2023 - sqlsrv_get_field example
  • Example#2024 - sqlsrv_has_rows example
  • Example#2025 - sqlsrv_next_result example
  • Example#2026 - sqlsrv_num_fields example
  • Example#2027 - sqlsrv_num_rows example
  • Example#2028 - sqlsrv_prepare example
  • Example#2029 - sqlsrv_query example
  • Example#2030 - sqlsrv_rollback example
  • Example#2031 - sqlsrv_rows_affected example
  • Example#2032 - sqlsrv_send_stream_data example
  • Example#2033 - sqlsrv_server_info example
  • Example#2034 - cal_days_in_month 示例
  • Example#2035 - cal_from_jd 示例
  • Example#2036 - cal_info 示例
  • Example#2037 - easter_date 示例
  • Example#2038 - 使用带 DateTime 的 easter_date
  • Example#2039 - easter_days 示例
  • Example#2040 - 历法函数
  • Example#2041 - 溢出行为
  • Example#2042 - jdtojewish 示例
  • Example#2043 - DateTimeImmutable::add/sub 添加包含经过时间的间隔
  • Example#2044 - DateTimeImmutable::modify 和 strtotime 递增/减单个组件值
  • Example#2045 - 新增/减去时间可能会溢出/下溢日期
  • Example#2046 - Creating a mutable date time object
  • Example#2047 - Creating a mutable date time object
  • Example#2048 - DateTime::modify 示例
  • Example#2049 - 增加或者减少月份的时候需要当心
  • Example#2050 - 支持所有日期和时间格式
  • Example#2051 - DateTime::setTimeZone 示例
  • Example#2052 - DateTimeImmutable::add example
  • Example#2053 - Further DateTimeImmutable::add examples
  • Example#2054 - Beware when adding months
  • Example#2055 - DateTimeImmutable::__construct example
  • Example#2056 - Intricacies of DateTimeImmutable::__construct
  • Example#2057 - Changing the associated timezone
  • Example#2058 - Using a relative date/time string
  • Example#2059 - DateTimeImmutable::createFromFormat example
  • Example#2060 - Using predefined format constants with DateTimeImmutable::createFromFormat
  • Example#2061 - Intricacies of DateTimeImmutable::createFromFormat
  • Example#2062 - Format string with literal characters
  • Example#2063 - Overflow behaviour
  • Example#2064 - Overflowing day name behaviour
  • Example#2065 - Detecting overflown dates
  • Example#2066 - Greedy parsing behaviour
  • Example#2067 - Creating an immutable date time object
  • Example#2068 - Creating an immutable date time object
  • Example#2069 - DateTimeImmutable::getLastErrors example
  • Example#2070 - DateTimeImmutable::modify example
  • Example#2071 - Beware when adding or subtracting months
  • Example#2072 - DateTimeImmutable::setDate example
  • Example#2073 - Values exceeding ranges are added to their parent values
  • Example#2074 - DateTimeImmutable::setISODate example
  • Example#2075 - Values exceeding ranges are added to their parent values
  • Example#2076 - Finding the month a week is in
  • Example#2077 - DateTimeImmutable::setTime example
  • Example#2078 - Values exceeding ranges are added to their parent values
  • Example#2079 - DateTimeImmutable::setTimestamp example
  • Example#2080 - DateTimeImmutable::setTimeZone example
  • Example#2081 - DateTimeImmutable::sub example
  • Example#2082 - Further DateTimeImmutable::sub examples
  • Example#2083 - Beware when subtracting months
  • Example#2084 - DateTimeImmutable::diff 示例
  • Example#2085 - DST 转换期间的 DateTimeInterface::diff
  • Example#2086 - DateTimeInterface::diff range
  • Example#2087 - DateTime 对象比较
  • Example#2088 - DateTimeInterface::format 示例
  • Example#2089 - 更多示例
  • Example#2090 - 格式化时转义字符
  • Example#2091 - DateTime::getOffset 示例
  • Example#2092 - DateTime::getTimestamp 示例
  • Example#2093 - 以毫秒和微秒精度检索时间戳
  • Example#2094 - DateTime::getTimezone 示例
  • Example#2095 - 创建 DateTimeZone 并附加到 DateTimeImmutable
  • Example#2096 - 实例化 DateTimeZone 时捕捉错误
  • Example#2097 - DateTimeZone::getLocation 函数的范例：
  • Example#2098 - DateTimeZone::getOffset 例子
  • Example#2099 - A timezone_transitions_get example
  • Example#2100 - A timezone_transitions_get example with timestampBegin set
  • Example#2101 - timezone_abbreviations_list 函数的范例：
  • Example#2102 - timezone_identifiers_list 范例
  • Example#2103 - 列出指定区域的标识符
  • Example#2104 - 列出多个区域的标识符
  • Example#2105 - 列出单个国家的标识符
  • Example#2106 - Constructing and using DateInterval objects
  • Example#2107 - DateInterval example
  • Example#2108 - Parsing valid date intervals
  • Example#2109 - Parsing combinations and negative intervals
  • Example#2110 - Parsing special relative date intervals
  • Example#2111 - DateInterval example
  • Example#2112 - DateInterval and carry over points
  • Example#2113 - DateInterval and DateTime::diff with the %a and %d modifiers
  • Example#2114 - DatePeriod example
  • Example#2115 - DatePeriod example with DatePeriod::EXCLUDE_START_DATE
  • Example#2116 - DatePeriod example showing all last Thursdays in a year
  • Example#2117 - DatePeriod::createFromISO8601String example
  • Example#2118 - DatePeriod::getDateInterval example
  • Example#2119 - DatePeriod::getEndDate example
  • Example#2120 - DatePeriod::getEndDate without an end date
  • Example#2121 - Different values for DatePeriod::getRecurrences
  • Example#2122 - DatePeriod::getStartDate example
  • Example#2123 - checkdate 例子
  • Example#2124 - date 示例
  • Example#2125 - date 中的转义字符
  • Example#2126 - date 和 mktime 示例
  • Example#2127 - date 格式化
  • Example#2128 - 获取默认时区
  • Example#2129 - 获取时区缩写
  • Example#2130 - 获取默认时区
  • Example#2131 - 具有全面的 datetime 字符串的 date_parse 示例
  • Example#2132 - 带时区缩写信息的 date_parse
  • Example#2133 - 带时区标识符信息的 date_parse
  • Example#2134 - 带最小字符串的 date_parse
  • Example#2135 - 带相对格式的 date_parse
  • Example#2136 - date_parse with side-effects
  • Example#2137 - date_parse_from_format example
  • Example#2138 - date_parse_from_format with warnings example
  • Example#2139 - date_parse_from_format with errors example
  • Example#2140 - A date_sun_info example
  • Example#2141 - Polar night, with some processing
  • Example#2142 - Midnight sun (Tromsø, Norway)
  • Example#2143 - Calculating length of day (Kyiv)
  • Example#2144 - date_sunrise 例子
  • Example#2145 - No sunrise
  • Example#2146 - date_sunset 例子
  • Example#2147 - No sunrise
  • Example#2148 - getdate 例子
  • Example#2149 - gettimeofday 例子
  • Example#2150 - gmdate 示例
  • Example#2151 - gmmktime 基础示例
  • Example#2152 - gmstrftime 例子
  • Example#2153 - idate example
  • Example#2154 - localtime 例子
  • Example#2155 - 计时脚本执行时间
  • Example#2156 - microtime 和 REQUEST_TIME_FLOAT
  • Example#2157 - 基本例子
  • Example#2158 - mktime 例子
  • Example#2159 - 下个月的最后一天
  • Example#2160 - strftime 区域的例子
  • Example#2161 - ISO 8601:1988 week number example
  • Example#2162 - %e 修改器跨平台兼容的例子
  • Example#2163 - 显示所有已知和未知的格式
  • Example#2164 - strptime 例子
  • Example#2165 - strtotime 例子
  • Example#2166 - 失败检查
  • Example#2167 - time 例子
  • Example#2168 - A timezone_name_from_abbr example
  • Example#2169 - 获取 timezonedb 版本
  • Example#2170 - Measure several code blocks execution and get the total
  • Example#2171 - 关闭文件描述符
  • Example#2172 - 设置并清除锁
  • Example#2173 - 打开文件描述符
  • Example#2174 - 在文件中定位
  • Example#2175 - 在串口上设置波特率
  • Example#2176 - chdir 例子
  • Example#2177 - chroot example
  • Example#2178 - closedir 例子
  • Example#2179 - dir 示例
  • Example#2180 - getcwd 例子
  • Example#2181 - opendir 示例
  • Example#2182 - 列出目录中的所有文件
  • Example#2183 - 列出当前目录的所有文件并去掉 . 和 ..
  • Example#2184 - 简单的 scandir 示例
  • Example#2185 - finfo_buffer 示例
  • Example#2186 - finfo_file 示例
  • Example#2187 - 面向对象风格
  • Example#2188 - 过程化风格
  • Example#2189 - mime_content_type 示例
  • Example#2190 - basename 例子
  • Example#2191 - 改变文件所属的组
  • Example#2192 - 简单的 chown 用法
  • Example#2193 - clearstatcache 例子
  • Example#2194 - copy 例子
  • Example#2195 - dirname 例子
  • Example#2196 - disk_free_space 例子
  • Example#2197 - disk_total_space 例子
  • Example#2198 - 一个简单 fclose 例子
  • Example#2199 - fdatasync 示例
  • Example#2200 - 处理 feof 的超时
  • Example#2201 - 使用无效文件指针的 feof 例子
  • Example#2202 - File write example using fflush
  • Example#2203 - 一个 fgetc 例子
  • Example#2204 - 读取并显示 CSV 文件的整个内容
  • Example#2205 - 逐行读取文件
  • Example#2206 - 一行行读取一个 PHP 文件
  • Example#2207 - file 例子
  • Example#2208 - 测试一个文件是否存在
  • Example#2209 - 获取并输出网站首页 HTML 源码
  • Example#2210 - 在 include_path 里搜索
  • Example#2211 - 读取文件一小节
  • Example#2212 - 使用 stream 上下文（context）
  • Example#2213 - 简单用法示例
  • Example#2214 - Using flags
  • Example#2215 - fileatime 例子
  • Example#2216 - filectime 例子
  • Example#2217 - 查找文件所在的组
  • Example#2218 - 将某个文件和当前文件的 inode 进行对比
  • Example#2219 - filemtime 例子
  • Example#2220 - 找到文件的所有者
  • Example#2221 - 以八进制的形式显示文件的权限
  • Example#2222 - 输出全部权限
  • Example#2223 - filesize 例子
  • Example#2224 - filetype 例子
  • Example#2225 - flock 例子
  • Example#2226 - flock 使用 LOCK_NB 选项
  • Example#2227 - 用 shell 中的通配符模式匹配来检查颜色名称
  • Example#2228 - fopen 例子
  • Example#2229 - 对二进制文件使用 fpassthru
  • Example#2230 - fputcsv 例子
  • Example#2231 - 一个简单的 fread 例子
  • Example#2232 - Binary fread example
  • Example#2233 - Remote fread examples
  • Example#2234 - fscanf 例子
  • Example#2235 - users.txt 的内容
  • Example#2236 - fseek 例子
  • Example#2237 - fstat 例子
  • Example#2238 - fsync 示例
  • Example#2239 - ftell 例子
  • Example#2240 - 文件截取示例
  • Example#2241 - 简单的 fwrite 示例
  • Example#2242 - 怎样用 glob 方便地替代 opendir 和相关函数
  • Example#2243 - is_dir 例子
  • Example#2244 - is_executable 例子
  • Example#2245 - is_file 例子
  • Example#2246 - 创建并确认一个文件是否为符号连接
  • Example#2247 - is_readable 例子
  • Example#2248 - is_uploaded_file 例子
  • Example#2249 - is_writable 例子
  • Example#2250 - 更改符号链接的所有组
  • Example#2251 - Changing the owner of a symbolic link
  • Example#2252 - 创建简单的硬链接
  • Example#2253 - linkinfo 例子
  • Example#2254 - stat 和 lstat 的对照
  • Example#2255 - mkdir 例子
  • Example#2256 - 通过 recursive 参数使用 mkdir
  • Example#2257 - Uploading multiple files
  • Example#2258 - sample.ini 的内容
  • Example#2259 - parse_ini_file 例子
  • Example#2260 - parse_ini_file 格式化 php.ini 文件
  • Example#2261 - 内插值
  • Example#2262 - 转义字符
  • Example#2263 - pathinfo 例子
  • Example#2264 - pathinfo 对比空扩展名和无扩展名之间区别的示例
  • Example#2265 - pathinfo 形如 .file 的示例
  • Example#2266 - pathinfo 示例和解除数组引用
  • Example#2267 - pclose 例子
  • Example#2268 - popen 例子
  • Example#2269 - popen 例子
  • Example#2270 - 使用 readfile 强制下载
  • Example#2271 - readlink 示例
  • Example#2272 - realpath 例子
  • Example#2273 - Windows 上的 realpath
  • Example#2274 - realpath_cache_get 示例
  • Example#2275 - realpath_cache_size 示例
  • Example#2276 - rename 例子
  • Example#2277 - rewind overwriting example
  • Example#2278 - rmdir 例子
  • Example#2279 - stat 例子
  • Example#2280 - Using stat information together with touch
  • Example#2281 - 创建一个符号连接
  • Example#2282 - tempnam 例子
  • Example#2283 - tmpfile 例子
  • Example#2284 - touch 例子
  • Example#2285 - 使用 mtime 参数的 touch
  • Example#2286 - umask 例子
  • Example#2287 - 基本的 unlink 用法
  • Example#2288 - inotify 使用示例
  • Example#2289 - Checks if system administrator has signed the file
  • Example#2290 - Prints names of all extended attributes of file
  • Example#2291 - Removes all extended attributes of a file
  • Example#2292 - Sets extended attributes on .wav file
  • Example#2293 - xattr_supported example
  • Example#2294 - xdiff_file_bdiff example
  • Example#2295 - xdiff_file_bdiff_size example
  • Example#2296 - xdiff_file_bpatch example
  • Example#2297 - xdiff_file_diff example
  • Example#2298 - xdiff_file_diff_binary example
  • Example#2299 - xdiff_file_merge3 example
  • Example#2300 - xdiff_file_patch example
  • Example#2301 - Patch reversing example
  • Example#2302 - xdiff_file_patch_binary example
  • Example#2303 - xdiff_file_rabdiff example
  • Example#2304 - xdiff_string_bdiff_size example
  • Example#2305 - xdiff_string_diff example
  • Example#2306 - xdiff_string_patch example
  • Example#2307 - Enchant Usage Example
  • Example#2308 - List the backends provided by the given broker
  • Example#2309 - A enchant_broker_dict_exists example
  • Example#2310 - List all available dictionaries for one broker
  • Example#2311 - A enchant_broker_request_dict example
  • Example#2312 - Adding a word to a PWL
  • Example#2313 - A enchant_dict_describe example
  • Example#2314 - A enchant_dict_quick_check example
  • Example#2315 - A enchant_dict_suggest example
  • Example#2316 - Usage example.
  • Example#2317 - Using Gender\Gender::country
  • Example#2318 - bindtextdomain example
  • Example#2319 - gettext-check
  • Example#2320 - ngettext example
  • Example#2321 - iconv 示例
  • Example#2322 - iconv_get_encoding 示例
  • Example#2323 - iconv_mime_decode实例
  • Example#2324 - iconv_mime_decode_headers 示例
  • Example#2325 - iconv_mime_encode example
  • Example#2326 - iconv_set_encoding 示例
  • Example#2327 - ob_iconv_handler 例子：
  • Example#2328 - Example of using the procedural API
  • Example#2329 - Example of using the object-oriented API
  • Example#2330 - FRENCH_COLLATION rules
  • Example#2331 - ALTERNATE_HANDLING rules
  • Example#2332 - CASE_FIRST rules
  • Example#2333 - CASE_LEVEL rules
  • Example#2334 - collator_asort example
  • Example#2335 - collator_compare example
  • Example#2336 - Comparing strings without diacritics or case-sensitivity
  • Example#2337 - Collator::__construct example
  • Example#2338 - collator_create example
  • Example#2339 - collator_get_attribute example
  • Example#2340 - collator_get_error_code example
  • Example#2341 - collator_get_error_message example
  • Example#2342 - collator_get_locale example
  • Example#2343 - collator_get_sort_keyexample
  • Example#2344 - collator_get_strength example
  • Example#2345 - collator_set_attribute example
  • Example#2346 - collator_set_strength example
  • Example#2347 - collator_sort example
  • Example#2348 - collator_sort_with_sort_keys example
  • Example#2349 - numfmt_create example
  • Example#2350 - NumberFormatter::create example
  • Example#2351 - numfmt_format example
  • Example#2352 - OO example
  • Example#2353 - numfmt_format_currency example
  • Example#2354 - OO example
  • Example#2355 - numfmt_get_attribute example
  • Example#2356 - OO example
  • Example#2357 - numfmt_get_error_code example
  • Example#2358 - OO example
  • Example#2359 - numfmt_get_error_message example
  • Example#2360 - OO example
  • Example#2361 - numfmt_get_locale example
  • Example#2362 - numfmt_get_pattern example
  • Example#2363 - OO example
  • Example#2364 - numfmt_get_symbol example
  • Example#2365 - OO example
  • Example#2366 - numfmt_get_text_attribute example
  • Example#2367 - OO example
  • Example#2368 - numfmt_parse example
  • Example#2369 - OO example
  • Example#2370 - numfmt_parse_currency example
  • Example#2371 - OO example
  • Example#2372 - numfmt_set_attribute example
  • Example#2373 - OO example
  • Example#2374 - numfmt_set_pattern example
  • Example#2375 - OO example
  • Example#2376 - numfmt_set_symbol example
  • Example#2377 - OO example
  • Example#2378 - numfmt_set_text_attribute example
  • Example#2379 - OO example
  • Example#2380 - locale_accept_from_http example
  • Example#2381 - OO example
  • Example#2382 - locale_compose example
  • Example#2383 - OO example
  • Example#2384 - Subtag limits
  • Example#2385 - locale_filter_matches example
  • Example#2386 - OO example
  • Example#2387 - locale_get_all_variants example
  • Example#2388 - OO example
  • Example#2389 - locale_get_default example
  • Example#2390 - OO example
  • Example#2391 - locale_get_display_language example
  • Example#2392 - OO example
  • Example#2393 - locale_get_display_name example
  • Example#2394 - OO example
  • Example#2395 - locale_get_display_region example
  • Example#2396 - OO example
  • Example#2397 - locale_get_display_script example
  • Example#2398 - OO example
  • Example#2399 - locale_get_display_variant example
  • Example#2400 - OO example
  • Example#2401 - locale_get_keywords example
  • Example#2402 - OO example
  • Example#2403 - locale_get_primary_language example
  • Example#2404 - OO example
  • Example#2405 - locale_get_region example
  • Example#2406 - OO example
  • Example#2407 - locale_get_script example
  • Example#2408 - OO example
  • Example#2409 - locale_lookup example
  • Example#2410 - OO example
  • Example#2411 - locale_parse example
  • Example#2412 - OO example
  • Example#2413 - locale_set_default example
  • Example#2414 - OO example
  • Example#2415 - Normalizer::getRawDecomposition example
  • Example#2416 - normalizer_is_normalized example
  • Example#2417 - OO example
  • Example#2418 - normalizer_normalize example
  • Example#2419 - OO example
  • Example#2420 - msgfmt_create example
  • Example#2421 - OO example
  • Example#2422 - msgfmt_format example
  • Example#2423 - OO example
  • Example#2424 - msgfmt_format_message example
  • Example#2425 - OO example
  • Example#2426 - Instructing ICU to format currency with common and with narrow currency symbol
  • Example#2427 - msgfmt_get_error_message example
  • Example#2428 - OO example
  • Example#2429 - msgfmt_get_locale example
  • Example#2430 - OO example
  • Example#2431 - msgfmt_get_pattern example
  • Example#2432 - OO example
  • Example#2433 - msgfmt_parse example
  • Example#2434 - OO example
  • Example#2435 - msgfmt_parse_message example
  • Example#2436 - OO example
  • Example#2437 - msgfmt_set_pattern example
  • Example#2438 - OO example
  • Example#2439 - IntlCalendar::add
  • Example#2440 - IntlCalendar::after
  • Example#2441 - IntlCalendar::clear examples
  • Example#2442 - IntlCalendar::createInstance
  • Example#2443 - IntlCalendar::equals
  • Example#2444 - IntlCalendar::fieldDifference
  • Example#2445 - IntlCalendar::fromDateTime
  • Example#2446 - IntlCalendar::get
  • Example#2447 - IntlCalendar::getActualMaximum
  • Example#2448 - IntlCalendar::getAvailableLocales
  • Example#2449 - IntlCalendar::getDayOfWeekType
  • Example#2450 - IntlCalendar::getErrorCode and IntlCalendar::getErrorMessage
  • Example#2451 - IntlCalendar::getErrorMessage
  • Example#2452 - IntlCalendar::getFirstDayOfWeek
  • Example#2453 - IntlCalendar::getKeyworkValuesForLocale
  • Example#2454 - Maxima examples
  • Example#2455 - IntlCalendar::getLocale
  • Example#2456 - IntlCalendar::getMinimalDaysInFirstWeek
  • Example#2457 - IntlCalendar::getNow
  • Example#2458 - IntlCalendar::getRepeatedWallTimeOption
  • Example#2459 - IntlCalendar::getSkippedWallTimeOption
  • Example#2460 - IntlCalendar::getTime
  • Example#2461 - IntlCalendar::getTimeZone
  • Example#2462 - IntlCalendar::getType
  • Example#2463 - IntlCalendar::inDaylightTime
  • Example#2464 - IntlCalendar::isEquivalentTo
  • Example#2465 - IntlCalendar::isLenient
  • Example#2466 - IntlCalendar::isWeekend
  • Example#2467 - IntlCalendar::roll
  • Example#2468 - IntlCalendar::set
  • Example#2469 - IntlCalendar::setDate example
  • Example#2470 - IntlCalendar::setDateTime example
  • Example#2471 - IntlCalendar::setFirstDayOfWeek
  • Example#2472 - IntlCalendar::setTime
  • Example#2473 - IntlCalendar::setTimeZone
  • Example#2474 - IntlCalendar::toDateTime
  • Example#2475 - IntlGregorianCalendar::createFromDate example
  • Example#2476 - IntlGregorianCalendar::createFromDateTime example
  • Example#2477 - datefmt_create example
  • Example#2478 - OO example
  • Example#2479 - Example of invalid locale handling
  • Example#2480 - datefmt_format example
  • Example#2481 - OO example
  • Example#2482 - With IntlCalendar object
  • Example#2483 - IntlDateFormatter::formatObject examples
  • Example#2484 - datefmt_get_calendar example
  • Example#2485 - OO example
  • Example#2486 - Example of invalid locale handling
  • Example#2487 - datefmt_get_datetype example
  • Example#2488 - OO example
  • Example#2489 - datefmt_get_error_code example
  • Example#2490 - OO example
  • Example#2491 - datefmt_get_error_message example
  • Example#2492 - OO example
  • Example#2493 - datefmt_get_locale example
  • Example#2494 - OO example
  • Example#2495 - datefmt_get_pattern example
  • Example#2496 - OO example
  • Example#2497 - datefmt_get_timetype example
  • Example#2498 - OO example
  • Example#2499 - datefmt_get_timezone_id example
  • Example#2500 - OO example
  • Example#2501 - IntlDateFormatter::getCalendarObject example
  • Example#2502 - IntlDateFormatter::getTimeZone examples
  • Example#2503 - datefmt_is_lenient example
  • Example#2504 - OO example
  • Example#2505 - datefmt_localtime example
  • Example#2506 - OO example
  • Example#2507 - OO example
  • Example#2508 - datefmt_parse example
  • Example#2509 - datefmt_set_calendar example
  • Example#2510 - OO example
  • Example#2511 - Example with IntlCalendar argument
  • Example#2512 - datefmt_set_lenient example
  • Example#2513 - OO example
  • Example#2514 - datefmt_set_pattern example
  • Example#2515 - OO example
  • Example#2516 - IntlDateFormatter::setTimeZone examples
  • Example#2517 - resourcebundle_count example
  • Example#2518 - OO example
  • Example#2519 - resourcebundle_create example
  • Example#2520 - ResourceBundle::create example
  • Example#2521 - resourcebundle_get example
  • Example#2522 - OO example
  • Example#2523 - resourcebundle_get_error_code example
  • Example#2524 - OO example
  • Example#2525 - resourcebundle_get_error_message example
  • Example#2526 - OO example
  • Example#2527 - resourcebundle_locales example
  • Example#2528 - OO example
  • Example#2529 - Spoofchecker::areConfusable example
  • Example#2530 - Spoofchecker::isSuspicious example
  • Example#2531 - Retrieving the registered transliterator IDs
  • Example#2532 - Converting escaped UTF-16 code units
  • Example#2533 - IntlDatePatternGenerator::getBestPattern example
  • Example#2534 - Converting from UTF-8 to UTF-16 and back
  • Example#2535 - Invalid characters in input
  • Example#2536 - Characters which cannot be encoded
  • Example#2537 - grapheme_extract example
  • Example#2538 - grapheme_stripos example
  • Example#2539 - grapheme_stristr example
  • Example#2540 - grapheme_strlen example
  • Example#2541 - grapheme_strpos example
  • Example#2542 - grapheme_strripos example
  • Example#2543 - grapheme_strrpos example
  • Example#2544 - grapheme_strstr example
  • Example#2545 - grapheme_substr example
  • Example#2546 - idn_to_ascii 示例
  • Example#2547 - idn_to_utf8 示例
  • Example#2548 - Testing different code points
  • Example#2549 - Testing different code points
  • Example#2550 - Testing different code points
  • Example#2551 - Testing different code points
  • Example#2552 - Testing different code points
  • Example#2553 - Testing different code points
  • Example#2554 - Testing different code points
  • Example#2555 - Testing different code points
  • Example#2556 - Testing different code points
  • Example#2557 - Enumerating over a sample range of code points
  • Example#2558 - Enumerating over a sample range of code points
  • Example#2559 - Testing different code points
  • Example#2560 - Testing different code points
  • Example#2561 - Testing different code points
  • Example#2562 - Testing different code points
  • Example#2563 - Testing different code points
  • Example#2564 - Testing different properties
  • Example#2565 - Testing different properties
  • Example#2566 - Testing different properties
  • Example#2567 - Testing different code points
  • Example#2568 - Testing different properties
  • Example#2569 - Testing different properties
  • Example#2570 - Testing different properties
  • Example#2571 - Testing different properties
  • Example#2572 - Testing different properties
  • Example#2573 - Testing different properties
  • Example#2574 - Testing different code points
  • Example#2575 - Testing different code points
  • Example#2576 - Testing different code points
  • Example#2577 - Testing different code points
  • Example#2578 - Testing different code points
  • Example#2579 - Testing different code points
  • Example#2580 - Testing different code points
  • Example#2581 - Testing different code points
  • Example#2582 - Testing different code points
  • Example#2583 - Testing different code points
  • Example#2584 - Testing different code points
  • Example#2585 - Testing different code points
  • Example#2586 - Testing different code points
  • Example#2587 - Testing different code points
  • Example#2588 - Testing different code points
  • Example#2589 - Testing different code points
  • Example#2590 - Testing different code points
  • Example#2591 - Testing different code points
  • Example#2592 - Testing different code points
  • Example#2593 - Testing different code points
  • Example#2594 - Testing different code points
  • Example#2595 - Testing different code points
  • Example#2596 - Testing different code points
  • Example#2597 - Testing different code points
  • Example#2598 - Testing different code points
  • Example#2599 - Testing different code points
  • Example#2600 - Testing different code points
  • Example#2601 - Testing different code points
  • Example#2602 - Testing different code points
  • Example#2603 - Testing different code points
  • Example#2604 - Testing different code points
  • Example#2605 - Testing different code points
  • Example#2606 - intl_error_name example
  • Example#2607 - intl_get_error_code example
  • Example#2608 - intl_get_error_message example
  • Example#2609 - intl_is_failure example
  • Example#2610 - php.ini 设置例子
  • Example#2611 - php.ini 里 EUC-JP 用户的设置
  • Example#2612 - php.ini 里 SJIS 用户的设置
  • Example#2613 - 在 php.ini 中禁用 HTTP 输入转换
  • Example#2614 - php.ini 设置例子
  • Example#2615 - 脚本例子
  • Example#2616 - Testing different code points
  • Example#2617 - mb_convert_case 示例
  • Example#2618 - 非拉丁 UTF-8 文本的 mb_convert_case 示例
  • Example#2619 - mb_convert_encoding 示例
  • Example#2620 - mb_convert_kana example
  • Example#2621 - mb_convert_variables 示例
  • Example#2622 - map 示例
  • Example#2623 - map 示例，转义 JavaScript 字符串
  • Example#2624 - mb_detect_encoding 示例
  • Example#2625 - strict 参数的影响
  • Example#2626 - 匹配多个编码时顺序的影响
  • Example#2627 - mb_detect_order 示例
  • Example#2628 - 案例展示了无效的检测顺序
  • Example#2629 - mb_encode_mimeheader 例子
  • Example#2630 - map example
  • Example#2631 - mb_encode_numericentity example
  • Example#2632 - mb_encoding_aliases example
  • Example#2633 - mb_ereg_replace_callback example
  • Example#2634 - mb_ereg_replace_callback using anonymous function
  • Example#2635 - mb_internal_encoding 示例
  • Example#2636 - mb_list_encodings 例子
  • Example#2637 - 一个基础的 mb_ord 示例
  • Example#2638 - mb_output_handler 示例
  • Example#2639 - mb_preferred_mime_name 示例
  • Example#2640 - mb_str_pad example
  • Example#2641 - mb_strimwidth 示例
  • Example#2642 - mb_strtolower 示例
  • Example#2643 - 非拉丁 UTF-8 文本的 mb_strtolower 例子
  • Example#2644 - mb_strtoupper 示例
  • Example#2645 - 非拉丁 UTF-8 文本的 mb_strtoupper 示例
  • Example#2646 - mb_strwidth 示例
  • Example#2647 - mb_substitute_character 示例
  • Example#2648 - mb_substr_count 示例
  • Example#2649 - pspell_add_to_personal
  • Example#2650 - pspell_check Example
  • Example#2651 - pspell_add_to_personal Example
  • Example#2652 - pspell_config_create
  • Example#2653 - pspell_config_ignore
  • Example#2654 - pspell_config_mode Example
  • Example#2655 - pspell_config_personal
  • Example#2656 - pspell_config_repl
  • Example#2657 - pspell_config_runtogether
  • Example#2658 - pspell_new
  • Example#2659 - pspell_new_config
  • Example#2660 - pspell_new_personal
  • Example#2661 - pspell_add_to_personal
  • Example#2662 - pspell_store_replacement
  • Example#2663 - pspell_suggest example
  • Example#2664 - Basic recode_file example
  • Example#2665 - Basic recode_string example
  • Example#2666 - exif_imagetype 示例
  • Example#2667 - exif_read_data 例子
  • Example#2668 - exif_read_data with streams available as of PHP 7.2.0
  • Example#2669 - exif_tagname 函数示例
  • Example#2670 - exif_thumbnail 示例
  • Example#2671 - 使用 PHP 创建 PNG 图像
  • Example#2672 - 使用 Alpha 通道为图像加水印
  • Example#2673 - 使用 imagecopymerge 函数创建半透明水印
  • Example#2674 - 使用 gd_info
  • Example#2675 - getimagesize 和 MIME 类型
  • Example#2676 - getimagesize 示例
  • Example#2677 - getimagesize (URL)
  • Example#2678 - getimagesize() 返回 IPTC
  • Example#2679 - getimagesizefromstring 示例
  • Example#2680 - image_type_to_extension 示例
  • Example#2681 - image_type_to_mime_type 示例
  • Example#2682 - image2wbmp 示例
  • Example#2683 - imageaffinematrixconcat example
  • Example#2684 - imageaffinematrixget example
  • Example#2685 - imagealphablending 用法示例
  • Example#2686 - 比较两条线，一条开启了抗锯齿
  • Example#2687 - 使用 imagearc 画圆
  • Example#2688 - Saving a BMP file
  • Example#2689 - imagechar 示例
  • Example#2690 - imagecharup 示例
  • Example#2691 - imagecolorallocate 示例
  • Example#2692 - 使用 imagecolorallocatealpha 的示例
  • Example#2693 - Convert typical alpha values for use with imagecolorallocatealpha
  • Example#2694 - 访问不同的 RGB 值
  • Example#2695 - 使用 imagecolorsforindex 获取可读的 RGB 值
  • Example#2696 - 在图像中搜索一组颜色
  • Example#2697 - 在图像中搜索一组颜色
  • Example#2698 - 使用 imagecolorclosesthwb 示例
  • Example#2699 - 使用 imagecolordeallocate
  • Example#2700 - 从 GD logo 中获取颜色
  • Example#2701 - 从 GD logo 中获取颜色
  • Example#2702 - imagecolormatch 示例
  • Example#2703 - 使用 imagecoloresolve 从图像中获取颜色
  • Example#2704 - 使用 imagecoloresolvealpha 从图像中获取颜色
  • Example#2705 - imagecolorset 示例
  • Example#2706 - imagecolorsforindex 示例
  • Example#2707 - 使用 imagecolorstotal 获取图像中的颜色总数
  • Example#2708 - imagecolortransparent 示例
  • Example#2709 - Embossing the PHP.net logo
  • Example#2710 - Gaussian blur
  • Example#2711 - 裁剪 PHP.net logo
  • Example#2712 - 使用 75% 透明度合并 PHP.net logo 的两个副本
  • Example#2713 - imagecopymergegray 用法
  • Example#2714 - 简单的示例
  • Example#2715 - 按比例对图像重新采样
  • Example#2716 - 缩放图像
  • Example#2717 - 创建新的 GD 图像流并输出图像。
  • Example#2718 - Convert an BMP image to a PNG image using imagecreatefrombmp
  • Example#2719 - imagecreatefromgd 示例
  • Example#2720 - imagecreatefromgd2 示例
  • Example#2721 - imagecreatefromgd2part 示例
  • Example#2722 - 在加载 GIF 期间处理错误的示例
  • Example#2723 - 在加载 JPEG 期间处理错误的示例
  • Example#2724 - 在加载 PNG 期间处理错误的示例
  • Example#2725 - imagecreatefromstring 示例
  • Example#2726 - 在加载 WBMP 期间处理错误的示例
  • Example#2727 - 使用 imagecreatefromwebp 转换 WebP 图像为 jpeg 图像
  • Example#2728 - 使用 imagecreatefromxbm 转换 XBM 图像为 png 图像
  • Example#2729 - 使用 imagecreatefromxpm 创建图像实例
  • Example#2730 - 新建 GD 图像流并输出图像。
  • Example#2731 - imagecrop example
  • Example#2732 - Proper handling of auto-cropping
  • Example#2733 - imagedashedline 示例
  • Example#2734 - 替代 imagedashedline
  • Example#2735 - PHP 8.0.0 前使用 imagedestroy
  • Example#2736 - imageellipse 示例
  • Example#2737 - imagefill 示例
  • Example#2738 - 创建 3D 外观的饼图
  • Example#2739 - imagefilledellipse 示例
  • Example#2740 - imagefilledpolygon 示例
  • Example#2741 - imagefilledrectangle 用法
  • Example#2742 - 用颜色填充椭圆
  • Example#2743 - imagefilter 灰度示例
  • Example#2744 - imagefilter 亮度示例
  • Example#2745 - imagefilter 着色示例
  • Example#2746 - imagefilter 反例
  • Example#2747 - imagefilter 像素化示例
  • Example#2748 - imagefilter 散射示例
  • Example#2749 - Flips an image vertically
  • Example#2750 - Flips the image horizontally
  • Example#2751 - 在内置字体上使用 imagefontheight
  • Example#2752 - 将 imagefontheight 与 imageloadfont 一起使用
  • Example#2753 - 在内置字体上使用 imagefontwidth
  • Example#2754 - 将 imagefontwidth 与 imageloadfont 一起使用
  • Example#2755 - imageftbbox 示例
  • Example#2756 - imagefttext 示例
  • Example#2757 - imagegammacorrect 用法
  • Example#2758 - 输出 GD 图像
  • Example#2759 - 保存 GD 图像
  • Example#2760 - 输出 GD2 图像
  • Example#2761 - 保存 GD2 图像
  • Example#2762 - imagegetclip example
  • Example#2763 - 使用 imagegif 输出图像
  • Example#2764 - 使用 imagegif 将 PNG 图像转换成 GIF
  • Example#2765 - imagegrabscreen example
  • Example#2766 - imagegrabwindow example
  • Example#2767 - 使用 imageinterlace 打开隔行扫描
  • Example#2768 - 使用 imageistruecolor 简单检测真彩色实例
  • Example#2769 - 输出 JPEG 图像到浏览器
  • Example#2770 - 保存 JPEG 图像到文件
  • Example#2771 - 以 75% 的图像质量输出图像到浏览器
  • Example#2772 - imagelayereffect 示例
  • Example#2773 - 绘制粗线
  • Example#2774 - imageloadfont 用法示例
  • Example#2775 - imageopenpolygon example
  • Example#2776 - imagepalettecopy 示例
  • Example#2777 - Converts any image object to true color
  • Example#2778 - imagepolygon 示例
  • Example#2779 - imagerectangle 的简单示例
  • Example#2780 - Setting and getting the resolution of an image
  • Example#2781 - 图像旋转 180 度
  • Example#2782 - 基础 imagesavealpha 用法
  • Example#2783 - imagesetbrush 示例
  • Example#2784 - imagesetinterpolation example
  • Example#2785 - imagesetpixel 示例
  • Example#2786 - imagesetstyle 例子
  • Example#2787 - imagesetthickness 示例
  • Example#2788 - imagesettile 示例
  • Example#2789 - imagestring 示例
  • Example#2790 - imagestringup 示例
  • Example#2791 - 使用 imagesx
  • Example#2792 - 使用 imagesy
  • Example#2793 - 将真彩色图像转换为基于调色板的图像
  • Example#2794 - imagettfbbox 示例
  • Example#2795 - imagettftext 示例
  • Example#2796 - 检测 PNG 支持
  • Example#2797 - 输出 WBMP 图像
  • Example#2798 - 保存 WBMP 图像
  • Example#2799 - 使用不同的前景色输出图像
  • Example#2800 - 保存为 WebP 图像文件
  • Example#2801 - 保存 XBM 文件
  • Example#2802 - 以不同前景色保存一个 XBM 文件
  • Example#2803 - 嵌入 IPTC 数据到 JPEG
  • Example#2804 - iptcparse() 与 getimagesize 一起使用
  • Example#2805 - jpeg2wbmp 示例
  • Example#2806 - png2wbmp 示例
  • Example#2807 - Gmagick Example
  • Example#2808 - Gmagick::despeckleimage example
  • Example#2809 - Gmagick::setCompressionQuality
  • Example#2810 - Creating a thumbnail in Imagick
  • Example#2811 - Make a thumbnail of all JPG files in a directory
  • Example#2812 - Creating a reflection of an image
  • Example#2813 - Filling text with gradient
  • Example#2814 - Read in GIF image and resize all frames
  • Example#2815 - Create a PHP logo
  • Example#2816 - Using Imagick::adaptiveBlurImage:
  • Example#2817 - Using Imagick::adaptiveResizeImage
  • Example#2818 - A Imagick::adaptiveSharpenImage example
  • Example#2819 - Imagick::adaptiveThresholdImage
  • Example#2820 - Imagick::addNoiseImage
  • Example#2821 - Imagick::affineTransformImage
  • Example#2822 - Using Imagick::annotateImage:
  • Example#2823 - Imagick::appendImages example
  • Example#2824 - Imagick::autoLevelImage
  • Example#2825 - Imagick::blackThresholdImage
  • Example#2826 - Imagick::blueShiftImage
  • Example#2827 - Using Imagick::blurImage:
  • Example#2828 - Imagick::borderImage
  • Example#2829 - Imagick::brightnessContrastImage
  • Example#2830 - Imagick::charcoalImage
  • Example#2831 - Using Imagick::chopImage:
  • Example#2832 - Imagick object cloning in different versions of imagick
  • Example#2833 - Using Imagick::clutImage:
  • Example#2834 - Imagick::colorizeImage
  • Example#2835 - Imagick::colorMatrixImage
  • Example#2836 - Using Imagick::commentImage:
  • Example#2837 - Using Imagick::compareImageLayers
  • Example#2838 - Using Imagick::compareImages:
  • Example#2839 - 使用 Imagick::compositeImage:
  • Example#2840 - Imagick::contrastImage
  • Example#2841 - Imagick::convolveImage
  • Example#2842 - Imagick::cropImage
  • Example#2843 - Imagick::deskewImage
  • Example#2844 - Imagick::despeckleImage
  • Example#2845 - Using Imagick::distortImage:
  • Example#2846 - Imagick::edgeImage
  • Example#2847 - Imagick::embossImage
  • Example#2848 - Imagick::enhanceImage
  • Example#2849 - Imagick::equalizeImage
  • Example#2850 - Using Imagick::evaluateImage
  • Example#2851 - Using Imagick::exportImagePixels
  • Example#2852 - Imagick::filter
  • Example#2853 - Imagick::flipImage
  • Example#2854 - Imagick::floodfillPaintImage example
  • Example#2855 - Imagick::flopImage
  • Example#2856 - Imagick::forwardFourierTransformImage
  • Example#2857 - Imagick::frameImage
  • Example#2858 - Create a sinusoidal gradient
  • Example#2859 - Create a gradient from the polynomial (4x^2 - 4x + 1)
  • Example#2860 - Create a complex gradient from the polynomial (4x^2 - 4x^2 + 1) modulated by a sinusoidal gradient
  • Example#2861 - Imagick::fxImage
  • Example#2862 - Imagick::gammaImage
  • Example#2863 - Imagick::gaussianBlurImage
  • Example#2864 - Using Imagick::getImageGeometry
  • Example#2865 - Generates Imagick::getImageHistogram
  • Example#2866 - Using Imagick::getImageLength:
  • Example#2867 - Using Imagick::getImageProperties:
  • Example#2868 - Using Imagick::getImageProperty:
  • Example#2869 - Using Imagick::getIteratorIndex:
  • Example#2870 - Imagick::getPixelIterator
  • Example#2871 - Imagick::getPixelRegionIterator example
  • Example#2872 - Getting the size of a raw RGB image set at 200x400, after scaling to 400x800 (compared to width / height)
  • Example#2873 - Imagick::haldClutImage
  • Example#2874 - Imagick::identifyFormat
  • Example#2875 - Example Result Format
  • Example#2876 - Imagick::implodeImage
  • Example#2877 - Imagick::importImagePixels example
  • Example#2878 - Imagick::levelImage
  • Example#2879 - Imagick::linearStretchImage
  • Example#2880 - Imagick::magnifyImage
  • Example#2881 - Imagick::medianFilterImage
  • Example#2882 - Imagick::mergeImageLayers
  • Example#2883 - Imagick::modulateImage
  • Example#2884 - Convolve Imagick::morphology
  • Example#2885 - Correlate Imagick::morphology
  • Example#2886 - Erode Imagick::morphology
  • Example#2887 - Erode Intensity Imagick::morphology
  • Example#2888 - Dilate Imagick::morphology
  • Example#2889 - Dilate intensity Imagick::morphology
  • Example#2890 - Distance with Chebyshev kernel Imagick::morphology
  • Example#2891 - Distance with Manhattan kernel Imagick::morphology
  • Example#2892 - Distance with ocatagonal kernel Imagick::morphology
  • Example#2893 - Distance with Euclidean kernel Imagick::morphology
  • Example#2894 - Edge Imagick::morphology
  • Example#2895 - Open Imagick::morphology
  • Example#2896 - Open intensity Imagick::morphology
  • Example#2897 - Close Imagick::morphology
  • Example#2898 - Close Intensity Imagick::morphology
  • Example#2899 - Smooth Imagick::morphology
  • Example#2900 - Edge in Imagick::morphology
  • Example#2901 - Edge out Imagick::morphology
  • Example#2902 - The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology
  • Example#2903 - The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology
  • Example#2904 - Hit and Miss Imagick::morphology
  • Example#2905 - Thinning Imagick::morphology
  • Example#2906 - Thicken Imagick::morphology
  • Example#2907 - Thick to generate a convex hull Imagick::morphology
  • Example#2908 - Iterative morphology Imagick::morphology
  • Example#2909 - Helper function to get an image silhouette Imagick::morphology
  • Example#2910 - Imagick::motionBlurImage
  • Example#2911 - Imagick::negateImage
  • Example#2912 - Using Imagick::newImage:
  • Example#2913 - Imagick::newPseudoImage
  • Example#2914 - Imagick::normalizeImage
  • Example#2915 - Imagick::oilPaintImage
  • Example#2916 - Using Imagick::optimizeImageLayers
  • Example#2917 - Imagick::orderedPosterizeImage
  • Example#2918 - Using Imagick::pingImageBlob
  • Example#2919 - Using Imagick::pingImageFile
  • Example#2920 - A Imagick::polaroidImage example
  • Example#2921 - Imagick::posterizeImage
  • Example#2922 - Imagick::quantizeImage
  • Example#2923 - Using Imagick::queryFontMetrics:
  • Example#2924 - Imagick::queryFonts
  • Example#2925 - Imagick::queryFormats
  • Example#2926 - Imagick::radialBlurImage
  • Example#2927 - Imagick::raiseImage
  • Example#2928 - Imagick::randomThresholdImage
  • Example#2929 - Imagick::readImageBlob
  • Example#2930 - Imagick::recolorImage
  • Example#2931 - Imagick::reduceNoiseImage
  • Example#2932 - Imagick::resampleImage
  • Example#2933 - Imagick::resizeImage
  • Example#2934 - Imagick::rollImage
  • Example#2935 - Imagick::rotateImage
  • Example#2936 - Imagick::rotationalBlurImage
  • Example#2937 - Using Imagick::roundCorners:
  • Example#2938 - Imagick::scaleImage
  • Example#2939 - Imagick::segmentImage
  • Example#2940 - Imagick::selectiveBlurImage
  • Example#2941 - Imagick::separateImageChannel
  • Example#2942 - Imagick::sepiaToneImage
  • Example#2943 - Imagick::setCompressionQuality
  • Example#2944 - A Imagick::setFont example
  • Example#2945 - A Imagick::setImage example
  • Example#2946 - Imagick::setImageArtifact
  • Example#2947 - Imagick::setImageBias
  • Example#2948 - Imagick::setImageClipMask
  • Example#2949 - Imagick::setImageCompressionQuality
  • Example#2950 - Modify animated Gif with Imagick::setImageDelay
  • Example#2951 - Basic Imagick::setImageIterations usage
  • Example#2952 - A Imagick::setImageOpacity example
  • Example#2953 - Imagick::setImageOrientation
  • Example#2954 - Using Imagick::setImageProperty:
  • Example#2955 - Imagick::setImageResolution
  • Example#2956 - Modify animated Gif with Imagick::setImageTicksPerSecond
  • Example#2957 - Using Imagick::setIteratorIndex:
  • Example#2958 - Attempt to reach '$extent' sizeImagick::setOption
  • Example#2959 - Imagick::setOption
  • Example#2960 - Imagick::setOption
  • Example#2961 - A Imagick::setPointSize example
  • Example#2962 - Imagick::setProgressMonitor
  • Example#2963 - Imagick::setSamplingFactors
  • Example#2964 - Imagick::shadeImage
  • Example#2965 - Imagick::shadowImage
  • Example#2966 - Imagick::sharpenImage
  • Example#2967 - Imagick::shaveImage
  • Example#2968 - Imagick::shearImage
  • Example#2969 - Create a gradient image using Imagick::sigmoidalContrastImage suitable for blending two images together smoothly, with the blending defined by $contrast and $the midpoint
  • Example#2970 - Imagick::sketchImage
  • Example#2971 - Imagick::smushImages
  • Example#2972 - Imagick::solarizeImage
  • Example#2973 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#2974 - SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage
  • Example#2975 - SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage
  • Example#2976 - SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage
  • Example#2977 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#2978 - createGradientImage is used by other examples. Imagick::sparseColorImage
  • Example#2979 - Imagick::spliceImage
  • Example#2980 - Imagick::spreadImage
  • Example#2981 - Imagick::statisticImage
  • Example#2982 - Imagick::subImageMatch
  • Example#2983 - Imagick::swirlImage
  • Example#2984 - Imagick::textureImage
  • Example#2985 - Imagick::thresholdImage
  • Example#2986 - Imagick::thumbnailImage
  • Example#2987 - Imagick::tintImage
  • Example#2988 - Using Imagick::transformImage:
  • Example#2989 - Imagick::transformImageColorspace example
  • Example#2990 - Imagick::transparentPaintImage
  • Example#2991 - Imagick::transposeImage
  • Example#2992 - Imagick::transverseImage
  • Example#2993 - Using Imagick::trimImage:
  • Example#2994 - Imagick::uniqueImageColors
  • Example#2995 - Imagick::unsharpMaskImage
  • Example#2996 - Imagick::vignetteImage
  • Example#2997 - WaveImage can be quite slow Imagick::waveImage
  • Example#2998 - Imagick::whiteThresholdImage
  • Example#2999 - ImagickDraw::affine example
  • Example#3000 - ImagickDraw::arc example
  • Example#3001 - ImagickDraw::bezier example
  • Example#3002 - ImagickDraw::circle example
  • Example#3003 - ImagickDraw::composite example
  • Example#3004 - ImagickDraw::ellipse example
  • Example#3005 - ImagickDraw::line example
  • Example#3006 - ImagickDraw::matte example
  • Example#3007 - ImagickDraw::pathCurveToQuadraticBezierAbsolute example
  • Example#3008 - ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute example
  • Example#3009 - ImagickDraw::pathCurveToQuadraticBezierSmoothRelative example
  • Example#3010 - ImagickDraw::pathStart example
  • Example#3011 - ImagickDraw::point example
  • Example#3012 - ImagickDraw::polygon example
  • Example#3013 - ImagickDraw::polyline example
  • Example#3014 - ImagickDraw::popDefs example
  • Example#3015 - ImagickDraw::push example
  • Example#3016 - ImagickDraw::pushPattern example
  • Example#3017 - ImagickDraw::rectangle example
  • Example#3018 - ImagickDraw::rotate example
  • Example#3019 - ImagickDraw::roundRectangle example
  • Example#3020 - ImagickDraw::scale example
  • Example#3021 - ImagickDraw::setClipPath example
  • Example#3022 - ImagickDraw::setClipRule example
  • Example#3023 - ImagickDraw::setClipUnits example
  • Example#3024 - ImagickDraw::setFillAlpha example
  • Example#3025 - ImagickDraw::setFillColor
  • Example#3026 - ImagickDraw::setFillOpacity
  • Example#3027 - ImagickDraw::setFillRule example
  • Example#3028 - ImagickDraw::setFont example
  • Example#3029 - ImagickDraw::setFontFamily example
  • Example#3030 - ImagickDraw::setFontSize example
  • Example#3031 - ImagickDraw::setFontStretch example
  • Example#3032 - ImagickDraw::setFontStyle example
  • Example#3033 - ImagickDraw::setFontWeight example
  • Example#3034 - ImagickDraw::setGravity example
  • Example#3035 - ImagickDraw::setStrokeAlpha example
  • Example#3036 - ImagickDraw::setStrokeAntialias example
  • Example#3037 - ImagickDraw::setStrokeColor example
  • Example#3038 - ImagickDraw::setStrokeDashArray example
  • Example#3039 - ImagickDraw::setStrokeDashOffset example
  • Example#3040 - ImagickDraw::setStrokeLineCap example
  • Example#3041 - ImagickDraw::setStrokeLineJoin example
  • Example#3042 - ImagickDraw::setStrokeMiterLimit example
  • Example#3043 - ImagickDraw::setStrokeOpacity example
  • Example#3044 - ImagickDraw::setStrokeWidth example
  • Example#3045 - ImagickDraw::setTextAlignment example
  • Example#3046 - ImagickDraw::setTextAntialias example
  • Example#3047 - ImagickDraw::setTextDecoration example
  • Example#3048 - ImagickDraw::setTextUnderColor example
  • Example#3049 - ImagickDraw::setVectorGraphics example
  • Example#3050 - ImagickDraw::setViewBox example
  • Example#3051 - ImagickDraw::skewX example
  • Example#3052 - ImagickDraw::skewY example
  • Example#3053 - ImagickDraw::translate example
  • Example#3054 - ImagickPixel::construct
  • Example#3055 - Basic Imagick::getColor usage
  • Example#3056 - Basic Imagick::getColorAsString usage
  • Example#3057 - ImagickPixel getColorCount
  • Example#3058 - Basic Imagick::getColorValue usage
  • Example#3059 - ImagickPixel::getColorValueQuantum
  • Example#3060 - Basic Imagick::getHSL example
  • Example#3061 - ImagickPixel::isSimilar
  • Example#3062 - ImagickPixel::setColor
  • Example#3063 - Basic Imagick::setColorValue usage
  • Example#3064 - ImagickPixel::setColorValueQuantum
  • Example#3065 - Use ImagickPixel::setHSL to modify a color
  • Example#3066 - ImagickPixelIterator::clear
  • Example#3067 - ImagickPixelIterator::construct
  • Example#3068 - ImagickPixelIterator::getNextIteratorRow
  • Example#3069 - ImagickPixelIterator::resetIterator
  • Example#3070 - ImagickPixelIterator::setIteratorRow
  • Example#3071 - ImagickKernel::addKernel
  • Example#3072 - ImagickKernel::addUnityKernel
  • Example#3073 - ImagickKernel::addUnityKernel
  • Example#3074 - ImagickKernel::fromBuiltin
  • Example#3075 - ImagickKernel::fromMatrix
  • Example#3076 - ImagickKernel::getMatrix
  • Example#3077 - ImagickKernel::scale
  • Example#3078 - ImagickKernel::separate
  • Example#3079 - imap_append example
  • Example#3080 - imap_check example
  • Example#3081 - imap_createmailbox example
  • Example#3082 - imap_delete example
  • Example#3083 - imap_fetch_overview example
  • Example#3084 - imap_gc example
  • Example#3085 - imap_get_quota example
  • Example#3086 - imap_get_quota 4.3 or greater example
  • Example#3087 - imap_get_quotaroot example
  • Example#3088 - imap_getacl example
  • Example#3089 - imap_getmailboxes example
  • Example#3090 - imap_is_open example
  • Example#3091 - imap_list example
  • Example#3092 - imap_mail_compose example
  • Example#3093 - imap_mailboxmsginfo example
  • Example#3094 - imap_mime_header_decode example
  • Example#3095 - Different use of imap_open
  • Example#3096 - imap_open example
  • Example#3097 - imap_ping Example
  • Example#3098 - imap_reopen example
  • Example#3099 - imap_rfc822_parse_adrlist example
  • Example#3100 - imap_rfc822_write_address example
  • Example#3101 - imap_search example
  • Example#3102 - imap_set_quota example
  • Example#3103 - imap_setflag_full example
  • Example#3104 - imap_status example
  • Example#3105 - imap_thread Example
  • Example#3106 - imap_timeout example
  • Example#3107 - Basic imap_utf8 Usage
  • Example#3108 - 计算散列值并订阅一个用户
  • Example#3109 - 发送邮件
  • Example#3110 - 使用额外标头发送邮件
  • Example#3111 - 使用 array 形式的额外标头发送邮件
  • Example#3112 - 使用附加命令行参数发送邮件。
  • Example#3113 - Sending HTML email
  • Example#3114 - mailparse_determine_best_xfer_encoding example
  • Example#3115 - mailparse_rfc822_parse_addresses example
  • Example#3116 - mailparse_stream_encode example
  • Example#3117 - mailparse_uudecode_all example
  • Example#3118 - bcadd 示例
  • Example#3119 - bccomp 示例
  • Example#3120 - bcdiv 示例
  • Example#3121 - bcmod 示例
  • Example#3122 - 带小数点的 bcmod
  • Example#3123 - bcmul 示例
  • Example#3124 - bcmul scale example
  • Example#3125 - bcpow 示例
  • Example#3126 - bcpow scale example
  • Example#3127 - bcscale 示例
  • Example#3128 - bcsqrt 示例
  • Example#3129 - bcsub 示例
  • Example#3130 - Factorial function using GMP
  • Example#3131 - gmp_abs example
  • Example#3132 - gmp_add example
  • Example#3133 - gmp_and example
  • Example#3134 - gmp_clrbit example
  • Example#3135 - gmp_cmp example
  • Example#3136 - gmp_com example
  • Example#3137 - gmp_div_q example
  • Example#3138 - Division of GMP numbers
  • Example#3139 - gmp_div_r example
  • Example#3140 - gmp_divexact example
  • Example#3141 - gmp_export example
  • Example#3142 - gmp_fact example
  • Example#3143 - gmp_gcd example
  • Example#3144 - Solving a linear Diophantine equation
  • Example#3145 - gmp_hamdist example
  • Example#3146 - gmp_import example
  • Example#3147 - Creating GMP number
  • Example#3148 - gmp_intval example
  • Example#3149 - gmp_invert example
  • Example#3150 - gmp_jacobi example
  • Example#3151 - gmp_legendre example
  • Example#3152 - gmp_mod example
  • Example#3153 - gmp_mul example
  • Example#3154 - gmp_neg example
  • Example#3155 - gmp_nextprime example
  • Example#3156 - gmp_or example
  • Example#3157 - gmp_perfect_square example
  • Example#3158 - gmp_popcount example
  • Example#3159 - gmp_pow example
  • Example#3160 - gmp_powm example
  • Example#3161 - gmp_prob_prime example
  • Example#3162 - gmp_random example
  • Example#3163 - gmp_random_bits example
  • Example#3164 - gmp_random_range example
  • Example#3165 - gmp_random_seed example
  • Example#3166 - gmp_scan0 example
  • Example#3167 - gmp_scan1 example
  • Example#3168 - gmp_setbit example - 0 index
  • Example#3169 - gmp_setbit example - 1 index
  • Example#3170 - gmp_setbit example - clearing a bit
  • Example#3171 - gmp_sign example
  • Example#3172 - gmp_sqrt example
  • Example#3173 - gmp_sqrtrem example
  • Example#3174 - Converting a GMP number to a string
  • Example#3175 - gmp_sub example
  • Example#3176 - gmp_testbit example
  • Example#3177 - gmp_xor example
  • Example#3178 - abs 示例
  • Example#3179 - base_convert 示例
  • Example#3180 - bindec 示例
  • Example#3181 - bindec 将输入解读为无符号整数
  • Example#3182 - ceil 示例
  • Example#3183 - cos 示例
  • Example#3184 - decbin 示例
  • Example#3185 - dechex 示例
  • Example#3186 - 大整数的 dechex 示例
  • Example#3187 - decoct 示例
  • Example#3188 - deg2rad 示例
  • Example#3189 - exp 示例
  • Example#3190 - Using fdiv
  • Example#3191 - floor 示例
  • Example#3192 - fmod 的使用
  • Example#3193 - hexdec 示例
  • Example#3194 - intdiv 的一些示例
  • Example#3195 - is_finite 示例
  • Example#3196 - is_infinite 示例
  • Example#3197 - is_nan 示例
  • Example#3198 - 使用 max 的示例
  • Example#3199 - min 用法的示例
  • Example#3200 - octdec 示例
  • Example#3201 - pi 示例
  • Example#3202 - pow 的一些示例
  • Example#3203 - rad2deg 示例
  • Example#3204 - round 示例
  • Example#3205 - precision 如何影响 float
  • Example#3206 - mode 示例
  • Example#3207 - 带 precision 的 mode 示例
  • Example#3208 - sin 示例
  • Example#3209 - sqrt 示例
  • Example#3210 - tan 示例
  • Example#3211 - Evaluating a FDF document
  • Example#3212 - Adding JavaScript code to a FDF
  • Example#3213 - Populating a PDF document
  • Example#3214 - Storing an uploaded file
  • Example#3215 - Detecting all fieldnames in a FDF
  • Example#3216 - Accessing the form data
  • Example#3217 - Accessing the form data
  • Example#3218 - Retrieving FDF as a string
  • Example#3219 - Passing FDF data to a second form
  • Example#3220 - gnupg clearsign example (procedural)
  • Example#3221 - gnupg clearsign example (OO)
  • Example#3222 - keylistiterator
  • Example#3223 - Procedural gnupg_adddecryptkey example
  • Example#3224 - OO gnupg_adddecryptkey example
  • Example#3225 - Procedural gnupg_addencryptkey example
  • Example#3226 - OO gnupg_addencryptkey example
  • Example#3227 - Procedural gnupg_addsignkey example
  • Example#3228 - OO gnupg_addsignkey example
  • Example#3229 - Procedural gnupg_cleardecryptkeys example
  • Example#3230 - OO gnupg_cleardecryptkeys example
  • Example#3231 - Procedural gnupg_clearencryptkeys example
  • Example#3232 - OO gnupg_clearencryptkeys example
  • Example#3233 - Procedural gnupg_clearsignkeys example
  • Example#3234 - OO gnupg_clearsignkeys example
  • Example#3235 - Procedural gnupg_decrypt example
  • Example#3236 - OO gnupg_decrypt example
  • Example#3237 - Procedural gnupg_decryptverify example
  • Example#3238 - OO gnupg_decryptverify example
  • Example#3239 - Procedural gnupg_deletekey example
  • Example#3240 - OO gnupg_deletekey example
  • Example#3241 - Procedural gnupg_encrypt example
  • Example#3242 - OO gnupg_encrypt example
  • Example#3243 - Procedural gnupg_encryptsign example
  • Example#3244 - OO gnupg_encryptsign example
  • Example#3245 - Procedural gnupg_export example
  • Example#3246 - OO gnupg_export example
  • Example#3247 - Procedural gnupg_getengineinfo example
  • Example#3248 - OO gnupg_getengineinfo example
  • Example#3249 - Procedural gnupg_geterror example
  • Example#3250 - OO gnupg_geterror example
  • Example#3251 - Procedural gnupg_geterrorinfo example
  • Example#3252 - OO gnupg_geterrorinfo example
  • Example#3253 - Procedural gnupg_getprotocol example
  • Example#3254 - OO gnupg_getprotocol example
  • Example#3255 - Procedural gnupg_gettrustlist example
  • Example#3256 - OO gnupg_gettrustlist example
  • Example#3257 - Procedural gnupg_import example
  • Example#3258 - OO gnupg_import example
  • Example#3259 - Procedural gnupg_init example with default setting
  • Example#3260 - Procedural gnupg_init example with overriden file name and home dir
  • Example#3261 - OO gnupg initializer example with default setting
  • Example#3262 - OO gnupg initializer example with overriden file name and home dir
  • Example#3263 - Procedural gnupg_keyinfo example
  • Example#3264 - OO gnupg_keyinfo example
  • Example#3265 - Procedural gnupg_listsignatures example
  • Example#3266 - OO gnupg_listsignatures example
  • Example#3267 - Procedural gnupg_setarmor example
  • Example#3268 - OO gnupg_setarmor example
  • Example#3269 - Procedural gnupg_seterrormode example
  • Example#3270 - OO gnupg_seterrormode example
  • Example#3271 - Procedural gnupg_setsignmode example
  • Example#3272 - OO gnupg_setsignmode example
  • Example#3273 - Procedural gnupg_sign example
  • Example#3274 - OO gnupg_sign example
  • Example#3275 - Procedural gnupg_verify example
  • Example#3276 - OO gnupg_verify example
  • Example#3277 - Creating and using a pattern
  • Example#3278 - Creating and using a template
  • Example#3279 - Hyphennate a text
  • Example#3280 - Drawing a rectangle
  • Example#3281 - Creating and using a spot color
  • Example#3282 - Rotation of the coordinate system
  • Example#3283 - Placing text at a given position
  • Example#3284 - Drawing a dashed line
  • Example#3285 - Translation of the coordinate system
  • Example#3286 - A rpmdbinfo example
  • Example#3287 - Searching for the package owning a file
  • Example#3288 - A rpminfo example
  • Example#3289 - example
  • Example#3290 - example
  • Example#3291 - example
  • Example#3292 - example
  • Example#3293 - example
  • Example#3294 - example
  • Example#3295 - example
  • Example#3296 - example
  • Example#3297 - example
  • Example#3298 - example
  • Example#3299 - example
  • Example#3300 - example
  • Example#3301 - example
  • Example#3302 - setColumn example
  • Example#3303 - setRow example
  • Example#3304 - Align style example
  • Example#3305 - Bold style example
  • Example#3306 - Italic style example
  • Example#3307 - Underline style example
  • Example#3308 - Incorrect requests
  • Example#3309 - Calling request from a request callback
  • Example#3310 - Calling request from a request callback
  • Example#3311 - Using eio with libevent
  • Example#3312 - Cancelling a request
  • Example#3313 - Calling eio_chmod
  • Example#3314 - Making a custom request
  • Example#3315 - Grouping requests
  • Example#3316 - Using eio with libevent extension
  • Example#3317 - Using eio with event extension
  • Example#3318 - eio_cancel example
  • Example#3319 - eio_custom example
  • Example#3320 - eio_event_loop example
  • Example#3321 - eio_lstat example
  • Example#3322 - Using eio with libevent
  • Example#3323 - eio_grp example
  • Example#3324 - Grouping requests
  • Example#3325 - eio_link example
  • Example#3326 - eio_lstat example
  • Example#3327 - eio_mkdir example
  • Example#3328 - eio_mknod example
  • Example#3329 - eio_nreqs example
  • Example#3330 - eio_open example
  • Example#3331 - eio_poll example
  • Example#3332 - eio_read example
  • Example#3333 - eio_readdir example
  • Example#3334 - eio_readlink example
  • Example#3335 - eio_realpath example
  • Example#3336 - eio_rename example
  • Example#3337 - eio_rmdir example
  • Example#3338 - eio_stat example
  • Example#3339 - eio_statvfs example
  • Example#3340 - eio_symlink example
  • Example#3341 - Simple timers
  • Example#3342 - Periodic timer. Tick each 10.5 seconds
  • Example#3343 - Periodic timer. Use reschedule callback
  • Example#3344 - Periodic timer. Tick every 10.5 seconds starting at now
  • Example#3345 - Wait until STDIN is readable
  • Example#3346 - Use some async I/O to access a socket
  • Example#3347 - Embedding one loop into another
  • Example#3348 - Embedding loop created with kqueue backend into the default loop
  • Example#3349 - Handle SIGTERM signal
  • Example#3350 - Monitor changes of /var/log/messages
  • Example#3351 - Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay
  • Example#3352 - Process status changes
  • Example#3353 - Using reschedule callback
  • Example#3354 - Embedding loop created with kqueue backend into the default loop
  • Example#3355 - Embedding one loop into another
  • Example#3356 - Embedding loop created with kqueue backend into the default loop
  • Example#3357 - Embedding loop created with kqueue backend into the default loop
  • Example#3358 - Periodic timer. Use reschedule callback
  • Example#3359 - Periodic timer. Tick every 10.5 seconds starting at now
  • Example#3360 - Hourly watcher
  • Example#3361 - Handle SIGTERM signal
  • Example#3362 - Monitor changes of /var/log/messages
  • Example#3363 - Monitor changes of /var/log/messages
  • Example#3364 - Simple timers
  • Example#3365 - Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay
  • Example#3366 - Register an I/O watcher for some UDP socket but do not keep the event loop from running just because of that watcher.
  • Example#3367 - Expect Usage Example
  • Example#3368 - Another Expect Usage Example
  • Example#3369 - expect_expectl example
  • Example#3370 - expect_popen example
  • Example#3371 - 进程控制示例
  • Example#3372 - pcntl_fork 示例
  • Example#3373 - pcntl_rfork example
  • Example#3374 - pcntl_signal 示例
  • Example#3375 - pcntl_signal_dispatch 示例
  • Example#3376 - pcntl_signal_get_handler example
  • Example#3377 - pcntl_sigprocmask 示例
  • Example#3378 - pcntl_sigwaitinfo 示例
  • Example#3379 - posix_access example
  • Example#3380 - posix_ctermid example
  • Example#3381 - posix_eaccess example
  • Example#3382 - posix_fpathconf example
  • Example#3383 - posix_get_last_error example
  • Example#3384 - posix_getcwd example
  • Example#3385 - posix_getegid example
  • Example#3386 - posix_geteuid example
  • Example#3387 - posix_getgid example
  • Example#3388 - Example use of posix_getgrgid
  • Example#3389 - Example use of posix_getgrnam
  • Example#3390 - Example use of posix_getgroups
  • Example#3391 - Example use of posix_getlogin
  • Example#3392 - Example use of posix_getpgid
  • Example#3393 - posix_getpid 的使用例子
  • Example#3394 - Example use of posix_getppid
  • Example#3395 - Example use of posix_getpwnam
  • Example#3396 - Example use of posix_getpwuid
  • Example#3397 - Example use of posix_getrlimit
  • Example#3398 - Example use of posix_getsid
  • Example#3399 - Example use of posix_getuid
  • Example#3400 - A posix_mknod example
  • Example#3401 - posix_pathconf example
  • Example#3402 - posix_setegid example
  • Example#3403 - posix_setgid example
  • Example#3404 - posix_setuid example
  • Example#3405 - posix_strerror example
  • Example#3406 - posix_sysconf example
  • Example#3407 - Example use of posix_times
  • Example#3408 - Example use of posix_uname
  • Example#3409 - escapeshellarg 的例子
  • Example#3410 - escapeshellcmd example
  • Example#3411 - exec 示例
  • Example#3412 - 使用 proc_open 函数将进程设置为高优先级
  • Example#3413 - proc_open 示例
  • Example#3414 - proc_open 在 Windows 上的怪异行为
  • Example#3415 - shell_exec 示例
  • Example#3416 - system 示例
  • Example#3417 - Example showing Future as return value
  • Example#3418 - Example showing Future as synchronization point
  • Example#3419 - 获取对象属性表中的部分条目
  • Example#3420 - 计算对象中的属性数量
  • Example#3421 - Runtime inheritance
  • Example#3422 - 检测对象状态
  • Example#3423 - 检测对象状态
  • Example#3424 - 合并数据到对象的属性表
  • Example#3425 - 等待和唤醒
  • Example#3426 - Notifications and Waiting
  • Example#3427 - 弹出对象属性表中的最后一项数据
  • Example#3428 - 弹出对象属性表中第一项数据
  • Example#3429 - 同步
  • Example#3430 - 等待和唤醒
  • Example#3431 - 返回创建线程的线程或进程ID
  • Example#3432 - 获取当前执行线程
  • Example#3433 - 返回当前执行线程的ID
  • Example#3434 - 返回引用线程的ID
  • Example#3435 - 检测线程状态
  • Example#3436 - 监测线程是否开始执行
  • Example#3437 - 加入线程
  • Example#3438 - 开始线程
  • Example#3439 - A basic example of Worker::collect
  • Example#3440 - Worker::getStacked 基本示例
  • Example#3441 - 检测 Worker 对象状态
  • Example#3442 - 关闭 Worker
  • Example#3443 - 向 Worker 中入栈任务并执行
  • Example#3444 - 从 Worker 栈中移除对象
  • Example#3445 - Pool::collect 基本用法示例
  • Example#3446 - 创建 Pool 对象
  • Example#3447 - 完全停止一个 Pool
  • Example#3448 - 提交任务
  • Example#3449 - 提交任务到特定的 Worker
  • Example#3450 - New immutability semantics of Threaded
  • Example#3451 - Volatile use-case
  • Example#3452 - Shared Memory Operations Overview
  • Example#3453 - Closing shared memory block
  • Example#3454 - Deleting shared memory block
  • Example#3455 - Create a new shared memory block
  • Example#3456 - Reading shared memory block
  • Example#3457 - Getting the size of the shared memory block
  • Example#3458 - Writing to shared memory block
  • Example#3459 - SyncMutex::__construct named mutex with lock timeout example
  • Example#3460 - SyncMutex::__construct unnamed mutex example
  • Example#3461 - SyncMutex::lock example
  • Example#3462 - SyncMutex::unlock example
  • Example#3463 - SyncSemaphore::__construct example
  • Example#3464 - SyncSemaphore::lock example
  • Example#3465 - SyncSemaphore::unlock example
  • Example#3466 - SyncEvent::__construct example
  • Example#3467 - SyncEvent::fire example
  • Example#3468 - SyncEvent::reset example
  • Example#3469 - SyncEvent::wait example
  • Example#3470 - SyncReaderWriter::__construct example
  • Example#3471 - SyncReaderWriter::readlock example
  • Example#3472 - SyncReaderWriter::readunlock example
  • Example#3473 - SyncReaderWriter::writelock example
  • Example#3474 - SyncReaderWriter::writeunlock example
  • Example#3475 - SyncSharedMemory::__construct example
  • Example#3476 - SyncSharedMemory::first example
  • Example#3477 - SyncSharedMemory::__construct example
  • Example#3478 - SyncSharedMemory::size example
  • Example#3479 - SyncSharedMemory::write example
  • Example#3480 - geoip_asnum_by_name 示例
  • Example#3481 - geoip_continent_code_by_name 函数的使用范例：
  • Example#3482 - geoip_country_code_by_name 函数的范例：
  • Example#3483 - geoip_country_code3_by_name 函数的使用范例：
  • Example#3484 - geoip_country_name_by_name 函数的使用范例：
  • Example#3485 - geoip_database_info 函数的使用范例：
  • Example#3486 - geoip_db_avail 函数的使用范例：
  • Example#3487 - geoip_db_filename函数的使用范例：
  • Example#3488 - geoip_db_get_all_info 使用范例：
  • Example#3489 - geoip_db_get_all_info 使用范例：
  • Example#3490 - 一个 geoip_domain_by_name 使用范例：
  • Example#3491 - 一个 geoip_id_by_name 使用范例：
  • Example#3492 - 一个 geoip_isp_by_name 使用范例：
  • Example#3493 - 一个 geoip_netspeedcell_by_name 使用范例：
  • Example#3494 - 一个 geoip_org_by_name 使用范例：
  • Example#3495 - geoip_record_by_name 例子：
  • Example#3496 - geoip_region_by_name 例子：
  • Example#3497 - geoip_region_name_by_code 使用美国和加拿大地区的范例。
  • Example#3498 - geoip_region_name_by_code 使用 FIPS 代码的范例：
  • Example#3499 - geoip_setup_custom_directory 例子：
  • Example#3500 - geoip_time_zone_by_country_and_region 使用美国和加拿大地区的范例：
  • Example#3501 - geoip_time_zone_by_country_and_region 使用 FIPS 代码的范例：
  • Example#3502 - xor.data file
  • Example#3503 - 一般训练
  • Example#3504 - 一般测试
  • Example#3505 - fann_create_train_from_callback 示例
  • Example#3506 - fann_read_train_from_file 函数的使用范例：
  • Example#3507 - igbinary_serialize example
  • Example#3508 - 返回 array 的 JsonSerializable::jsonSerialize 例子
  • Example#3509 - 返回关联 array 的 JsonSerializable::jsonSerialize 例子
  • Example#3510 - 返回 int 的 JsonSerializable::jsonSerialize 例子s
  • Example#3511 - 返回 string 的JsonSerializable::jsonSerialize 例子
  • Example#3512 - json_decode 的例子
  • Example#3513 - Accessing invalid object properties
  • Example#3514 - common mistakes using json_decode
  • Example#3515 - depth errors
  • Example#3516 - json_decode of large integers
  • Example#3517 - json_encode 例子
  • Example#3518 - json_encode 函数中 flags 参数的用法
  • Example#3519 - 选项 JSON_NUMERIC_CHECK 例子
  • Example#3520 - 连续与非连续数组示例
  • Example#3521 - 选项 JSON_PRESERVE_ZERO_FRACTION 的例子
  • Example#3522 - json_last_error 例子
  • Example#3523 - json_encode 的 json_last_error
  • Example#3524 - json_last_error 和 JSON_THROW_ON_ERROR
  • Example#3525 - json_validate 示例
  • Example#3526 - simdjson_decode examples
  • Example#3527 - Accessing invalid object properties
  • Example#3528 - common mistakes using simdjson_decode
  • Example#3529 - depth errors
  • Example#3530 - simdjson_decode of large integers
  • Example#3531 - simdjson_decode examples
  • Example#3532 - depth errors
  • Example#3533 - Lua::assign示例
  • Example#3534 - Lua::call示例
  • Example#3535 - Lua::eval示例
  • Example#3536 - Lua::registerCallback示例
  • Example#3537 - LuaClosure::__invoke示例
  • Example#3538 - Execute some Lua code
  • Example#3539 - Calling a Lua function
  • Example#3540 - Profiling Lua code
  • Example#3541 - Loading code into Lua
  • Example#3542 - Manipulating the usage timer
  • Example#3543 - Registering PHP functions to call from Lua
  • Example#3544 - Calling a Lua function
  • Example#3545 - Calling a Lua function
  • Example#3546 - constant 与常量一起使用
  • Example#3547 - constant 和 Enum Cases 一起使用（自 PHP 8.1.0 起）
  • Example#3548 - 定义常量
  • Example#3549 - 以保留名称定义常量
  • Example#3550 - 检查常量
  • Example#3551 - 检测 Enum Cases（自 PHP 8.1.0 起）
  • Example#3552 - eval 例子 - 简单的文本合并
  • Example#3553 - exit 例子
  • Example#3554 - exit 状态码例子
  • Example#3555 - 无论如何，Shutdown函数与析构函数都会被执行
  • Example#3556 - 列出所有用户浏览器的信息
  • Example#3557 - __halt_compiler 例子
  • Example#3558 - highlight_string 例子
  • Example#3559 - hrtime 的用法
  • Example#3560 - ignore_user_abort例子
  • Example#3561 - pack 范例
  • Example#3562 - php_strip_whitespace 的例子
  • Example#3563 - Basic sapi_windows_generate_ctrl_event Usage
  • Example#3564 - Basic sapi_windows_set_ctrl_handler Usage
  • Example#3565 - sapi_windows_vt100_support default state
  • Example#3566 - sapi_windows_vt100_support changing state
  • Example#3567 - Example usage of VT100 support enabled
  • Example#3568 - sleep 示例
  • Example#3569 - sys_getloadavg 示例
  • Example#3570 - time_nanosleep 示例
  • Example#3571 - time_sleep_until 示例
  • Example#3572 - uniqid 例子
  • Example#3573 - unpack example
  • Example#3574 - unpack example with a repeater
  • Example#3575 - unpack example with unnamed keys
  • Example#3576 - usleep例子
  • Example#3577 - Random Example
  • Example#3578 - mt_rand 例子
  • Example#3579 - rand 例子
  • Example#3580 - random_bytes example
  • Example#3581 - random_int 示例
  • Example#3582 - Random\Randomizer::__construct example
  • Example#3583 - Random\Randomizer::getBytes example
  • Example#3584 - Random\Randomizer::getBytesFromString example
  • Example#3585 - Generate a random code for multi-factor authentication
  • Example#3586 - Select from a string with a non-uniform distribution
  • Example#3587 - Random\Randomizer::getFloat example
  • Example#3588 - Random\Randomizer::getInt example
  • Example#3589 - Random\Randomizer::nextFloat example
  • Example#3590 - Incorrect scaling using an affine transformation
  • Example#3591 - Random\Randomizer::nextInt example
  • Example#3592 - Random\Randomizer::pickArrayKeys example
  • Example#3593 - Picking random values
  • Example#3594 - Random\Randomizer::__serialize example
  • Example#3595 - Random\Randomizer::shuffleArray example
  • Example#3596 - Random\Randomizer::shuffleBytes example
  • Example#3597 - Byte-wise shuffling breaks Unicode characters
  • Example#3598 - Random\Randomizer::__unserialize example
  • Example#3599 - Random\Engine::generate example
  • Example#3600 - Random\Engine\Mt19937::__construct example
  • Example#3601 - Random\Engine\Mt19937::__debugInfo example
  • Example#3602 - Random\Engine\Mt19937::__serialize example
  • Example#3603 - Random\Engine\Mt19937::__unserialize example
  • Example#3604 - Random\Engine\PcgOneseq128XslRr64::__construct example
  • Example#3605 - Deriving a seed from a string
  • Example#3606 - Random\Engine\PcgOneseq128XslRr64::__debugInfo example
  • Example#3607 - Random\Engine\PcgOneseq128XslRr64::jump example
  • Example#3608 - Randomizer methods may call the engine more than once
  • Example#3609 - Random\Engine\PcgOneseq128XslRr64::__serialize example
  • Example#3610 - Random\Engine\PcgOneseq128XslRr64::__unserialize example
  • Example#3611 - Random\Engine\Xoshiro256StarStar::__construct example
  • Example#3612 - Deriving a seed from a string
  • Example#3613 - Random\Engine\Xoshiro256StarStar::__debugInfo example
  • Example#3614 - Random\Engine\Xoshiro256StarStar::jump example
  • Example#3615 - Random\Engine\Xoshiro256StarStar::jumpLong example
  • Example#3616 - Random\Engine\Xoshiro256StarStar::__serialize example
  • Example#3617 - Random\Engine\Xoshiro256StarStar::__unserialize example
  • Example#3618 - 获取与设置根目录
  • Example#3619 - 获取与设置 logger
  • Example#3620 - 快速写入日志
  • Example#3621 - 快速获取某级别下日志的数量
  • Example#3622 - 获取某级别下日志的详情
  • Example#3623 - seaslog_get_author 示例
  • Example#3624 - seaslog_get_version 示例
  • Example#3625 - SeasLog::alert 示例
  • Example#3626 - SeasLog::analyzerCount example
  • Example#3627 - SeasLog::analyzerDetail example
  • Example#3628 - SeasLog::closeLoggerStream example
  • Example#3629 - SeasLog::__construct example
  • Example#3630 - SeasLog::critical 示例
  • Example#3631 - SeasLog::debug 示例
  • Example#3632 - SeasLog::__destruct example
  • Example#3633 - SeasLog::emergency 示例
  • Example#3634 - SeasLog::error 示例
  • Example#3635 - SeasLog::flushBuffer 示例
  • Example#3636 - SeasLog::getBasePath 示例
  • Example#3637 - SeasLog::getBuffer 示例
  • Example#3638 - SeasLog::getBufferEnabled example
  • Example#3639 - SeasLog::getDatetimeFormat 示例
  • Example#3640 - SeasLog::getLastLogger 示例
  • Example#3641 - SeasLog::getRequestID 示例
  • Example#3642 - SeasLog::getRequestVariable example
  • Example#3643 - SeasLog::info 示例
  • Example#3644 - SeasLog::log 示例
  • Example#3645 - SeasLog::notice 示例
  • Example#3646 - SeasLog::setBasePath 示例
  • Example#3647 - SeasLog::setDatetimeFormat 示例
  • Example#3648 - SeasLog::setLogger 示例
  • Example#3649 - SeasLog::setRequestID 示例
  • Example#3650 - SeasLog::setRequestVariable example
  • Example#3651 - SeasLog::warning 示例
  • Example#3652 - SplStack 示例
  • Example#3653 - SplQueue 示例
  • Example#3654 - 使用 SplQueue 高效处理任务
  • Example#3655 - SplFixedArray usage example
  • Example#3656 - SplFixedArray::__construct example
  • Example#3657 - SplFixedArray::count example
  • Example#3658 - SplFixedArray::fromArray example
  • Example#3659 - SplFixedArray::getSize example
  • Example#3660 - SplFixedArray::setSize example
  • Example#3661 - SplFixedArray::toArray example
  • Example#3662 - SplObjectStorage as a set
  • Example#3663 - SplObjectStorage as a map
  • Example#3664 - SplObjectStorage::addAll example
  • Example#3665 - SplObjectStorage::attach example
  • Example#3666 - SplObjectStorage::contains example
  • Example#3667 - SplObjectStorage::count example
  • Example#3668 - SplObjectStorage::current example
  • Example#3669 - SplObjectStorage::detach example
  • Example#3670 - SplObjectStorage::getHash example
  • Example#3671 - SplObjectStorage::getInfo example
  • Example#3672 - SplObjectStorage::key example
  • Example#3673 - SplObjectStorage::next example
  • Example#3674 - SplObjectStorage::offsetExists example
  • Example#3675 - SplObjectStorage::offsetGet example
  • Example#3676 - SplObjectStorage::offsetSet example
  • Example#3677 - SplObjectStorage::offsetUnset example
  • Example#3678 - SplObjectStorage::removeAll example
  • Example#3679 - SplObjectStorage::removeAllExcept example
  • Example#3680 - SplObjectStorage::rewind example
  • Example#3681 - SplObjectStorage::serialize example
  • Example#3682 - SplObjectStorage::setInfo example
  • Example#3683 - SplObjectStorage::unserialize example
  • Example#3684 - SplObjectStorage::valid example
  • Example#3685 - AppendIterator::append example
  • Example#3686 - Iterating AppendIterator with foreach
  • Example#3687 - Iterating AppendIterator with the AppendIterator API
  • Example#3688 - AppendIterator.getIteratorIndex basic example
  • Example#3689 - AppendIterator::key basic example
  • Example#3690 - ArrayIterator::current example
  • Example#3691 - ArrayIterator::key example
  • Example#3692 - ArrayIterator::next example
  • Example#3693 - ArrayIterator::rewind example
  • Example#3694 - ArrayIterator::valid example
  • Example#3695 - CachingIterator::getCache example
  • Example#3696 - Available callback arguments
  • Example#3697 - Callback basic examples
  • Example#3698 - A DirectoryIterator::__construct example
  • Example#3699 - A DirectoryIterator::current example
  • Example#3700 - A DirectoryIterator::getBasename example
  • Example#3701 - DirectoryIterator::getExtension example
  • Example#3702 - A DirectoryIterator::getFilename example
  • Example#3703 - A DirectoryIterator::isDot example
  • Example#3704 - A DirectoryIterator::key example
  • Example#3705 - DirectoryIterator::next example
  • Example#3706 - DirectoryIterator::rewind example
  • Example#3707 - DirectoryIterator::seek example
  • Example#3708 - A DirectoryIterator::__toString example
  • Example#3709 - A DirectoryIterator::valid example
  • Example#3710 - FilesystemIterator::__construct example
  • Example#3711 - FilesystemIterator::current example
  • Example#3712 - FilesystemIterator::key example
  • Example#3713 - FilesystemIterator::next example
  • Example#3714 - FilesystemIterator::rewind example
  • Example#3715 - FilesystemIterator::key example
  • Example#3716 - FilterIterator::accept example
  • Example#3717 - GlobIterator example
  • Example#3718 - GlobIterator::count example
  • Example#3719 - InfiniteIterator::__construct example
  • Example#3720 - LimitIterator usage example
  • Example#3721 - LimitIterator::__construct example
  • Example#3722 - LimitIterator::getPosition example
  • Example#3723 - Iterating a MultipleIterator
  • Example#3724 - NoRewindIterator::__construct example
  • Example#3725 - NoRewindIterator::rewind example
  • Example#3726 - RecursiveArrayIterator::getChildren example
  • Example#3727 - RecursiveArrayIterator::hasChildren example
  • Example#3728 - Available callback arguments
  • Example#3729 - Recursive callback basic example
  • Example#3730 - RecursiveCallbackFilterIterator::hasChildren basic usage
  • Example#3731 - RecursiveDirectoryIterator example
  • Example#3732 - getSubPath example
  • Example#3733 - getSubPathname example
  • Example#3734 - Basic RecursiveFilterIterator example
  • Example#3735 - RecursiveFilterIterator example
  • Example#3736 - Iterating a RecursiveIteratorIterator
  • Example#3737 - RecursiveRegexIterator::__construct example
  • Example#3738 - RecursiveRegexIterator::getChildren example
  • Example#3739 - RecursiveRegexIterator::hasChildren example
  • Example#3740 - RegexIterator::accept example
  • Example#3741 - RegexIterator::__construct example
  • Example#3742 - RegexIterator::getFlags example
  • Example#3743 - RegexIterator::getMode example
  • Example#3744 - RegexIterator::getPregFlags example
  • Example#3745 - RegexIterator::setFlags example
  • Example#3746 - RegexIterator::setMode example
  • Example#3747 - RegexIterator::setPregFlags example
  • Example#3748 - Countable::count 示例
  • Example#3749 - 基础用法
  • Example#3750 - SeekableIterator::seek example
  • Example#3751 - class_implements 示例
  • Example#3752 - class_parents 示例
  • Example#3753 - class_uses example
  • Example#3754 - iterator_apply 示例
  • Example#3755 - iterator_count 示例
  • Example#3756 - iterator_count 修改位置
  • Example#3757 - iterator_count 在 foreach 中循环
  • Example#3758 - iterator_to_array 示例
  • Example#3759 - spl_autoload_extensions 示例
  • Example#3760 - spl_autoload_register 作为 __autoload 函数的替代
  • Example#3761 - 类未能加载的 spl_autoload_register 例子
  • Example#3762 - 提供的标识符将不包含开头的反斜线
  • Example#3763 - spl_classes example
  • Example#3764 - A spl_object_hash 示例
  • Example#3765 - A spl_object_id example
  • Example#3766 - SplFileInfo::__construct 示例
  • Example#3767 - SplFileInfo::getATime example
  • Example#3768 - SplFileInfo::getBasename example
  • Example#3769 - SplFileInfo::getCTime 例子
  • Example#3770 - SplFileInfo::getExtension example
  • Example#3771 - SplFileInfo::getFilename example
  • Example#3772 - SplFileInfo::getGroup example
  • Example#3773 - SplFileInfo::getLinkTarget example
  • Example#3774 - SplFileInfo::getMTime example
  • Example#3775 - SplFileInfo::getOwner example
  • Example#3776 - SplFileInfo::getPath example
  • Example#3777 - SplFileInfo::getPathInfo example
  • Example#3778 - SplFileInfo::getPathname example
  • Example#3779 - SplFileInfo::getPerms example
  • Example#3780 - SplFileInfo::getRealPath example
  • Example#3781 - SplFileInfo::getSize example
  • Example#3782 - SplFileInfo::getType example
  • Example#3783 - SplFileInfo::isDir example
  • Example#3784 - SplFileInfo::isExecutable example
  • Example#3785 - SplFileInfo::isFile example
  • Example#3786 - SplFileInfo::isLink example
  • Example#3787 - SplFileInfo::isReadable example
  • Example#3788 - SplFileInfo::isWriteable example
  • Example#3789 - SplFileInfo::openFile example
  • Example#3790 - SplFileInfo::setFileClass example
  • Example#3791 - SplFileInfo::setFileClass example
  • Example#3792 - SplFileInfo::__toString example
  • Example#3793 - SplFileObject::__construct example
  • Example#3794 - SplFileObject::current example
  • Example#3795 - SplFileObject::eof example
  • Example#3796 - SplFileObject::fflush example
  • Example#3797 - SplFileObject::fgetc example
  • Example#3798 - SplFileObject::fgetcsv example
  • Example#3799 - SplFileObject::READ_CSV example
  • Example#3800 - SplFileObject::fgets example
  • Example#3801 - SplFileObject::fgetss example
  • Example#3802 - SplFileObject::flock example
  • Example#3803 - SplFileObject::fpassthru example
  • Example#3804 - SplFileObject::fputcsv example
  • Example#3805 - SplFileObject::fread example
  • Example#3806 - SplFileObject::fscanf example
  • Example#3807 - SplFileObject::fseek example
  • Example#3808 - SplFileObject::fstat example
  • Example#3809 - SplFileObject::ftell example
  • Example#3810 - SplFileObject::ftruncate example
  • Example#3811 - SplFileObject::fwrite example
  • Example#3812 - SplFileObject::getCsvControl example
  • Example#3813 - SplFileObject::getFlags example
  • Example#3814 - SplFileObject::getMaxLineLen example
  • Example#3815 - SplFileObject::key example
  • Example#3816 - SplFileObject::key example with SplFileObject::setMaxLineLen
  • Example#3817 - SplFileObject::next example
  • Example#3818 - SplFileObject::rewind example
  • Example#3819 - SplFileObject::seek example
  • Example#3820 - SplFileObject::setCsvControl example
  • Example#3821 - SplFileObject::setFlags example
  • Example#3822 - SplFileObject::setMaxLineLen example
  • Example#3823 - SplFileObject::valid example
  • Example#3824 - SplTempFileObject example
  • Example#3825 - ArrayObject::append 例子
  • Example#3826 - ArrayObject::asort example
  • Example#3827 - ArrayObject::__construct example
  • Example#3828 - ArrayObject::count 例子
  • Example#3829 - ArrayObject::exchangeArray example
  • Example#3830 - ArrayObject::getArrayCopy example
  • Example#3831 - ArrayObject::getFlags example
  • Example#3832 - ArrayObject::getIterator example
  • Example#3833 - ArrayObject::getIteratorClass example
  • Example#3834 - ArrayObject::ksort example
  • Example#3835 - ArrayObject::natcasesort example
  • Example#3836 - ArrayObject::natsort example
  • Example#3837 - ArrayObject::offsetExists example
  • Example#3838 - ArrayObject::offsetGet example
  • Example#3839 - ArrayObject::offsetSet 例子
  • Example#3840 - ArrayObject::offsetUnset example
  • Example#3841 - ArrayObject::serialize example
  • Example#3842 - ArrayObject::setFlags example
  • Example#3843 - ArrayObject::setIteratorClass example
  • Example#3844 - ArrayObject::uasort example
  • Example#3845 - ArrayObject::uksort example
  • Example#3846 - 使用 file_get_contents 从多个来源检索数据
  • Example#3847 - 向 https 服务器发出 POST 请求
  • Example#3848 - 将数据写入压缩文件
  • Example#3849 - 用于读写全局变量的流
  • Example#3850 - Listing files from tar archives
  • Example#3851 - stream_bucket_prepend examples
  • Example#3852 - 使用 stream_context_create
  • Example#3853 - Using stream_context_get_default
  • Example#3854 - stream_context_get_options 的例子
  • Example#3855 - stream_context_get_params example
  • Example#3856 - stream_context_set_default example
  • Example#3857 - stream_context_set_options example
  • Example#3858 - A stream_copy_to_stream example
  • Example#3859 - Controlling where filters are applied
  • Example#3860 - Filter for capitalizing characters on foo-bar.txt stream
  • Example#3861 - Registering a generic filter class to match multiple filter names.
  • Example#3862 - 动态地重新过滤一个资源流
  • Example#3863 - stream_get_contents 例子
  • Example#3864 - 使用 stream_get_filters
  • Example#3865 - stream_get_meta_data 示例，fopen 和 http 一起使用
  • Example#3866 - stream_get_meta_data 示例，stream_socket_client 和 https 一起使用
  • Example#3867 - 使用 stream_get_transports
  • Example#3868 - stream_get_wrappers 例子
  • Example#3869 - 检查一个流类型是否存在
  • Example#3870 - stream_is_local example
  • Example#3871 - stream_isatty example
  • Example#3872 - stream_notification_callback example
  • Example#3873 - Simple progressbar for commandline download client
  • Example#3874 - stream_resolve_include_path example
  • Example#3875 - stream_select Example
  • Example#3876 - stream_set_timeout example
  • Example#3877 - stream_set_write_buffer example
  • Example#3878 - stream_socket_client example
  • Example#3879 - Using UDP connection
  • Example#3880 - stream_socket_enable_crypto example
  • Example#3881 - stream_socket_pair 例子
  • Example#3882 - stream_socket_recvfrom example
  • Example#3883 - stream_socket_sendto Example
  • Example#3884 - 使用 TCP 服务器套接字
  • Example#3885 - 使用 UDP 服务器套接字
  • Example#3886 - A stream_socket_shutdown example
  • Example#3887 - 如何注册一个 stream wrapper
  • Example#3888 - Basic Tidy usage
  • Example#3889 - tidy::getBody example
  • Example#3890 - tidy::cleanrepair example
  • Example#3891 - tidy::__construct example
  • Example#3892 - tidy::diagnose example
  • Example#3893 - tidy_get_error_buffer example
  • Example#3894 - tidy::getConfig example
  • Example#3895 - tidy_getopt example
  • Example#3896 - Print all options along with their documentation and default value
  • Example#3897 - tidy::getStatus example
  • Example#3898 - tidy::head example
  • Example#3899 - tidy::html example
  • Example#3900 - tidy::parseFile example
  • Example#3901 - tidy::parseString example
  • Example#3902 - tidy::repairFile example
  • Example#3903 - tidy::repairString example
  • Example#3904 - tidy::root example
  • Example#3905 - tidyNode::getParent example
  • Example#3906 - tidyNode::hasChildren example
  • Example#3907 - tidyNode::hasSiblings example
  • Example#3908 - Extract ASP code from a mixed HTML document
  • Example#3909 - Extract comments from a mixed HTML document
  • Example#3910 - Extract HTML code from a mixed HTML document
  • Example#3911 - Extract JSTE code from a mixed HTML document
  • Example#3912 - Extract PHP code from a mixed HTML document
  • Example#3913 - Extract text from a mixed HTML document
  • Example#3914 - ob_tidyhandler example
  • Example#3915 - tidy_access_count example
  • Example#3916 - tidy_config_count example
  • Example#3917 - tidy_error_count example
  • Example#3918 - tidy_get_output example
  • Example#3919 - tidy_warning_count example
  • Example#3920 - 使用 tokenizer 去除注释
  • Example#3921 - PhpToken::getTokenName example
  • Example#3922 - PhpToken::is example
  • Example#3923 - Usage with array
  • Example#3924 - PhpToken::isIgnorable example
  • Example#3925 - PhpToken::__toString example
  • Example#3926 - PhpToken::tokenize example
  • Example#3927 - Extending PhpToken
  • Example#3928 - token_get_all 示例
  • Example#3929 - token_get_all 错误用法示例
  • Example#3930 - token_get_all 在类上使用关键词示例
  • Example#3931 - token_name 示例
  • Example#3932 - base64_decode 示例
  • Example#3933 - base64_encode 示例
  • Example#3934 - get_headers 例子
  • Example#3935 - get_headers 使用 HEAD 示例
  • Example#3936 - get_meta_tags 解析了什么
  • Example#3937 - get_meta_tags 返回了什么
  • Example#3938 - http_build_query 使用示例
  • Example#3939 - http_build_query 使用数字下标的元素
  • Example#3940 - http_build_query 使用复杂的数组
  • Example#3941 - http_build_query 使用对象
  • Example#3942 - parse_url 例子
  • Example#3943 - parse_url 解析丢失协议的例子
  • Example#3944 - rawurldecode 示例
  • Example#3945 - 在 FTP URL 里包含一个密码
  • Example#3946 - rawurlencode 示例 2
  • Example#3947 - urldecode 示例
  • Example#3948 - urlencode 例子
  • Example#3949 - urlencode 与 htmlentities 例子
  • Example#3950 - Basic Javascript execution
  • Example#3951 - Yaml 范例
  • Example#3952 - Parse callback example
  • Example#3953 - Emit callback example
  • Example#3954 - yaml_emit example
  • Example#3955 - yaml_parse example
  • Example#3956 - 一个典型的应用目录结构
  • Example#3957 - 入口文件
  • Example#3958 - 重写规则
  • Example#3959 - 应用配置文件
  • Example#3960 - 默认控制器
  • Example#3961 - 默认视图文件
  • Example#3962 - 运行应用
  • Example#3963 - PHP 数组示例
  • Example#3964 - ini 文件示例
  • Example#3965 - Bootstrap 示例
  • Example#3966 - Yaf_Application::bootstrap 示例
  • Example#3967 - Yaf_Application::clearLastError 示例
  • Example#3968 - A ini config file example
  • Example#3969 - Yaf_Application::__construct 示例
  • Example#3970 - Yaf_Application::__construct 示例
  • Example#3971 - Yaf_Application::environ 示例
  • Example#3972 - Yaf_Application::execute 示例
  • Example#3973 - Yaf_Application::getConfig 示例
  • Example#3974 - Yaf_Application::getDispatcher 示例
  • Example#3975 - Yaf_Application::getLastErrorMsg 示例
  • Example#3976 - Yaf_Application::getLastErrorNo 示例
  • Example#3977 - Yaf_Application::getModules 示例
  • Example#3978 - Bootstrap 示例
  • Example#3979 - Yaf_Dispatcher::autoRender 示例
  • Example#3980 - Yaf_Dispatcher::catchException 示例
  • Example#3981 - Yaf_Dispatcher::registerPlugin 示例
  • Example#3982 - 自定义视图引擎示例
  • Example#3983 - Yaf_Dispatcher::setView 示例
  • Example#3984 - Yaf_Dispatcher::throwexception 示例
  • Example#3985 - Yaf_Dispatcher::throwexception 示例
  • Example#3986 - Yaf_Config_Ini 示例
  • Example#3987 - 在单独的文件中定义 action
  • Example#3988 - Dummy_action.php
  • Example#3989 - Yaf_Controller_Abstract::forward 示例
  • Example#3990 - Yaf_Action_Abstract::execute 示例
  • Example#3991 - Yaf_Action_Abstract::execute 示例
  • Example#3992 - Yaf_View_Simple::assign 示例
  • Example#3993 - templateexample
  • Example#3994 - Yaf_View_Simple::assignRef 示例
  • Example#3995 - templateexample
  • Example#3996 - Yaf_View_Simple::clear 示例
  • Example#3997 - Yaf_View_Simple::__constructor 示例
  • Example#3998 - Yaf_View_Simple::__set 示例
  • Example#3999 - Config example
  • Example#4000 - 注册本地命名空间
  • Example#4001 - 加载类示例
  • Example#4002 - 加载命名空间类示例
  • Example#4003 - MVC 类加载示例
  • Example#4004 - MVC 类区别
  • Example#4005 - MVC 加载示例
  • Example#4006 - Yaf_Loader::registerNamespaceexample
  • Example#4007 - Yaf_Loader::registerLocalNamespace 示例
  • Example#4008 - Yaf_Loader::registerNamespaceexample
  • Example#4009 - 插件示例
  • Example#4010 - Yaf_Plugin_Abstract::routerShutdown 示例
  • Example#4011 - Yaf_Response_Abstract::appendBody 示例
  • Example#4012 - Yaf_Response_Abstract::getBody 示例
  • Example#4013 - Yaf_Response_Abstract::prependBody 示例
  • Example#4014 - Yaf_Response_Abstract::response 示例
  • Example#4015 - Yaf_Response_Abstract::setBody 示例
  • Example#4016 - Yaf_Route_Map::assemble 示例
  • Example#4017 - Yaf_Route_Map 示例
  • Example#4018 - Yaf_Route_Map 示例
  • Example#4019 - Yaf_Route_Map 示例
  • Example#4020 - Yaf_Route_Regex::assemble 示例
  • Example#4021 - Yaf_Route_Regex 示例
  • Example#4022 - Yaf_Route_Regex（从 2.3.0 起）示例
  • Example#4023 - Yaf_Route_Regex 和命名捕获组（从 2.3.0 起）示例
  • Example#4024 - Yaf_Route_Regex 示例
  • Example#4025 - Yaf_Route_Rewrite::assemble 示例
  • Example#4026 - Yaf_Route_Rewrite 示例
  • Example#4027 - Yaf_Route_Rewrite 示例
  • Example#4028 - Yaf_Route_Rewrite（自 2.3.0 起）示例
  • Example#4029 - Apache 重写规则
  • Example#4030 - Apache 重写规则
  • Example#4031 - Lighttpd 重写规则
  • Example#4032 - Nginx 重写规则
  • Example#4033 - Yaf_Route_Static（默认路由）示例
  • Example#4034 - application.ini 示例
  • Example#4035 - Yaf_Dispatcher::autoConfig 示例
  • Example#4036 - Yaf_Dispatcher::autoRender 示例
  • Example#4037 - 注册一些路由到 Bootstrap
  • Example#4038 - plugin Dummy.php (under application.directory/plugins)
  • Example#4039 - Yaf_Route_Simple::assemble 示例
  • Example#4040 - Yaf_Route_Simple::route 示例
  • Example#4041 - Yaf_Route_Simple::routeexample
  • Example#4042 - Yaf_Route_Static::assemble 示例
  • Example#4043 - Yaf_Route_Static::routeexample
  • Example#4044 - Yaf_Route_Supervar::assemble 示例
  • Example#4045 - Yaf_Route_Supervar 示例
  • Example#4046 - INI example
  • Example#4047 - INI sections example
  • Example#4048 - INIexample
  • Example#4049 - Taintexample
  • Example#4050 - Vector
  • Example#4051 - Map
  • Example#4052 - Ds\Collection::clear example
  • Example#4053 - Ds\Collection::copy example
  • Example#4054 - Ds\Collection::isEmpty example
  • Example#4055 - Ds\Collection::toArray example
  • Example#4056 - Ds\Hashable::hash example
  • Example#4057 - Ds\Sequence::allocate example
  • Example#4058 - Ds\Sequence::apply example
  • Example#4059 - Ds\Sequence::capacity example
  • Example#4060 - Ds\Sequence::contains example
  • Example#4061 - Ds\Sequence::filter example using callback function
  • Example#4062 - Ds\Sequence::filter example without a callback function
  • Example#4063 - Ds\Sequence::find example
  • Example#4064 - Ds\Sequence::first example
  • Example#4065 - Ds\Sequence::get example
  • Example#4066 - Ds\Sequence::get example using array syntax
  • Example#4067 - Ds\Sequence::insert example
  • Example#4068 - Ds\Sequence::join example using a separator string
  • Example#4069 - Ds\Sequence::join example without a separator string
  • Example#4070 - Ds\Sequence::last example
  • Example#4071 - Ds\Sequence::map example
  • Example#4072 - Ds\Sequence::merge example
  • Example#4073 - Ds\Sequence::pop example
  • Example#4074 - Ds\Sequence::push example
  • Example#4075 - Ds\Sequence::reduce with initial value example
  • Example#4076 - Ds\Sequence::reduce without an initial value example
  • Example#4077 - Ds\Sequence::remove example
  • Example#4078 - Ds\Sequence::reverse example
  • Example#4079 - Ds\Sequence::reversed example
  • Example#4080 - Ds\Sequence::rotate example
  • Example#4081 - Ds\Sequence::set example
  • Example#4082 - Ds\Sequence::set example using array syntax
  • Example#4083 - Ds\Sequence::shift example
  • Example#4084 - Ds\Sequence::slice example
  • Example#4085 - Ds\Sequence::sort example
  • Example#4086 - Ds\Sequence::sort example using a comparator
  • Example#4087 - Ds\Sequence::sorted example
  • Example#4088 - Ds\Sequence::sorted example using a comparator
  • Example#4089 - Ds\Sequence::sum integer example
  • Example#4090 - Ds\Sequence::sum float example
  • Example#4091 - Ds\Sequence::unshift example
  • Example#4092 - Ds\Vector::allocate example
  • Example#4093 - Ds\Vector::apply example
  • Example#4094 - Ds\Vector::capacity example
  • Example#4095 - Ds\Vector::clear example
  • Example#4096 - Ds\Vector::__construct example
  • Example#4097 - Ds\Vector::contains example
  • Example#4098 - Ds\Vector::copy example
  • Example#4099 - Ds\Vector::filter example using callback function
  • Example#4100 - Ds\Vector::filter example without a callback function
  • Example#4101 - Ds\Vector::find example
  • Example#4102 - Ds\Vector::first example
  • Example#4103 - Ds\Vector::get example
  • Example#4104 - Ds\Vector::get example using array syntax
  • Example#4105 - Ds\Vector::insert example
  • Example#4106 - Ds\Vector::isEmpty example
  • Example#4107 - Ds\Vector::join example using a separator string
  • Example#4108 - Ds\Vector::join example without a separator string
  • Example#4109 - Ds\Vector::last example
  • Example#4110 - Ds\Vector::map example
  • Example#4111 - Ds\Vector::merge example
  • Example#4112 - Ds\Vector::pop example
  • Example#4113 - Ds\Vector::push example
  • Example#4114 - Ds\Vector::reduce with initial value example
  • Example#4115 - Ds\Vector::reduce without an initial value example
  • Example#4116 - Ds\Vector::remove example
  • Example#4117 - Ds\Vector::reverse example
  • Example#4118 - Ds\Vector::reversed example
  • Example#4119 - Ds\Vector::rotate example
  • Example#4120 - Ds\Vector::set example
  • Example#4121 - Ds\Vector::set example using array syntax
  • Example#4122 - Ds\Vector::shift example
  • Example#4123 - Ds\Vector::slice example
  • Example#4124 - Ds\Vector::sort example
  • Example#4125 - Ds\Vector::sort example using a comparator
  • Example#4126 - Ds\Vector::sorted example
  • Example#4127 - Ds\Vector::sorted example using a comparator
  • Example#4128 - Ds\Vector::sum integer example
  • Example#4129 - Ds\Vector::sum float example
  • Example#4130 - Ds\Vector::toArray example
  • Example#4131 - Ds\Vector::unshift example
  • Example#4132 - Ds\Deque::allocate example
  • Example#4133 - Ds\Deque::apply example
  • Example#4134 - Ds\Deque::capacity example
  • Example#4135 - Ds\Deque::clear example
  • Example#4136 - Ds\Deque::__construct example
  • Example#4137 - Ds\Deque::contains example
  • Example#4138 - Ds\Deque::copy example
  • Example#4139 - Ds\Deque::filter example using callback function
  • Example#4140 - Ds\Deque::filter example without a callback function
  • Example#4141 - Ds\Deque::find example
  • Example#4142 - Ds\Deque::first example
  • Example#4143 - Ds\Deque::get example
  • Example#4144 - Ds\Deque::get example using array syntax
  • Example#4145 - Ds\Deque::insert example
  • Example#4146 - Ds\Deque::isEmpty example
  • Example#4147 - Ds\Deque::join example using a separator string
  • Example#4148 - Ds\Deque::join example without a separator string
  • Example#4149 - Ds\Deque::last example
  • Example#4150 - Ds\Deque::map example
  • Example#4151 - Ds\Deque::merge example
  • Example#4152 - Ds\Deque::pop example
  • Example#4153 - Ds\Deque::push example
  • Example#4154 - Ds\Deque::reduce with initial value example
  • Example#4155 - Ds\Deque::reduce without an initial value example
  • Example#4156 - Ds\Deque::remove example
  • Example#4157 - Ds\Deque::reverse example
  • Example#4158 - Ds\Deque::reversed example
  • Example#4159 - Ds\Deque::rotate example
  • Example#4160 - Ds\Deque::set example
  • Example#4161 - Ds\Deque::set example using array syntax
  • Example#4162 - Ds\Deque::shift example
  • Example#4163 - Ds\Deque::slice example
  • Example#4164 - Ds\Deque::sort example
  • Example#4165 - Ds\Deque::sort example using a comparator
  • Example#4166 - Ds\Deque::sorted example
  • Example#4167 - Ds\Deque::sorted example using a comparator
  • Example#4168 - Ds\Deque::sum integer example
  • Example#4169 - Ds\Deque::sum float example
  • Example#4170 - Ds\Deque::toArray example
  • Example#4171 - Ds\Deque::unshift example
  • Example#4172 - Ds\Map::allocate example
  • Example#4173 - Ds\Map::apply example
  • Example#4174 - Ds\Map::capacity example
  • Example#4175 - Ds\Map::clear example
  • Example#4176 - Ds\Map::__construct example
  • Example#4177 - Ds\Map::copy example
  • Example#4178 - Ds\Map::diff example
  • Example#4179 - Ds\Map::filter example using callback function
  • Example#4180 - Ds\Map::filter example without a callback function
  • Example#4181 - Ds\Map::first example
  • Example#4182 - Ds\Map::get example
  • Example#4183 - Ds\Map::get example using array syntax
  • Example#4184 - Ds\Map::hasKey example
  • Example#4185 - Ds\Map::hasValue example
  • Example#4186 - Ds\Map::intersect example
  • Example#4187 - Ds\Map::isEmpty example
  • Example#4188 - Ds\Map::keys example
  • Example#4189 - Ds\Map::ksort example
  • Example#4190 - Ds\Map::ksort example using a comparator
  • Example#4191 - Ds\Map::ksorted example
  • Example#4192 - Ds\Map::ksorted example using a comparator
  • Example#4193 - Ds\Map::last example
  • Example#4194 - Ds\Map::map example
  • Example#4195 - Ds\Map::merge example
  • Example#4196 - Ds\Map::pairs example
  • Example#4197 - Ds\Map::put example
  • Example#4198 - Ds\Map::put example using objects as keys
  • Example#4199 - Ds\Map::putAll example
  • Example#4200 - Ds\Map::reduce with initial value example
  • Example#4201 - Ds\Map::reduce without an initial value example
  • Example#4202 - Ds\Map::remove example
  • Example#4203 - Ds\Map::reverse example
  • Example#4204 - Ds\Map::reversed example
  • Example#4205 - Ds\Map::skip example
  • Example#4206 - Ds\Map::slice example
  • Example#4207 - Ds\Map::sort example
  • Example#4208 - Ds\Map::sort example using a comparator
  • Example#4209 - Ds\Map::sort example
  • Example#4210 - Ds\Map::sort example using a comparator
  • Example#4211 - Ds\Map::sum integer example
  • Example#4212 - Ds\Map::sum float example
  • Example#4213 - Ds\Map::toArray example
  • Example#4214 - Ds\Map::union example
  • Example#4215 - Ds\Map::values example
  • Example#4216 - Ds\Map::xor example
  • Example#4217 - Ds\Pair::clear example
  • Example#4218 - Ds\Pair::copy example
  • Example#4219 - Ds\Pair::isEmpty example
  • Example#4220 - Ds\Pair::toArray example
  • Example#4221 - Ds\Set::add example using integers
  • Example#4222 - Ds\Set::add example using objects
  • Example#4223 - Ds\Set::allocate example
  • Example#4224 - Ds\Set::capacity example
  • Example#4225 - Ds\Set::clear example
  • Example#4226 - Ds\Set::__construct example
  • Example#4227 - Ds\Set::contains example
  • Example#4228 - Ds\Set::copy example
  • Example#4229 - Ds\Set::diff example
  • Example#4230 - Ds\Set::filter example using callback function
  • Example#4231 - Ds\Set::filter example without a callback function
  • Example#4232 - Ds\Set::first example
  • Example#4233 - Ds\Set::get example
  • Example#4234 - Ds\Set::get example using array syntax
  • Example#4235 - Ds\Set::intersect example
  • Example#4236 - Ds\Set::isEmpty example
  • Example#4237 - Ds\Set::join example using a separator string
  • Example#4238 - Ds\Set::join example without a separator string
  • Example#4239 - Ds\Set::last example
  • Example#4240 - Ds\Set::merge example
  • Example#4241 - Ds\Set::reduce with initial value example
  • Example#4242 - Ds\Set::reduce without an initial value example
  • Example#4243 - Ds\Set::remove example
  • Example#4244 - Ds\Set::reverse example
  • Example#4245 - Ds\Set::reversed example
  • Example#4246 - Ds\Set::slice example
  • Example#4247 - Ds\Set::sort example
  • Example#4248 - Ds\Set::sort example using a comparator
  • Example#4249 - Ds\Set::sorted example
  • Example#4250 - Ds\Set::sorted example using a comparator
  • Example#4251 - Ds\Set::sum integer example
  • Example#4252 - Ds\Set::sum float example
  • Example#4253 - Ds\Set::toArray example
  • Example#4254 - Ds\Set::union example
  • Example#4255 - Ds\Set::xor example
  • Example#4256 - Ds\Stack::clear example
  • Example#4257 - Ds\Stack::__construct example
  • Example#4258 - Ds\Stack::copy example
  • Example#4259 - Ds\Stack::isEmpty example
  • Example#4260 - Ds\Stack::peek example
  • Example#4261 - Ds\Stack::pop example
  • Example#4262 - Ds\Stack::push example
  • Example#4263 - Ds\Stack::toArray example
  • Example#4264 - Ds\Queue::allocate example
  • Example#4265 - Ds\Queue::capacity example
  • Example#4266 - Ds\Queue::clear example
  • Example#4267 - Ds\Queue::__construct example
  • Example#4268 - Ds\Queue::copy example
  • Example#4269 - Ds\Queue::isEmpty example
  • Example#4270 - Ds\Queue::peek example
  • Example#4271 - Ds\Queue::pop example
  • Example#4272 - Ds\Queue::push example
  • Example#4273 - Ds\Queue::toArray example
  • Example#4274 - Ds\PriorityQueue::allocate example
  • Example#4275 - Ds\PriorityQueue::capacity example
  • Example#4276 - Ds\PriorityQueue::clear example
  • Example#4277 - Ds\PriorityQueue::__construct example
  • Example#4278 - Ds\PriorityQueue::copy example
  • Example#4279 - Ds\PriorityQueue::isEmpty example
  • Example#4280 - Ds\PriorityQueue::peek example
  • Example#4281 - Ds\PriorityQueue::pop example
  • Example#4282 - Ds\PriorityQueue::push example
  • Example#4283 - Ds\PriorityQueue::toArray example
  • Example#4284 - var_representation Examples
  • Example#4285 - Escaping control characters
  • Example#4286 - Exporting stdClass
  • Example#4287 - Exporting classes
  • Example#4288 - Using __set_state()
  • Example#4289 - 使用 PHP cURL 模块获取 example.com 的主页
  • Example#4290 - 初始化新 cURL 会话并获取网页
  • Example#4291 - 复制 cURL 句柄
  • Example#4292 - curl_errno 示例
  • Example#4293 - curl_error 示例
  • Example#4294 - curl_escape 示例
  • Example#4295 - 获取网页
  • Example#4296 - curl_getinfo 示例
  • Example#4297 - 使用 option 参数的 curl_getinfo 示例
  • Example#4298 - 初始化新 cURL 会话并获取网页
  • Example#4299 - curl_multi_add_handle 示例
  • Example#4300 - curl_multi_close 示例
  • Example#4301 - curl_multi_exec 示例
  • Example#4302 - curl_multi_info_read 示例
  • Example#4303 - curl_multi_init 示例
  • Example#4304 - curl_multi_strerror 函数的范例：
  • Example#4305 - curl_reset 示例
  • Example#4306 - 初始化一个新的cURL会话并获取一个网页
  • Example#4307 - 初始化新的 cURL 会话并抓取 web 页面
  • Example#4308 - curl_share_setopt 示例
  • Example#4309 - curl_share_init 示例
  • Example#4310 - curl_share_setopt 示例
  • Example#4311 - curl_errno 示例
  • Example#4312 - curl_escape 示例
  • Example#4313 - curl_upkeep example
  • Example#4314 - curl_version 示例
  • Example#4315 - CURLFile::__construct 示例
  • Example#4316 - CURLFile::__construct 上传多文件示例
  • Example#4317 - CURLStringFile::__construct 示例
  • Example#4318 - 简单的 HTTP 客户端
  • Example#4319 - 使用异步 DNS 解析器的 HTTP 客户端
  • Example#4320 - Echo 服务器
  • Example#4321 - SSL echo 服务器
  • Example#4322 - 信号处理程序
  • Example#4323 - 使用 libevent 的循环处理 `eio` 扩展的请求
  • Example#4324 - 杂项
  • Example#4325 - 简单的 HTTP 服务器
  • Example#4326 - 简单的 HTTPS 服务器
  • Example#4327 - OpenSSL 连接
  • Example#4328 - EventHttpConnection::makeRequest 示例
  • Example#4329 - 基于 UNIX 域套接字的连接监听器
  • Example#4330 - 简单 SMTP 服务器
  • Example#4331 - Handling SIGTERM signal
  • Example#4332 - Adding a custom signal
  • Example#4333 - Adding a timer
  • Example#4334 - EventBase::getFeatures example
  • Example#4335 - EventBase::getMethod example
  • Example#4336 - EventBuffer::search example
  • Example#4337 - EventBufferEvent::connect example
  • Example#4338 - Connect to UNIX domain socket which presumably is served by a server, read response from the server and output it to the console
  • Example#4339 - EventBufferEvent::connectHost example
  • Example#4340 - Buffer event's read callback
  • Example#4341 - EventBufferEvent::getOutput example
  • Example#4342 - EventBufferEvent::sslError example
  • Example#4343 - 简单 SMTP 服务器
  • Example#4344 - EventConfig::avoidMethod 示例
  • Example#4345 - EventConfig::__construct 示例
  • Example#4346 - EventConfig::requireFeatures 示例
  • Example#4347 - EventHttp::accept example
  • Example#4348 - EventHttp::addServerAlias example
  • Example#4349 - EventHttp::bind example
  • Example#4350 - Simple HTTP server
  • Example#4351 - EventHttp::setCallback example
  • Example#4352 - EventHttp::setDefaultCallback example
  • Example#4353 - EventHttpConnection::makeRequest example
  • Example#4354 - EventHttpConnection::setCloseCallback example
  • Example#4355 - EventHttpRequest::__construct example
  • Example#4356 - EventHttpRequest::sendError example
  • Example#4357 - EventListener::__construct example
  • Example#4358 - EventSslContext::__construct example
  • Example#4359 - FTP 示例
  • Example#4360 - ftp_alloc 示例
  • Example#4361 - ftp_cdup 例子
  • Example#4362 - ftp_chdir 例子
  • Example#4363 - ftp_chmod 示例
  • Example#4364 - ftp_close 示例
  • Example#4365 - ftp_connect 示例
  • Example#4366 - ftp_delete 示例
  • Example#4367 - ftp_exec 示例
  • Example#4368 - ftp_fget 示例
  • Example#4369 - ftp_fput 示例
  • Example#4370 - ftp_get 示例
  • Example#4371 - ftp_get_option 示例
  • Example#4372 - ftp_login 示例
  • Example#4373 - ftp_mdtm 示例
  • Example#4374 - ftp_mkdir 示例
  • Example#4375 - ftp_mlsd 示例
  • Example#4376 - ftp_nb_continue 示例
  • Example#4377 - ftp_nb_fget 函数示例
  • Example#4378 - ftp_nb_fput 函数示例
  • Example#4379 - ftp_nb_get 示例
  • Example#4380 - 通过 ftp_nb_get 恢复下载一个文件
  • Example#4381 - 使用 ftp_nb_get 从指定位置恢复下载文件
  • Example#4382 - ftp_nb_put 示例
  • Example#4383 - 使用 ftp_nb_put 来续传文件
  • Example#4384 - ftp_nlist 示例
  • Example#4385 - ftp_pasv 示例
  • Example#4386 - ftp_put 实例
  • Example#4387 - ftp_pwd 示例
  • Example#4388 - 使用 ftp_raw 登录远程 FTP 服务器
  • Example#4389 - ftp_rawlist 示例
  • Example#4390 - ftp_rename 例子
  • Example#4391 - ftp_rmdir 示例
  • Example#4392 - ftp_set_option 示例
  • Example#4393 - 向 FTP 服务器发送 SITE 命令
  • Example#4394 - ftp_size 示例
  • Example#4395 - ftp_ssl_connect 函数示例
  • Example#4396 - ftp_systype 示例
  • Example#4397 - Basic Gearman client and worker
  • Example#4398 - Basic Gearman client and worker, background
  • Example#4399 - Basic Gearman client and worker, submitting tasks
  • Example#4400 - Adding two job servers
  • Example#4401 - Add two job servers
  • Example#4402 - Basic submission of two tasks
  • Example#4403 - Basic submission of two tasks with passing application context
  • Example#4404 - Two tasks, one background and one not
  • Example#4405 - A high priority task along with two normal tasks
  • Example#4406 - A low priority task along with two normal tasks
  • Example#4407 - Monitor completion of multiple background tasks
  • Example#4408 - Simple job submission with immediate return
  • Example#4409 - Submitting a job and retrieving incremental status
  • Example#4410 - Submit and monitor a background job
  • Example#4411 - Simple job submission with immediate return
  • Example#4412 - Submitting a job and retrieving incremental status
  • Example#4413 - Get the status of a long running job
  • Example#4414 - Monitor the status of a long running background job
  • Example#4415 - Simple worker making use of extra application context data
  • Example#4416 - Add alternate Gearman servers
  • Example#4417 - Add two job servers
  • Example#4418 - GearmanWorker::setId example
  • Example#4419 - A simple worker with a 5 second timeout
  • Example#4420 - Running worker in non-blocking mode
  • Example#4421 - GearmanWorker::work example
  • Example#4422 - Testing support for paged result control
  • Example#4423 - LDAP search example
  • Example#4424 - Bind with policy information
  • Example#4425 - Modify description only if it's not empty
  • Example#4426 - Read some values before deletion
  • Example#4427 - Delete a reference
  • Example#4428 - Use pagination for a search
  • Example#4429 - Complete example with authenticated bind
  • Example#4430 - 使用 LDAP Bind
  • Example#4431 - Using LDAP Bind Anonymously
  • Example#4432 - Complete example of password check
  • Example#4433 - Example of connecting to LDAP server.
  • Example#4434 - Example of connecting securely to LDAP server.
  • Example#4435 - LDAP pagination
  • Example#4436 - LDAP pagination
  • Example#4437 - ldap_count_entries example
  • Example#4438 - Enumerating all LDAP error messages
  • Example#4439 - Generating and catching an error
  • Example#4440 - Searching for an email address
  • Example#4441 - Whoami extended operation
  • Example#4442 - PASSWD extended operation
  • Example#4443 - Show the list of attributes held for a particular directory entry
  • Example#4444 - Check protocol version
  • Example#4445 - List all values of the "mail" attribute for a directory entry
  • Example#4446 - Produce a list of all organizational units of an organization
  • Example#4447 - Add a telephone number to a contact
  • Example#4448 - Rename a user
  • Example#4449 - Add two e-mail addresses to a user
  • Example#4450 - Change a user's password
  • Example#4451 - Change a user's password (Active Directory)
  • Example#4452 - ldap_parse_result example
  • Example#4453 - LDAP search
  • Example#4454 - Set protocol version
  • Example#4455 - Set server controls
  • Example#4456 - LDAP sort
  • Example#4457 - memcache 扩展概述示例
  • Example#4458 - 使用 memcache session 处理程序
  • Example#4459 - Memcache::add示例
  • Example#4460 - Memcache::addServer 示例
  • Example#4461 - Memcache::close示例
  • Example#4462 - Memcache::connect example
  • Example#4463 - Memcache::decrement example
  • Example#4464 - Memcache::delete 示例
  • Example#4465 - Memcache::flush示例
  • Example#4466 - Memcache::get 示例
  • Example#4467 - Memcache::getExtendedStats 示例
  • Example#4468 - Memcache::getServerStatus 示例
  • Example#4469 - Memcache::getVersion 示例
  • Example#4470 - Memcache::increment 示例
  • Example#4471 - Memcache::pconnect 示例
  • Example#4472 - Memcache::replace 示例
  • Example#4473 - Memcache::set 示例
  • Example#4474 - Memcache::set 示例
  • Example#4475 - Memcache::setCompressThreshold 示例
  • Example#4476 - Memcache::setServerParams 示例
  • Example#4477 - 结果回调示例
  • Example#4478 - 通读回调示例
  • Example#4479 - Memcached::addServer 示例
  • Example#4480 - Memcached::addServers 示例
  • Example#4481 - Memcached::append 示例
  • Example#4482 - Memcached::cas 示例
  • Example#4483 - 创建 Memcached 对象
  • Example#4484 - Memcached::decrement 示例
  • Example#4485 - Memcached::delete 示例
  • Example#4486 - Memcached::fetch 示例
  • Example#4487 - Memcached::getDelayed 示例
  • Example#4488 - Memcached::flush 示例
  • Example#4489 - Memcached::get 示例
  • Example#4490 - Memcached::get 示例
  • Example#4491 - Memcached::getDelayed 示例
  • Example#4492 - Memcached::getMulti 的 Memcached v3 示例
  • Example#4493 - Memcached::getMulti 的 Memcached v1 和 v2 示例
  • Example#4494 - Memcached::GET_PRESERVE_ORDER 的 Memcached v3 示例
  • Example#4495 - Memcached::GET_PRESERVE_ORDER 的 Memcached v1 和 v2 示例
  • Example#4496 - 获取 Memcached 选项
  • Example#4497 - Memcached::getResultCode 示例
  • Example#4498 - Memcached::getResultMessage 示例
  • Example#4499 - Memcached::getServerByKey 示例
  • Example#4500 - Memcached::getServerList 示例
  • Example#4501 - Memcached::getStats 示例
  • Example#4502 - Memcached::getVersion 示例
  • Example#4503 - Memcached::increment 示例
  • Example#4504 - Memcached::prepend 示例
  • Example#4505 - Memcached::set 示例
  • Example#4506 - Memcached::setByKey 示例
  • Example#4507 - Memcached::setMulti 示例
  • Example#4508 - 设置一个 memcached 选项值
  • Example#4509 - Setting Memcached options
  • Example#4510 - mqseries_back example
  • Example#4511 - mqseries_begin example
  • Example#4512 - mqseries_close example
  • Example#4513 - mqseries_cmit example
  • Example#4514 - mqseries_conn example
  • Example#4515 - mqseries_connx example
  • Example#4516 - mqseries_connx example using SSL connection & OCSP Responder URL
  • Example#4517 - mqseries_disc example
  • Example#4518 - mqseries_get example
  • Example#4519 - mqseries_inq example
  • Example#4520 - mqseries_open example
  • Example#4521 - mqseries_put example
  • Example#4522 - mqseries_strerror example
  • Example#4523 - 使用 dns_get_record
  • Example#4524 - 使用 dns_get_record 和 DNS_ANY
  • Example#4525 - fsockopen 示例
  • Example#4526 - 使用 UDP 连接
  • Example#4527 - gethostbyaddr 的简单例子
  • Example#4528 - 简单的 gethostbyname 例子
  • Example#4529 - gethostbynamel 例子
  • Example#4530 - 简单的 gethostname 例子
  • Example#4531 - getprotobyname example
  • Example#4532 - getservbyname 例子
  • Example#4533 - 下载对话框
  • Example#4534 - 缓存指令
  • Example#4535 - 设置一个 Cookie
  • Example#4536 - header_register_callback 例子
  • Example#4537 - 取消指定的头
  • Example#4538 - 取消之前全部指定的头
  • Example#4539 - 使用 headers_list 的例子
  • Example#4540 - 使用 headers_sent 的例子
  • Example#4541 - Web 服务器环境内使用 http_response_code
  • Example#4542 - 在 CLI 环境内使用 http_response_code
  • Example#4543 - inet_ntop Example
  • Example#4544 - inet_pton Example
  • Example#4545 - ip2long 例子
  • Example#4546 - 显示 IP 地址
  • Example#4547 - setcookie 发送示例
  • Example#4548 - setcookie 删除示例
  • Example#4549 - setcookie 和数组
  • Example#4550 - Using syslog
  • Example#4551 - Procedural usage of rrd
  • Example#4552 - OO usage of rrd
  • Example#4553 - RRDGraph::setOptions example
  • Example#4554 - Set multiple color options
  • Example#4555 - RRDUpdater::update examples
  • Example#4556 - Fetch instrumented calls
  • Example#4557 - Fetch the list of functions scoutapm will instrument
  • Example#4558 - snmp_get_quick_print 示例
  • Example#4559 - Using snmp_get_valueretrieval
  • Example#4560 - Using snmp_read_mib
  • Example#4561 - Using snmp_set_enum_print
  • Example#4562 - Using snmprealwalk
  • Example#4563 - 使用 snmp_set_quick_print
  • Example#4564 - Using snmp_set_valueretrieval
  • Example#4565 - Using snmp2_get
  • Example#4566 - Using snmp2_get_next
  • Example#4567 - Using snmp2_real_walk
  • Example#4568 - Using snmp2_set
  • Example#4569 - Using snmp2_set for setting BITS SNMP object id
  • Example#4570 - snmp2_walk Example
  • Example#4571 - Using snmp3_get
  • Example#4572 - Using snmp3_getnext
  • Example#4573 - Using snmp3_real_walk
  • Example#4574 - Using snmp3_set
  • Example#4575 - Using snmp3_set for setting BITS SNMP object id
  • Example#4576 - snmp3_walk Example
  • Example#4577 - 使用 snmpget
  • Example#4578 - Using snmpgetnext
  • Example#4579 - 使用 snmprealwalk
  • Example#4580 - 使用 snmpset
  • Example#4581 - 使用 snmpset 设置 BITS SNMP 对象 ID
  • Example#4582 - snmpwalk 示例
  • Example#4583 - snmpwalkoid 示例
  • Example#4584 - SNMP::close example
  • Example#4585 - Fetching sysLocation
  • Example#4586 - Single SNMP object
  • Example#4587 - Multiple SNMP objects
  • Example#4588 - SNMP::getErrno example
  • Example#4589 - SNMP::getError example
  • Example#4590 - Single SNMP object
  • Example#4591 - Miltiple SNMP objects
  • Example#4592 - Set single SNMP object id
  • Example#4593 - Set multiple values using single SNMP::set call
  • Example#4594 - Using SNMP::set for setting BITS SNMP object id
  • Example#4595 - SNMP::setSecurity example
  • Example#4596 - SNMP::walk example
  • Example#4597 - suffixAsKey example
  • Example#4598 - Socket 举例：简单的 TCP/IP 服务器
  • Example#4599 - Socket 举例：简单的 TCP/IP 客户端
  • Example#4600 - 使用 socket_atmark 设置源地址
  • Example#4601 - 使用 socket_bind 来设置源地址
  • Example#4602 - socket_create_pair 示例
  • Example#4603 - socket_create_pair IPC 示例
  • Example#4604 - socket_get_option 示例
  • Example#4605 - socket_import_stream 示例
  • Example#4606 - socket_last_error 示例
  • Example#4607 - socket_recv 范例
  • Example#4608 - socket_recvfrom 示例
  • Example#4609 - socket_select 使用 null
  • Example#4610 - 理解 socket_select 的返回值
  • Example#4611 - socket_select 示例
  • Example#4612 - socket_sendto 示例
  • Example#4613 - socket_set_block 示例
  • Example#4614 - socket_set_nonblock 示例
  • Example#4615 - socket_set_option 示例
  • Example#4616 - socket_strerror 示例
  • Example#4617 - Authenticating with a ssh agent
  • Example#4618 - Authentication using a public hostkey
  • Example#4619 - Retrieving a list of authentication methods
  • Example#4620 - Authenticating with a password
  • Example#4621 - Authentication using a public key
  • Example#4622 - ssh2_connect example
  • Example#4623 - Executing a command
  • Example#4624 - Opening a shell and retrieving the stderr stream associated with it
  • Example#4625 - Checking the fingerprint against a known value
  • Example#4626 - Determining what methods were negotiated
  • Example#4627 - Adding a publickey with ssh2_publickey_add
  • Example#4628 - Listing authorized keys with ssh2_publickey_list
  • Example#4629 - Downloading a file via SCP
  • Example#4630 - Uploading a file via SCP
  • Example#4631 - Opening a file via SFTP
  • Example#4632 - Changing the mode of a file on a remote server
  • Example#4633 - Stating a symbolic link via SFTP
  • Example#4634 - Creating a directory on a remote server
  • Example#4635 - Reading a symbolic link
  • Example#4636 - Resolving a pathname
  • Example#4637 - Renaming a file via sftp
  • Example#4638 - Removing a directory on a remote server
  • Example#4639 - Stating a file via SFTP
  • Example#4640 - Creating a symbolic link
  • Example#4641 - Deleting a file
  • Example#4642 - Requesting an interactive shell
  • Example#4643 - Opening a tunnel to an arbitrary host
  • Example#4644 - 面向对象风格
  • Example#4645 - 过程化风格
  • Example#4646 - stomp_connect_error example
  • Example#4647 - stomp_version example
  • Example#4648 - 面向对象风格
  • Example#4649 - 过程化风格
  • Example#4650 - 面向对象风格
  • Example#4651 - 过程化风格
  • Example#4652 - 面向对象风格
  • Example#4653 - 过程化风格
  • Example#4654 - 面向对象风格
  • Example#4655 - 过程化风格
  • Example#4656 - 面向对象风格
  • Example#4657 - 过程化风格
  • Example#4658 - 面向对象风格
  • Example#4659 - 过程化风格
  • Example#4660 - 面向对象风格
  • Example#4661 - 过程化风格
  • Example#4662 - 面向对象风格
  • Example#4663 - 过程化风格
  • Example#4664 - 面向对象风格
  • Example#4665 - 过程化风格
  • Example#4666 - Train from array
  • Example#4667 - Train from a file
  • Example#4668 - svn_add 例子
  • Example#4669 - Default authentication example
  • Example#4670 - svn_blame example
  • Example#4671 - Basic example
  • Example#4672 - Basic example
  • Example#4673 - Basic example
  • Example#4674 - Basic example
  • Example#4675 - 基本示例
  • Example#4676 - Basic example
  • Example#4677 - Diffing two revisions of a repository path
  • Example#4678 - Portably diffing two local files
  • Example#4679 - svn_export example
  • Example#4680 - Basic example
  • Example#4681 - svn_log example
  • Example#4682 - svn_ls example
  • Example#4683 - Basic example
  • Example#4684 - Basic example
  • Example#4685 - Deny all connections from localhost
  • Example#4686 - Ban an URL
  • Example#4687 - Get statistic snapshot
  • Example#4688 - Read varnish shared memory log
  • Example#4689 - VarnishAdmin::__construct example
  • Example#4690 - Parallel searching using Yaz
  • Example#4691 - CCL configuration
  • Example#4692 - CCL Parsing
  • Example#4693 - Record Update
  • Example#4694 - Array for GRS-1 record
  • Example#4695 - Working with MARCXML
  • Example#4696 - PHP function that scans titles
  • Example#4697 - Query Examples
  • Example#4698 - Sort Criterias
  • Example#4699 - A ZMQContext example
  • Example#4700 - A ZMQContext example
  • Example#4701 - A ZMQContext example
  • Example#4702 - A ZMQSocket example
  • Example#4703 - A send/recv example
  • Example#4704 - A ZMQPoll example
  • Example#4705 - zookeeper_dispatch example #1
  • Example#4706 - zookeeper_dispatch example #2
  • Example#4707 - Zookeeper::addAuth example
  • Example#4708 - Zookeeper::create example
  • Example#4709 - Zookeeper::delete example
  • Example#4710 - Zookeeper::exists example
  • Example#4711 - Zookeeper::get example
  • Example#4712 - Zookeeper::get stat example
  • Example#4713 - Zookeeper::getAcl example
  • Example#4714 - Zookeeper::getChildren example
  • Example#4715 - Zookeeper::set example
  • Example#4716 - Zookeeper::setAcl example
  • Example#4717 - Zookeeper::setDebugLevel example
  • Example#4718 - ZookeeperConfig::add example
  • Example#4719 - ZookeeperConfig::get example
  • Example#4720 - ZookeeperConfig::remove example
  • Example#4721 - ZookeeperConfig::set example
  • Example#4722 - solr_get_version 示例
  • Example#4723 - Contents of the BootStrap file
  • Example#4724 - Adding a document to the index
  • Example#4725 - Merging one document into another document
  • Example#4726 - Searching for documents - SolrObject responses
  • Example#4727 - Searching for documents - SolrDocument responses
  • Example#4728 - Simple TermsComponent example - basic
  • Example#4729 - Simple TermsComponent example - using a prefix
  • Example#4730 - Simple TermsComponent example - specifying a minimum frequency
  • Example#4731 - Simple Facet Example
  • Example#4732 - Simple Facet Example - with optional field override for mincount
  • Example#4733 - Facet Date Example
  • Example#4734 - Connecting to SSL-Enabled Server
  • Example#4735 - Collapsing a SolrQuery
  • Example#4736 - Solr Real Time Get (RTG) example SolrClient::getById
  • Example#4737 - SolrInputDocument::addChildDocument example
  • Example#4738 - SolrInputDocument::addChildDocuments example
  • Example#4739 - SolrDocument::toArray example
  • Example#4740 - SolrObject::__construct example
  • Example#4741 - SolrObject::offsetUnset example
  • Example#4742 - SolrClient::addDocument example
  • Example#4743 - SolrClient::addDocument example 2
  • Example#4744 - SolrClient::addDocuments example
  • Example#4745 - SolrClient::__construct example
  • Example#4746 - SolrQuery::deleteByQuery example
  • Example#4747 - SolrClient::getById example
  • Example#4748 - SolrClient::getByIds example
  • Example#4749 - SolrClient::ping example
  • Example#4750 - SolrClient::query example
  • Example#4751 - SolrClient::request example
  • Example#4752 - SolrClient::setResponseWriter example
  • Example#4753 - SolrParams::setParam example
  • Example#4754 - SolrQuery::addFacetField example
  • Example#4755 - SolrQuery::addFacetField example
  • Example#4756 - SolrQuery::addFilterQuery example
  • Example#4757 - SolrQuery::addGroupSortField example
  • Example#4758 - SolrQuery::collapse example
  • Example#4759 - SolrQuery::setExpand example
  • Example#4760 - SolrDisMaxQuery::addBigramPhraseField example
  • Example#4761 - SolrDisMaxQuery::addBoostQuery example
  • Example#4762 - SolrDisMaxQuery::addPhraseField example
  • Example#4763 - SolrDisMaxQuery::addQueryField example
  • Example#4764 - SolrDisMaxQuery::addTrigramPhraseField example
  • Example#4765 - SolrDisMaxQuery::addUserField example
  • Example#4766 - SolrDisMaxQuery::__construct example
  • Example#4767 - SolrDisMaxQuery::removeBigramPhraseField example
  • Example#4768 - SolrDisMaxQuery::removeBoostQuery example
  • Example#4769 - SolrDisMaxQuery::removePhraseField example
  • Example#4770 - SolrDisMaxQuery::removeQueryField example
  • Example#4771 - SolrDisMaxQuery::removeTrigramPhraseField example
  • Example#4772 - SolrDisMaxQuery::removeUserField example
  • Example#4773 - SolrDisMaxQuery::setBigramPhraseFields example
  • Example#4774 - SolrDisMaxQuery::setBigramPhraseSlop example
  • Example#4775 - SolrDisMaxQuery::setBoostFunction example
  • Example#4776 - SolrDisMaxQuery::setBoostQuery example
  • Example#4777 - SolrDisMaxQuery::setMinimumMatch example
  • Example#4778 - SolrDisMaxQuery::setPhraseFields example
  • Example#4779 - SolrDisMaxQuery::setPhraseSlop example
  • Example#4780 - SolrDisMaxQuery::setQueryAlt example
  • Example#4781 - SolrDisMaxQuery::setQueryPhraseSlop example
  • Example#4782 - SolrDisMaxQuery::setTieBreaker example
  • Example#4783 - SolrDisMaxQuery::setTrigramPhraseFields example
  • Example#4784 - SolrDisMaxQuery::setTrigramPhraseSlop example
  • Example#4785 - SolrDisMaxQuery::setUserFields example
  • Example#4786 - SolrDisMaxQuery::useDisMaxQueryParser example
  • Example#4787 - SolrDisMaxQuery::useEDisMaxQueryParser example
  • Example#4788 - SolrCollapseFunction::__construct example
  • Example#4789 - SolrCollapseFunction::setHint example
  • Example#4790 - SolrCollapseFunction::setMax example
  • Example#4791 - 用 .htaccess 禁用一个目录的 PHP 解析
  • Example#4792 - apache_get_modules 示例
  • Example#4793 - apache_get_version 示例
  • Example#4794 - apache_getenv 示例
  • Example#4795 - apache_lookup_uri 例子
  • Example#4796 - 在 PHP 与 Perl 之间传递信息
  • Example#4797 - 在 access.log 中记录值
  • Example#4798 - apache_request_headers 示例
  • Example#4799 - apache_response_headers 示例
  • Example#4800 - 使用 apache_setenv 设置一个 Apache 环境变量
  • Example#4801 - getallheaders 示例
  • Example#4802 - 在 $_SESSION 中注册变量。
  • Example#4803 - 从 $_SESSION 中反注册变量。
  • Example#4804 - 某单一用户的点击数
  • Example#4805 - 样例信息
  • Example#4806 - session_cache_expire 示例
  • Example#4807 - session_cache_limiter 示例
  • Example#4808 - session_create_id example with session_regenerate_id
  • Example#4809 - 销毁会话数据以及 $_SESSION
  • Example#4810 - session_gc example for task managers like cron
  • Example#4811 - session_gc example for user accessible script
  • Example#4812 - session_name 示例
  • Example#4813 - A session_regenerate_id 示例
  • Example#4814 - Avoiding lost session by session_regenerate_id
  • Example#4815 - 自定义会话处理程序：完整代码请参见 SessionHandlerInterface。
  • Example#4816 - page1.php
  • Example#4817 - page2.php
  • Example#4818 - 覆盖 Cookie 超时时间设定
  • Example#4819 - 读取会话之后立即关闭会话存储文件
  • Example#4820 - Using SessionHandler to add encryption to internal PHP save handlers.
  • Example#4821 - Example using SessionHandlerInterface
  • Example#4822 - Tokenize comma separated integer list
  • Example#4823 - Tokenize assign statement
  • Example#4824 - Simple calculator
  • Example#4825 - Parse words out from a sentence
  • Example#4826 - 合法模式示例
  • Example#4827 - 非法模式示例
  • Example#4828 - PCRE 模式中注释的用法
  • Example#4829 - 比较preg_filter 和preg_replace的示例
  • Example#4830 - preg_grep 示例
  • Example#4831 - preg_last_error 示例
  • Example#4832 - preg_last_error_msg example
  • Example#4833 - 查找文本字符串"php"
  • Example#4834 - 查找单词"word"
  • Example#4835 - 获取URL中的域名
  • Example#4836 - 使用命名子组
  • Example#4837 - 查找所有文本中的电话号码。
  • Example#4838 - 查找匹配的HTML标签（贪婪）
  • Example#4839 - 使用子命名组
  • Example#4840 - preg_quote示例
  • Example#4841 - 将文本中的单词替换为斜体
  • Example#4842 - 使用后向引用紧跟数值原文
  • Example#4843 - preg_replace 中使用基于索引的数组
  • Example#4844 - 替换一些值
  • Example#4845 - 剥离空白字符
  • Example#4846 - 使用参数 count
  • Example#4847 - preg_replace_callback 和 匿名函数
  • Example#4848 - preg_replace_callback示例
  • Example#4849 - preg_replace_callback 使用递归构造处理 BB 码的封装
  • Example#4850 - preg_replace_callback_array example
  • Example#4851 - preg_split示例：获取搜索字符串的部分
  • Example#4852 - 将一个字符串分隔为组成它的字符
  • Example#4853 - 分隔一个字符串并获取每部分的偏移量
  • Example#4854 - addcslashes 例子
  • Example#4855 - 一个 addslashes 例子
  • Example#4856 - bin2hex 示例
  • Example#4857 - chr 例子
  • Example#4858 - 溢出行为
  • Example#4859 - 从单个字节构建 UTF-8 字符串
  • Example#4860 - chunk_split 例子
  • Example#4861 - convert_uudecode 例子
  • Example#4862 - convert_uuencode 例子
  • Example#4863 - count_chars 示例
  • Example#4864 - 显示 crc32 校验和
  • Example#4865 - crypt 示例
  • Example#4866 - echo 示例
  • Example#4867 -
  • Example#4868 - explode 例子
  • Example#4869 - explode return examples
  • Example#4870 - limit 参数的例子
  • Example#4871 - fprintf：零填充整数
  • Example#4872 - fprintf：格式化货币
  • Example#4873 - 转换表示例
  • Example#4874 - hex2bin 例子
  • Example#4875 - Decoding HTML entities
  • Example#4876 - htmlentities 例子
  • Example#4877 - ENT_IGNORE 用法示例
  • Example#4878 - htmlspecialchars 例子
  • Example#4879 - htmlspecialchars_decode 示例
  • Example#4880 - implode 例子
  • Example#4881 - lcfirst 例子：
  • Example#4882 - levenshtein 例子：
  • Example#4883 - localeconv example
  • Example#4884 - ltrim的使用示例
  • Example#4885 - md5 示例
  • Example#4886 - md5_file 使用示例
  • Example#4887 - metaphone basic example
  • Example#4888 - Using the max_phonemes parameter
  • Example#4889 - Using the max_phonemes parameter
  • Example#4890 - money_format 例子
  • Example#4891 - nl_langinfo example
  • Example#4892 - nl2br 使用示例
  • Example#4893 - 使用 use_xhtml 生成合法的 HTML 标记
  • Example#4894 - 各种换行分隔符
  • Example#4895 - number_format 示例
  • Example#4896 - ord 示例
  • Example#4897 - 检查 UTF-8 字符串的每一个字节
  • Example#4898 - parse_str 的使用
  • Example#4899 - parse_str 名称改写
  • Example#4900 - print 示例
  • Example#4901 -
  • Example#4902 -
  • Example#4903 - printf：多种 format 格式的示例
  • Example#4904 - printf：字符串说明符
  • Example#4905 - quoted_printable_decode 示例
  • Example#4906 - quoted_printable_encode 示例
  • Example#4907 - quotemeta 示例
  • Example#4908 - rtrim 使用示例
  • Example#4909 - setlocale 示例
  • Example#4910 - Windows 的 setlocale 示例
  • Example#4911 - sha1 示例
  • Example#4912 - sha1_file 示例
  • Example#4913 - similar_text 交换参数示例
  • Example#4914 - Soundex Examples
  • Example#4915 - 参数替换
  • Example#4916 - 指定填充字符
  • Example#4917 - 位置说明符与其他说明符
  • Example#4918 - sprintf：零填充整数
  • Example#4919 - sprintf：货币格式
  • Example#4920 - sprintf：科学记数法
  • Example#4921 - sscanf 示例
  • Example#4922 - sscanf——使用可选参数
  • Example#4923 - 使用空字符串 ''
  • Example#4924 - 展示大小写区分
  • Example#4925 - Basic str_decrement example
  • Example#4926 - str_decrement example with a carry
  • Example#4927 - 使用空字符串 ''
  • Example#4928 - 展示大小写区分
  • Example#4929 - str_getcsv 示例
  • Example#4930 - 处理空字符串的 str_getcsv 示例
  • Example#4931 - Basic str_increment example
  • Example#4932 - str_increment example with a carry
  • Example#4933 - str_ireplace 示例
  • Example#4934 - str_pad 示例
  • Example#4935 - str_repeat 示例
  • Example#4936 - str_replace 基本示例
  • Example#4937 - 可能的 str_replace 替换示例
  • Example#4938 - str_rot13 示例
  • Example#4939 - str_shuffle 示例
  • Example#4940 - str_split 使用示例
  • Example#4941 - 使用空字符串 ''
  • Example#4942 - 展示大小写区分
  • Example#4943 - str_word_count 示例
  • Example#4944 - strcasecmp 示例
  • Example#4945 - strcmp 例子
  • Example#4946 - strcspn 示例
  • Example#4947 - strip_tags 示例
  • Example#4948 - stripcslashes 示例
  • Example#4949 - stripos 示例
  • Example#4950 - stripslashes 示例
  • Example#4951 - 对数组使用 stripslashes
  • Example#4952 - stristr 示例
  • Example#4953 - 测试字符串的存在与否
  • Example#4954 - 使用非字符串 needle
  • Example#4955 - strlen 示例
  • Example#4956 - strnatcasecmp 示例
  • Example#4957 - strncasecmp 示例
  • Example#4958 - strncmp 示例
  • Example#4959 - strpbrk 示例
  • Example#4960 - 使用 ===
  • Example#4961 - 使用 !==
  • Example#4962 - 使用位置偏移量
  • Example#4963 - strrchr 示例
  • Example#4964 - 使用 strrev 反转字符串
  • Example#4965 - strripos 简单示例
  • Example#4966 - 检查字串是否存在
  • Example#4967 - 使用偏移位置进行查找
  • Example#4968 - strspn 示例
  • Example#4969 - strstr 示例
  • Example#4970 - strtok 示例
  • Example#4971 - 当 strtok 找不到标记时的反应
  • Example#4972 - strtok 和 explode 的不同点
  • Example#4973 - strtolower 示例
  • Example#4974 - strtoupper 示例
  • Example#4975 - strtr 示例
  • Example#4976 - 使用两个参数的 strtr 示例
  • Example#4977 - strtr 行为比较
  • Example#4978 - 使用负数 offset
  • Example#4979 - 使用负数 length
  • Example#4980 - substr 基本用法
  • Example#4981 - substr casting behaviour
  • Example#4982 - 无效字符范围
  • Example#4983 - substr_compare 示例
  • Example#4984 - substr_count 示例
  • Example#4985 - substr_replace 示例
  • Example#4986 - 一次性使用 substr_replace 替换多个字符串
  • Example#4987 - trim 使用示例
  • Example#4988 - 使用 trim 清理数组值
  • Example#4989 - ucfirst 示例
  • Example#4990 - ucwords 示例
  • Example#4991 - ucwords 自定义分隔符的例子
  • Example#4992 - 带附加分隔符的 ucwords 示例
  • Example#4993 - 基础示例
  • Example#4994 - 基础示例
  • Example#4995 - vfprintf: 前导 0 的整数
  • Example#4996 - vprintf：补零整数
  • Example#4997 - vsprintf: 前导 0 的整数
  • Example#4998 - wordwrap 示例
  • Example#4999 - wordwrap 示例
  • Example#5000 - wordwrap 例子
  • Example#5001 - array 例子
  • Example#5002 - array 的自动索引
  • Example#5003 - 从 1 开始索引的 array
  • Example#5004 - 访问双引号内的数组
  • Example#5005 - array_change_key_case例一
  • Example#5006 - array_chunk 例子
  • Example#5007 - 从结果集中取出 first_name 列
  • Example#5008 - 从结果集中总取出 last_name 列，用相应的“id”作为键值
  • Example#5009 - username 列是从对象获取 public 的 "username" 属性
  • Example#5010 - 通过 __get 魔术方法从对象中获取 private 属性的 "name" 列。
  • Example#5011 - 一个 array_combine 简单的例子
  • Example#5012 - array_count_values 例子
  • Example#5013 - array_diff 例子
  • Example#5014 - array_diff 不匹配类型的示例
  • Example#5015 - array_diff_assoc 示例
  • Example#5016 - array_diff_assoc 示例
  • Example#5017 - array_diff_key 例
  • Example#5018 - array_diff_uassoc 示例
  • Example#5019 - array_diff_ukey 例子
  • Example#5020 - array_fill 例子
  • Example#5021 - 开始索引为负数的 array_fill 示例
  • Example#5022 - array_fill_keys 示例
  • Example#5023 - array_filter 示例
  • Example#5024 - array_filter 不使用 callback 参数时
  • Example#5025 - array_filter 不使用 mode 参数时
  • Example#5026 - array_flip 例子
  • Example#5027 - array_flip 例子 : 冲突
  • Example#5028 - array_intersect 例子
  • Example#5029 - array_intersect_assoc 例子
  • Example#5030 - array_intersect_key 例子
  • Example#5031 - array_intersect_uassoc 例子
  • Example#5032 - array_intersect_ukey 例子
  • Example#5033 - array_is_list 示例
  • Example#5034 - array_key_exists 示例
  • Example#5035 - array_key_exists 与 isset 的对比
  • Example#5036 - array_key_first 基本用法
  • Example#5037 - array_keys 例子
  • Example#5038 - array_map 例子
  • Example#5039 - array_map 使用匿名函数
  • Example#5040 - array_map：使用更多的数组
  • Example#5041 - 多个数组的合并操作
  • Example#5042 - 仅有 array1 时，callback 设置为 null
  • Example#5043 - array_map 键（key）是 string
  • Example#5044 - array_map - 关联数组
  • Example#5045 - array_merge 示例
  • Example#5046 - 单一结构的 array_merge 示例
  • Example#5047 - array_merge 合并非数组的类型
  • Example#5048 - array_merge_recursive 例子
  • Example#5049 - 多个数组排序
  • Example#5050 - 排序多维数组
  • Example#5051 - 对数据库结果进行排序
  • Example#5052 - 不区分大小写字母排序
  • Example#5053 - array_pad 例子
  • Example#5054 - array_pop 例子
  • Example#5055 - array_product 示例
  • Example#5056 - array_push 例子
  • Example#5057 - array_rand 例子
  • Example#5058 - array_reduce 例子
  • Example#5059 - array_replace 示例
  • Example#5060 - array_replace_recursive 示例
  • Example#5061 - array_replace_recursive 及其递归表现
  • Example#5062 - array_reverse 例子
  • Example#5063 - array_search 例子
  • Example#5064 - array_shift 例子
  • Example#5065 - array_slice 例子
  • Example#5066 - array_slice 于索引从 1 开始的 array
  • Example#5067 - array_slice 与混合类型键的 array
  • Example#5068 - array_splice 例子
  • Example#5069 - 几个以不同表达式实现相同效果的 array_splice 例子
  • Example#5070 - array_sum 例子
  • Example#5071 - array_udiff 使用 stdClass 对象的示例
  • Example#5072 - array_udiff 使用 DateTime 对象的示例
  • Example#5073 - array_udiff_assoc 示例
  • Example#5074 - array_udiff_uassoc 示例
  • Example#5075 - array_uintersect 示例
  • Example#5076 - array_uintersect_assoc 示例
  • Example#5077 - array_uintersect_uassoc 示例
  • Example#5078 - array_unique 例子
  • Example#5079 - array_unique 和类型
  • Example#5080 - array_unshift 示例
  • Example#5081 - 关联数组用法
  • Example#5082 - array_values 例子
  • Example#5083 - array_walk 例子
  • Example#5084 - array_walk example using anonymous function
  • Example#5085 - array_walk_recursive 例子
  • Example#5086 - arsort 示例
  • Example#5087 - asort 示例
  • Example#5088 - compact 示例
  • Example#5089 - count 例子
  • Example#5090 - count 非 Countable|array 的例子 （这是个反例，请勿模仿）
  • Example#5091 - 递归 count 例子
  • Example#5092 - Countable 对象
  • Example#5093 - current 函数使用示例
  • Example#5094 - each 例子
  • Example#5095 - 用 each 遍历数组
  • Example#5096 - end 例子
  • Example#5097 - extract 例子
  • Example#5098 - in_array 例子
  • Example#5099 - in_array 严格类型检查例子
  • Example#5100 - in_array 中用数组作为 needle
  • Example#5101 - key 例子
  • Example#5102 - krsort 示例
  • Example#5103 - ksort 示例
  • Example#5104 - 对使用 int 键的数组进行 ksort
  • Example#5105 - list 例子
  • Example#5106 - list 用法的一个例子
  • Example#5107 - 使用嵌套的 list
  • Example#5108 - list 和索引顺序定义
  • Example#5109 - 带键的 list
  • Example#5110 - natcasesort 示例
  • Example#5111 - natsort 基本用法的操作示例
  • Example#5112 - natsort 示例，解释了潜在的陷阱
  • Example#5113 - next 及相关函数的用法示例
  • Example#5114 - prev 及相关函数用法示例
  • Example#5115 - range 示例
  • Example#5116 - reset 例子
  • Example#5117 - rsort 示例
  • Example#5118 - shuffle 例子
  • Example#5119 - sort 示例
  • Example#5120 - 使用 sort 不区分大小写自然排序的示例
  • Example#5121 - uasort 的基本示例
  • Example#5122 - uksort 示例
  • Example#5123 - usort 示例
  • Example#5124 - 使用多维数组的 usort 示例
  • Example#5125 - 使用一个对象的成员函数的 usort 示例
  • Example#5126 - usort 示例，使用闭包对多维数组进行排序
  • Example#5127 - 使用太空船运算符的 usort 示例
  • Example#5128 - 定义类
  • Example#5129 - test_script.php
  • Example#5130 - class_alias 示例
  • Example#5131 - class_exists 示例
  • Example#5132 - autoload 参数示例
  • Example#5133 - enum_exists 示例
  • Example#5134 - get_called_class 的使用
  • Example#5135 - 使用 get_class
  • Example#5136 - 父类中使用 get_class
  • Example#5137 - 命名空间中的类中使用 get_class
  • Example#5138 - get_class_methods 示例
  • Example#5139 - get_class_vars 示例
  • Example#5140 - get_class_vars 和作用域行为
  • Example#5141 - get_declared_classes 示例
  • Example#5142 - get_declared_interfaces 示例
  • Example#5143 - get_mangled_object_vars 示例
  • Example#5144 - get_object_vars 使用
  • Example#5145 - 使用 get_parent_class
  • Example#5146 - interface_exists 示例
  • Example#5147 - is_a 示例
  • Example#5148 - 使用 instanceof 运算符
  • Example#5149 - is_subclass_of 示例
  • Example#5150 - is_subclass_of 使用接口示例
  • Example#5151 - method_exists 示例
  • Example#5152 - 静态 method_exists 示例
  • Example#5153 - property_exists 示例
  • Example#5154 - ctype_alnum 示例 (使用默认的区域设置)
  • Example#5155 - ctype_alpha 例子（使用默认的语言环境）
  • Example#5156 - ctype_cntrl 示例
  • Example#5157 - ctype_digit 示例
  • Example#5158 - ctype_digit 示例，比对字符和整数
  • Example#5159 - ctype_graph 示例
  • Example#5160 - ctype_lower 示例 (使用默认的语言环境)
  • Example#5161 - ctype_print 示例
  • Example#5162 - ctype_punct 示例
  • Example#5163 - ctype_space 示例
  • Example#5164 - ctype_upper 示例（使用当前默认语言环境）
  • Example#5165 - ctype_xdigit 示例
  • Example#5166 - 配置默认过滤器的表现像 htmlspecialchars
  • Example#5167 - Configuring the default filter to act like htmlspecialchars
  • Example#5168 - 使用 filter_var 验证电子邮件地址
  • Example#5169 - 使用 filter_var 验证 IP 地址
  • Example#5170 - 传递选项到 filter_var
  • Example#5171 - 清理和验证电子邮件地址
  • Example#5172 - 配置默认过滤器
  • Example#5173 - 一个 filter_input 的例子
  • Example#5174 - filter_input_array 示例
  • Example#5175 - 一个 filter_list 的例子
  • Example#5176 - 一个 filter_var 的示例
  • Example#5177 - 过滤数组示例
  • Example#5178 - 一个 filter_var_array 的例子
  • Example#5179 - call_user_func 的参考例子
  • Example#5180 - call_user_func 的例子
  • Example#5181 - call_user_func 命名空间的使用
  • Example#5182 - 用call_user_func来调用一个类里面的方法
  • Example#5183 - 把完整的函数作为回调传入call_user_func
  • Example#5184 - call_user_func_array例子
  • Example#5185 - call_user_func_array使用命名空间的情况
  • Example#5186 - 把完整的函数作为回调传入call_user_func_array
  • Example#5187 - 传引用
  • Example#5188 - call_user_func_array 使用命名参数
  • Example#5189 - Creating a function dynamically, with create_function or anonymous functions
  • Example#5190 - Making a general processing function, with create_function or anonymous functions
  • Example#5191 - Using dynamic functions as callback functions
  • Example#5192 - forward_static_call 示例
  • Example#5193 - forward_static_call_array 示例
  • Example#5194 - func_get_arg 例子
  • Example#5195 - byRef 和 byVal 参数的 func_get_arg 示例
  • Example#5196 - func_get_args 例子
  • Example#5197 - byRef 和 byVal 参数的 func_get_args 示例
  • Example#5198 - func_num_args 示例
  • Example#5199 - function_exists 的例子
  • Example#5200 - get_defined_functions 例子
  • Example#5201 - register_shutdown_function 例子
  • Example#5202 - register_tick_function 示例
  • Example#5203 - Quickhash Example
  • Example#5204 - Quickhash ArrayAccess Example
  • Example#5205 - Quickhash Iterator Example
  • Example#5206 - Quickhash String Values Example
  • Example#5207 - QuickHashIntSet::add example
  • Example#5208 - QuickHashIntSet::__construct example
  • Example#5209 - QuickHashIntSet::delete example
  • Example#5210 - QuickHashIntSet::exists example
  • Example#5211 - QuickHashIntSet::getSize example
  • Example#5212 - QuickHashIntSet::loadFromFile example
  • Example#5213 - QuickHashIntSet::loadFromString example
  • Example#5214 - QuickHashIntSet::saveToFile example
  • Example#5215 - QuickHashIntSet::saveToString example
  • Example#5216 - QuickHashIntHash::add example
  • Example#5217 - QuickHashIntHash::__construct example
  • Example#5218 - QuickHashIntHash::delete example
  • Example#5219 - QuickHashIntHash::exists example
  • Example#5220 - QuickHashIntHash::get example
  • Example#5221 - QuickHashIntHash::getSize example
  • Example#5222 - QuickHash IntHash file format
  • Example#5223 - QuickHash IntHash file format
  • Example#5224 - QuickHashIntHash::loadFromFile example
  • Example#5225 - QuickHashIntHash::loadFromString example
  • Example#5226 - QuickHashIntHash::saveToFile example
  • Example#5227 - QuickHashIntHash::saveToString example
  • Example#5228 - QuickHashIntHash::set example
  • Example#5229 - QuickHashIntHash::update example
  • Example#5230 - QuickHashStringIntHash::add example
  • Example#5231 - QuickHashStringIntHash::__construct example
  • Example#5232 - QuickHashStringIntHash::delete example
  • Example#5233 - QuickHashStringIntHash::get example
  • Example#5234 - QuickHashStringIntHash::getSize example
  • Example#5235 - QuickHash StringIntHash file format
  • Example#5236 - QuickHash IntHash file format
  • Example#5237 - QuickHashStringIntHash::loadFromFile example
  • Example#5238 - QuickHashStringIntHash::loadFromString example
  • Example#5239 - QuickHashStringIntHash::saveToFile example
  • Example#5240 - QuickHashStringIntHash::saveToString example
  • Example#5241 - QuickHashStringIntHash::set example
  • Example#5242 - QuickHashStringIntHash::update example
  • Example#5243 - QuickHashIntStringHash::add example
  • Example#5244 - QuickHashIntStringHash::__construct example
  • Example#5245 - QuickHashIntStringHash::delete example
  • Example#5246 - QuickHashIntStringHash::get example
  • Example#5247 - QuickHashIntStringHash::getSize example
  • Example#5248 - QuickHash IntString file format
  • Example#5249 - QuickHash IntString file format
  • Example#5250 - QuickHashIntStringHash::loadFromFile example
  • Example#5251 - QuickHashIntStringHash::loadFromString example
  • Example#5252 - QuickHashIntStringHash::saveToFile example
  • Example#5253 - QuickHashIntStringHash::saveToString example
  • Example#5254 - QuickHashIntStringHash::set example
  • Example#5255 - QuickHashIntStringHash::update example
  • Example#5256 - Shell （终端）里的反射示例
  • Example#5257 - 扩展内置的类
  • Example#5258 - Reflection::getModifierNames 示例
  • Example#5259 - ReflectionClass 的基本用法
  • Example#5260 - ReflectionClass::export 的基本用法
  • Example#5261 - 基础用法
  • Example#5262 - 通过类名过滤结果
  • Example#5263 - 通过类名和继承过滤结果
  • Example#5264 - 使用 ReflectionClass::getConstant
  • Example#5265 - ReflectionClass::getConstructor 的基本用法
  • Example#5266 - ReflectionClass::getDefaultProperties 示例
  • Example#5267 - ReflectionClass::getDocComment 示例
  • Example#5268 - ReflectionClass::getEndLine 示例
  • Example#5269 - ReflectionClass::getExtension 的基本用法
  • Example#5270 - ReflectionClass::getExtensionName 的基本用法
  • Example#5271 - ReflectionClass::getInterfaceNames 示例
  • Example#5272 - ReflectionClass::getInterfaces 示例
  • Example#5273 - ReflectionClass::getMethod 的基本用法
  • Example#5274 - ReflectionClass::getMethods 的基本用法
  • Example#5275 - 从 ReflectionClass::getMethods 中过滤结果
  • Example#5276 - ReflectionClass::getName 示例
  • Example#5277 - ReflectionClass::getNamespaceName 示例
  • Example#5278 - ReflectionClass::getProperties 过滤示例
  • Example#5279 - ReflectionClass::getProperty 的基本用法
  • Example#5280 - Basic ReflectionClass::getReflectionConstants example
  • Example#5281 - ReflectionClass::getShortName 示例
  • Example#5282 - ReflectionClass::getStaticPropertyValue 的基本用法
  • Example#5283 - ReflectionClass::hasConstant 示例
  • Example#5284 - ReflectionClass::hasMethod 示例
  • Example#5285 - ReflectionClass::hasProperty 示例
  • Example#5286 - ReflectionClass::inNamespace 示例
  • Example#5287 - ReflectionClass::isAbstract 示例
  • Example#5288 - ReflectionClass::isAnonymous 示例
  • Example#5289 - ReflectionClass::isCloneable 的基本用法
  • Example#5290 - ReflectionClass::isFinal 示例
  • Example#5291 - ReflectionClass::isInstance 相关示例
  • Example#5292 - ReflectionClass::isInstantiable 示例
  • Example#5293 - ReflectionClass::isInterface 基本用法
  • Example#5294 - ReflectionClass::isInternal 的基本用法
  • Example#5295 - Basic ReflectionClass::isIterable Usage
  • Example#5296 - ReflectionClass::isReadOnly example
  • Example#5297 - ReflectionClass::newInstanceArgs 的基本用法
  • Example#5298 - ReflectionClass::__toString 示例
  • Example#5299 - Basic usage
  • Example#5300 - Filtering results by class name
  • Example#5301 - Filtering results by class name, with inheritance
  • Example#5302 - ReflectionClassConstant::isEnumCase example
  • Example#5303 - ReflectionEnum::getBackingType 示例
  • Example#5304 - ReflectionEnum::getCase 示例
  • Example#5305 - ReflectionEnum::getCases 示例
  • Example#5306 - ReflectionEnum::hasCase 示例
  • Example#5307 - ReflectionEnum::isBacked 示例
  • Example#5308 - ReflectionEnum::getValue 示例
  • Example#5309 - ReflectionEnum::getBackingValue 示例
  • Example#5310 - ReflectionExtension 示例
  • Example#5311 - ReflectionExtension::getClasses 示例
  • Example#5312 - ReflectionExtension::getClassNames 示例
  • Example#5313 - ReflectionExtension::getConstants example
  • Example#5314 - ReflectionExtension::getDependencies example
  • Example#5315 - ReflectionExtension::getFunctions 示例
  • Example#5316 - ReflectionExtension::getINIEntries 示例
  • Example#5317 - ReflectionExtension::getName 示例
  • Example#5318 - ReflectionExtension::getVersion 示例
  • Example#5319 - ReflectionExtension::info 示例
  • Example#5320 - ReflectionFunction::__construct example
  • Example#5321 - ReflectionFunction::invoke example
  • Example#5322 - ReflectionFunction::invokeArgs example
  • Example#5323 - ReflectionFunction::invokeArgs with references example
  • Example#5324 - ReflectionFunction::isAnonymous example
  • Example#5325 - ReflectionFunction::__toString example
  • Example#5326 - Basic usage with a class method
  • Example#5327 - Basic usage with a function
  • Example#5328 - Filtering results by class name
  • Example#5329 - Filtering results by class name, with inheritance
  • Example#5330 - ReflectionFunctionAbstract::getClosureUsedVariables example
  • Example#5331 - ReflectionFunctionAbstract::getReturnType example
  • Example#5332 - Usage on built-in functions
  • Example#5333 - ReflectionFunctionAbstract::getTentativeReturnType example
  • Example#5334 - ReflectionFunctionAbstract::hasReturnType example
  • Example#5335 - Usage on built-in functions
  • Example#5336 - ReflectionFunctionAbstract::hasTentativeReturnType example
  • Example#5337 - ReflectionFunctionAbstract::isClosure 示例
  • Example#5338 - ReflectionFunctionAbstract::isDeprecated 示例
  • Example#5339 - ReflectionMethod::__construct 示例
  • Example#5340 - ReflectionMethod::createFromMethodName example
  • Example#5341 - ReflectionMethod::getDeclaringClass 示例
  • Example#5342 - ReflectionMethod::getModifiers 示例
  • Example#5343 - ReflectionMethod::getPrototype 示例
  • Example#5344 - ReflectionMethod::hasPrototype example
  • Example#5345 - ReflectionMethod::invoke 示例
  • Example#5346 - ReflectionMethod::invokeArgs 示例
  • Example#5347 - 简单类定义
  • Example#5348 - ReflectionMethod::__toString 示例
  • Example#5349 - ReflectionNamedType::isBuiltin 示例
  • Example#5350 - Using the ReflectionParameter class
  • Example#5351 - Basic usage
  • Example#5352 - Filtering results by class name
  • Example#5353 - Filtering results by class name, with inheritance
  • Example#5354 - 使用 ReflectionParameter 类
  • Example#5355 - Getting the class that declared the method
  • Example#5356 - Getting default values of function parameters
  • Example#5357 - Getting default values' constant names of function parameters
  • Example#5358 - ReflectionParameter::getType Usage as of PHP 7.1.0
  • Example#5359 - ReflectionParameter::getType Usage before PHP 7.1.0
  • Example#5360 - ReflectionParameter::getType Usage in PHP 8.0.0 and later
  • Example#5361 - ReflectionParameter::hasType example
  • Example#5362 - PHP 8.0.0 equivalent
  • Example#5363 - PHP 8.0.0 equivalent
  • Example#5364 - ReflectionParameter::__toString example
  • Example#5365 - ReflectionProperty::__construct example
  • Example#5366 - Getting value from private and protected properties using ReflectionProperty class
  • Example#5367 - Basic usage
  • Example#5368 - Filtering results by class name
  • Example#5369 - Filtering results by class name, with inheritance
  • Example#5370 - ReflectionProperty::getDefaultValue example
  • Example#5371 - ReflectionProperty::getDocComment example
  • Example#5372 - Multiple property declarations
  • Example#5373 - ReflectionProperty::getType example
  • Example#5374 - ReflectionProperty::getValue example
  • Example#5375 - ReflectionProperty::hasDefaultValue example
  • Example#5376 - ReflectionProperty::hasType example
  • Example#5377 - ReflectionProperty::isDefault example
  • Example#5378 - ReflectionProperty::isInitialized example
  • Example#5379 - ReflectionProperty::isPromoted example
  • Example#5380 - Simple Class definition
  • Example#5381 - ReflectionProperty::setValue example
  • Example#5382 - ReflectionType::allowsNull example
  • Example#5383 - ReflectionType::__toString example
  • Example#5384 - ReflectionUnionType::getTypes 示例
  • Example#5385 - ReflectionGenerator::__construct example
  • Example#5386 - ReflectionGenerator::getExecutingFile example
  • Example#5387 - ReflectionGenerator::getExecutingGenerator example
  • Example#5388 - ReflectionGenerator::getExecutingLine example
  • Example#5389 - ReflectionGenerator::getFunction example
  • Example#5390 - ReflectionGenerator::getThis example
  • Example#5391 - ReflectionGenerator::getTrace example
  • Example#5392 - ReflectionIntersectionType::getTypes 示例
  • Example#5393 - 基本的 ReflectionReference::getId 用法
  • Example#5394 - boolval examples
  • Example#5395 - debug_zval_dump 示例
  • Example#5396 -
  • Example#5397 - 一个简单的 empty 与 isset 的比较。
  • Example#5398 - 在字符串偏移量上使用 empty
  • Example#5399 - floatval 示例
  • Example#5400 - floatval 最左边的字符为非数字的示例
  • Example#5401 - get_debug_type 示例
  • Example#5402 - get_defined_vars 示例
  • Example#5403 - get_resource_id 与 int 转换的结果相同
  • Example#5404 - get_resource_type 示例
  • Example#5405 - gettype 示例
  • Example#5406 - intval 例子
  • Example#5407 - 检测变量是否是数组
  • Example#5408 - is_bool 示例
  • Example#5409 - is_callable 例子
  • Example#5410 - is_callable 和构造函数
  • Example#5411 - is_countable 示例
  • Example#5412 - is_float 示例
  • Example#5413 - is_int 示例
  • Example#5414 - is_iterable 示例
  • Example#5415 - is_null 示例
  • Example#5416 - is_numeric 示例
  • Example#5417 - 带有空格的 is_numeric
  • Example#5418 - is_object 示例
  • Example#5419 - is_resource 示例
  • Example#5420 - is_scalar 示例
  • Example#5421 - is_string 示例
  • Example#5422 - isset 例子
  • Example#5423 - 在字符串位移中使用 isset
  • Example#5424 - print_r 例子
  • Example#5425 - return 参数的例子
  • Example#5426 - serialize 示例
  • Example#5427 - settype 示例
  • Example#5428 - 使用 PHP 魔术方法 __toString() 的 strval 示例。
  • Example#5429 - unserialize 例子
  • Example#5430 - unserialize_callback_func 例子
  • Example#5431 - unset 示例
  • Example#5432 - 使用 (unset) 类型强制转换
  • Example#5433 - var_dump 例子
  • Example#5434 - var_export 示例
  • Example#5435 - 输出 stdClass 类 (自 PHP 7.3.0 起)
  • Example#5436 - 输出对象 (自 PHP 5.1.0 起)
  • Example#5437 - 使用 __set_state()
  • Example#5438 -
  • Example#5439 - OAuth::fetch example
  • Example#5440 - OAuth::getAccessToken 例子
  • Example#5441 - OAuth::getRequestToken 例子
  • Example#5442 - OAuth::setRequestEngine 例子
  • Example#5443 - 一个 OAuth::setRsaCertificate 例子
  • Example#5444 - OAuth::setToken 例子
  • Example#5445 - OAuthProvider::__construct 例子
  • Example#5446 - OAuthProvider::consumerHandler 回调的例子
  • Example#5447 - OAuthProvider::generateToken 例子
  • Example#5448 - OAuthProvider::is2LeggedEndpoint 例子
  • Example#5449 - OAuthProvider::timestampNonceHandler 回调的例子
  • Example#5450 - OAuthProvider::tokenHandler 回调的例子
  • Example#5451 - is_soap_fault example
  • Example#5452 - SOAP's standard method for error reporting is exceptions
  • Example#5453 - Specifying use of TLS 1.3 only
  • Example#5454 - SoapClient::__construct example
  • Example#5455 - Using the SOAP_SINGLE_ELEMENT_ARRAYS feature
  • Example#5456 - SoapClient::__doRequest example
  • Example#5457 - SoapClient::__getFunctions example
  • Example#5458 - SoapClient::__getLastRequest() example
  • Example#5459 - SoapClient::__getLastRequestHeaders() example
  • Example#5460 - SoapClient::__getLastResponse() example
  • Example#5461 - SoapClient::__getLastResponse() example
  • Example#5462 - SoapClient::__getTypes example
  • Example#5463 - SoapClient::__setLocation example
  • Example#5464 - SoapClient::__setSoapHeaders example
  • Example#5465 - Set Multiple Headers
  • Example#5466 - SoapClient::__soapCall example
  • Example#5467 - SoapServer::addFunction 示例
  • Example#5468 - SoapServer::__construct example
  • Example#5469 - SoapServer::getFunctions example
  • Example#5470 - SoapServer::handle example
  • Example#5471 - SoapServer::setPersistence example
  • Example#5472 - Some examples
  • Example#5473 - Some examples
  • Example#5474 - SoapHeader::__construct example
  • Example#5475 - SoapParam::__construct example
  • Example#5476 - SoapVar::__construct example
  • Example#5477 - Yar Server示例
  • Example#5478 - 通过浏览器访问(GET请求)
  • Example#5479 - Yar Client示例
  • Example#5480 - Yar Concurrent Client示例
  • Example#5481 - Yar_Server::__construct 示例
  • Example#5482 - Yar_Server::handle 示例
  • Example#5483 - Yar_Client::__call 示例
  • Example#5484 - Yar_Client::__construct 示例
  • Example#5485 - Yar_Client::setOpt 示例
  • Example#5486 - Yar_Concurrent_Client::call示例
  • Example#5487 - Yar_Concurrent_Client::loop 示例
  • Example#5488 - Yar_Concurrent_Client::reset example
  • Example#5489 - Yar_Server_Exception::getType 示例
  • Example#5490 - Yar_Client_Exception::getType 示例
  • Example#5491 - XMLRPC 客户端函数示例
  • Example#5492 - XML-RPC 类型示例
  • Example#5493 - xmlrpc_set_type 示例
  • Example#5494 - For Each in ASP
  • Example#5495 - foreach in PHP
  • Example#5496 - com example (1)
  • Example#5497 - com example (2)
  • Example#5498 - dotnet example
  • Example#5499 - variant example
  • Example#5500 - Basic COMPersistHelper::saveToFile Usage
  • Example#5501 - COM event sink example
  • Example#5502 - Registering a PHP script to run as a service
  • Example#5503 - Unregistering a service
  • Example#5504 - Running as a service
  • Example#5505 - A win32_create_service example
  • Example#5506 - A win32_create_service example with dependencies
  • Example#5507 - A win32_create_service example with recovery
  • Example#5508 - A win32_delete_service example
  • Example#5509 - A win32_start_service_ctrl_dispatcher example
  • Example#5510 - book.xml
  • Example#5511 - Creating a new DOMAttr object
  • Example#5512 - DOMAttr::isId() Example
  • Example#5513 - Creating a new DOMCdataSection object
  • Example#5514 - DOMCharacterData::after example
  • Example#5515 - DOMCharacterData::before example
  • Example#5516 - DOMCharacterData::remove example
  • Example#5517 - DOMCharacterData::replaceWith example
  • Example#5518 - Creating a new DOMComment
  • Example#5519 - DOMDocument::adoptNode example
  • Example#5520 - DOMDocument::append example
  • Example#5521 - Creating a new DOMDocument
  • Example#5522 - Creating a new element and inserting it as root
  • Example#5523 - Passing text containing an unescaped & as value
  • Example#5524 - Creating a new element and inserting it as root
  • Example#5525 - A namespace prefix example
  • Example#5526 - DOMDocument::getElementById() Example
  • Example#5527 - Basic Usage Example
  • Example#5528 - Get all the XInclude elements
  • Example#5529 - DOMDocument::importNode example
  • Example#5530 - Creating a Document
  • Example#5531 - Creating a Document
  • Example#5532 - Creating a Document
  • Example#5533 - Creating a Document
  • Example#5534 - DOMDocument::prepend example
  • Example#5535 - Adding a new method to DOMElement to ease our code
  • Example#5536 - Retrieving elements as custom class
  • Example#5537 - Retrieving owner document
  • Example#5538 - Custom objects are transient
  • Example#5539 - DOMDocument::replaceChildren example
  • Example#5540 - Saving a DOM tree into a file
  • Example#5541 - Saving a HTML tree into a string
  • Example#5542 - Saving a HTML tree into a file
  • Example#5543 - Saving a DOM tree into a string
  • Example#5544 - Example of DTD validation
  • Example#5545 - DOMDocument::xinclude() example
  • Example#5546 - DOMDocumentFragment::append example
  • Example#5547 - Appending XML data to your document
  • Example#5548 - DOMDocumentFragment::prepend example
  • Example#5549 - DOMDocumentFragment::replaceChildren example
  • Example#5550 - DOMElement::after example
  • Example#5551 - DOMElement::append example
  • Example#5552 - DOMElement::before example
  • Example#5553 - Creating a new DOMElement
  • Example#5554 - DOMElement::getAttributeNames example
  • Example#5555 - DOMElement::insertAdjacentElement example
  • Example#5556 - DOMElement::insertAdjacentText example
  • Example#5557 - DOMElement::prepend example
  • Example#5558 - DOMElement::remove example
  • Example#5559 - DOMElement::replaceChildren example
  • Example#5560 - DOMElement::replaceWith example
  • Example#5561 - Setting an attribute
  • Example#5562 - DOMElement::toggleAttribute example
  • Example#5563 - Creating a new DOMEntityReference
  • Example#5564 - Creating a document with an attached DTD
  • Example#5565 - Testing your DOM Implementation
  • Example#5566 - Adding a child
  • Example#5567 - Nested children
  • Example#5568 - Example with XPath query
  • Example#5569 - DOMNode::contains example
  • Example#5570 - DOMNode::getLineNo example
  • Example#5571 - DOMNode::getNodePath example
  • Example#5572 - DOMNode::getRootNode example
  • Example#5573 - DOMNode::isEqualNode example
  • Example#5574 - Removing a child
  • Example#5575 - Traversing all the entries of the table
  • Example#5576 - DOMParentNode::replaceChildren example
  • Example#5577 - Creating a new DOMProcessingInstruction object
  • Example#5578 - Creating a new DOMText
  • Example#5579 - Getting the count of all the english books
  • Example#5580 - Getting all the english books
  • Example#5581 - book.xml
  • Example#5582 - DOMXPath::registerPHPFunctions with php:functionString
  • Example#5583 - DOMXPath::registerPHPFunctions with php:function
  • Example#5584 - Import SimpleXML into DOM with dom_import_simplexml
  • Example#5585 - A libxml_get_errors example
  • Example#5586 - libxml_set_external_entity_loader example
  • Example#5587 - A libxml_set_streams_context example
  • Example#5588 - A libxml_use_internal_errors example
  • Example#5589 - Include file example.php with XML string
  • Example#5590 - Getting <plot>
  • Example#5591 - Getting <line>
  • Example#5592 - Accessing non-unique elements in SimpleXML
  • Example#5593 - Using attributes
  • Example#5594 - Comparing Elements and Attributes with Text
  • Example#5595 - Comparing Two Elements
  • Example#5596 - Using XPath
  • Example#5597 - Setting values
  • Example#5598 - Adding elements and attributes
  • Example#5599 - DOM Interoperability
  • Example#5600 - Loading broken XML string
  • Example#5601 - Add attributes and children to a SimpleXML element
  • Example#5602 - Add attributes and children to a SimpleXML element
  • Example#5603 - Get XML
  • Example#5604 - Using asXML() on SimpleXMLElement::xpath results
  • Example#5605 - Interpret an XML string
  • Example#5606 - Traversing a children() pseudo-array
  • Example#5607 - Using namespaces
  • Example#5608 - Create a SimpleXMLElement object
  • Example#5609 - Create a SimpleXMLElement object from a URL
  • Example#5610 - Counting the number of children
  • Example#5611 - Return the current element
  • Example#5612 - Get document namespaces
  • Example#5613 - Working with multiple namespaces
  • Example#5614 - Get XML element names
  • Example#5615 - Get document namespaces in use
  • Example#5616 - Return the sub-elements of the current element
  • Example#5617 - Check whether the current element has sub-elements
  • Example#5618 - Get the current XML tag key
  • Example#5619 - Move to the next element
  • Example#5620 - Setting a namespace prefix to use in an XPath query
  • Example#5621 - Rewind to the first element
  • Example#5622 - Get string content
  • Example#5623 - Check whether the current element is valid
  • Example#5624 - Xpath
  • Example#5625 - Importing DOM
  • Example#5626 - Interpret an XML document
  • Example#5627 - Interpret an XML string
  • Example#5628 - Serializing a single value with WDDX
  • Example#5629 - Using incremental packets with WDDX
  • Example#5630 - wddx_serialize_vars example
  • Example#5631 - 显示 XML 元素结构
  • Example#5632 - 将 XML 映射为 HTML
  • Example#5633 - 外部实体示例
  • Example#5634 - xmltest.xml
  • Example#5635 - xmltest2.xml
  • Example#5636 - 分块解析大型 XML 文档
  • Example#5637 - xml_parse_into_struct 示例
  • Example#5638 - moldb.xml - 分子信息的小型数据库
  • Example#5639 - parsemoldb.php - 将 moldb.xml 解析到分子（molecular）对象的数组中
  • Example#5640 - xml_set_object 示例
  • Example#5641 - Validating XML
  • Example#5642 - Creating a simple XML document
  • Example#5643 - Working with XML namespaces
  • Example#5644 - Working with the OO API
  • Example#5645 - Direct output of XML
  • Example#5646 - XMLWriter::setIndent and mixed Content
  • Example#5647 - Basic XMLWriter::startAttribute Usage
  • Example#5648 - Intermixing Sub-elements and Attributes
  • Example#5649 - Basic xmlwriter_write_cdata Usage
  • Example#5650 - collection.xml
  • Example#5651 - collection.xsl
  • Example#5652 - fruits.xml
  • Example#5653 - fruits.xsl
  • Example#5654 - Collating and printing errors
  • Example#5655 - Creating an XSLTProcessor
  • Example#5656 - Testing EXSLT support
  • Example#5657 - Simple PHP Function call from a stylesheet
  • Example#5658 - Changing the owner before the transformation
  • Example#5659 - Example profiling output
  • Example#5660 - Transforming to a DOMDocument
  • Example#5661 - Transforming to a HTML file
  • Example#5662 - Transforming to a string
  • Example#5663 - 隐藏的 HTML 表单单元
  • Example#5664 - 等待用户编辑的数据
  • Example#5665 - URL 中的例子
  • Example#5666 - PHP/FI 代码示例
  • Example#5667 - dev. 域名激活完整的屏幕错误报告
  • Example#5668 - 受保护的区域添加安全脚本
  • Example#5669 - Unix include_path
  • Example#5670 - Windows include_path
  • Example#5671 - Unix include_path 使用 ${USER} env 变量
  • Example#5672 - string.rot13
  • Example#5673 - string.toupper
  • Example#5674 - string.tolower
  • Example#5675 - string.strip_tags
  • Example#5676 - convert.base64-encode & convert.base64-decode
  • Example#5677 - convert.quoted-printable-encode & convert.quoted-printable-decode
  • Example#5678 - convert.iconv.*
  • Example#5679 - zlib.deflate 和 zlib.inflate
  • Example#5680 - zlib.deflate 简单参数用法
  • Example#5681 - bzip2.compress 和 bzip2.decompress
  • Example#5682 - 用 Blowfish 算法加解密
  • Example#5683 - 将文件以 SHA256 HMAC 的 AES-128 CBC 加密

User Contributed Notes

There are no user contributed notes for this page.


更新日志

对绑定的扩展的函数有以下更新。

Version Function Description

User Contributed Notes

There are no user contributed notes for this page.


CHM 版本

  • 关于此版本
  • Using PHP Manual CHM Edition
    • The HTML Help Toolbar
    • The Navigation Pane
    • Keyboard Shortcuts
  • The Full Text Search
    • General searching rules
    • Searching for words or phrases
    • Defining search terms
    • Using nested expressions when searching
  • Integrating the PHP Manual

User Contributed Notes

There are no user contributed notes for this page.


关于此版本

PHP 手册的 Windows HTML Help 版本是针对开发人员的，他们希望每时每刻都有手册在手头，并且不需要等待远程页面下载就可以阅读手册以及用户注解。此版本给你完整的手册内容加上用户注解，以及一些很棒的特色。这是由我们用来生成此格式的脚本产生的阅读程序以及其他人在皮肤样式上的贡献所提供的。

PHP 手册的此发行包中由很多文件组成，包括主要的手册文件 php_manual_zh.chm。你可以通过双击此文件查看本手册（你可能已经猜到了）。 你可能也会在目录中看到 php_manual_zh.chw 文件，该文件是在你第一次使用索引标签时生成的，包含了手册页面的索引。

对那些对 Microsoft HTML Help 的技术细节有兴趣的人来说，» http://www.helpware.net/ 是一个很棒的资源。有关 Microsoft 帮助格式和服务历史中的 Windows HTML Help 的更多信息与配置，见 » WinWriters article。

User Contributed Notes

There are no user contributed notes for this page.


Using PHP Manual CHM Edition

Table of Contents

  • The HTML Help Toolbar
  • The Navigation Pane
  • Keyboard Shortcuts

When you double click on a CHM, a HTML Help Viewer window opens with three panes. On the left side of the window is the Navigation pane. It contains four navigational tabs: the Contents, Index, Search and Favorites tabs. On the right side of the window is the Topic pane. It displays the selected help topic, or the default help topic on startup. The help pages are all separate HTML files, your Internet Explorer displays the pages in the Topic pane. The third pane is the toolbar, which is located below the help window title bar. You can adjust the horizontal layout with dragging the vertical border between the Navigation pane and the Topic pane.

Note, that when you open the CHM the first time, it may appear in a strange position and size. From then, Windows remembers the window position, size and the last opened tab. All these including your favorites are stored in a file named hh.dat. If you move your file to another directory, all these remembered settings will be lost (including your favorites listing!). If you replace your CHM file with a new one, with the same name, this is not a problem though. The file names and path values are stored in hh.dat.

User Contributed Notes

There are no user contributed notes for this page.


The HTML Help Toolbar

The HTML Help Toolbar contains the following icons, when you view the PHP Manual:

  • Hide/Show - Hides/shows the navigation pane.
  • Locate - Locates a topic in the contents tab (in case you reached a topic with search, index or favorites, and would like to see where it is in the table of contents tree view).
  • Back - Goes back in the history.
  • Forward - Goes forward in the history.
  • Refresh - Reloads the current page.
  • Home - Opens the startup page of the CHM.
  • Print - Opens the print dialog box.
  • Options - Provides a dropdown with more options.
Using this toolbar is really easy, many of the toolbar icons are strongly related to their Internet Explorer equivalents.

User Contributed Notes

There are no user contributed notes for this page.


The Navigation Pane

The Navigation Pane contains four navigational tabs: the Contents, Index, Search and Favorites tabs. These all provide different methods to access a topic in the help file.

  • The contents tab reveals a tree like table of contents, where you can navigate to the desired topic by opening and closing parts of the tree. You can even access the deepest sections using this TOC. If you right click on an item here and choose "Print...", you'll have the option to print the selected topic or the selected topic and all subtopics. However printing is not the initial goal of this representation of the manual (the PDF version is suitable for printing).
  • The index tab lists a huge number of "keywords" (actually manual page titles). You can pick one, or start to type a keyword, see the list adjusting to your input, and then click on a topic, or press enter if the selected topic is the one you would like to see.
  • The search tab shows one of the most powerful features of the HTML Help Viewer, the full text search (also known as FTS). Here you can type in your search expression, optionally connecting words with AND/OR/NEAR/NOT. Before you click 'List topics', you can also set some options at the bottom. After the search results are displayed, you'll realize that manual text and user note results are separated. To sort out the two types, click on the 'Location' column header. Now from the search results list, you can pick a topic, and see it's page. The keywords you searched for are highlighted on the page.
  • The favorites tab enables you to store your most used topics in a list, easily accessible. Here you can see the list, add the current topic to it, remove one, or display a selected item. You can also specify your own title for the favorite, by typing it into the 'Current topic:' box. The user note page titles are prepended with a 'N:' string so you can distinguish them from normal manual pages in the favorites listing.

User Contributed Notes

There are no user contributed notes for this page.


Keyboard Shortcuts

There are many keyboard shortcuts you can use to increase your productivity. Many users find it more appropriate to use these keyboard shortcuts to access topics, instead of clicking.

General Help Viewer Shortcuts
To | Press
Close the Help Viewer | ALT+F4
Display the Options menu | ALT+O
Hide or show the Navigation pane | ALT+O, and then T
Print a topic | ALT+O, and then P
Move back to the previous topic | ALT+LEFT ARROW
Move forward to the next topic (provided you have viewed it just previously) | ALT+RIGHT ARROW
Turn on or off search highlighting. | ALT+O, and then O
Return to the help file home page | ALT+O, and then H
Switch between the Navigation pane and the Topic pane | F6
Scroll through all the links in a topic or through all the options on a Navigation pane tab | TAB
Display context (right click) menu | SHIFT+F10
Contents Tab Shortcuts
To | Press
Display the Contents tab | ALT+C
Open and close a book or folder | PLUS SIGN and MINUS SIGN, or LEFT ARROW and RIGHT ARROW
Select a topic | DOWN ARROW and UP ARROW
Display the selected topic | ENTER
Index Tab Shortcuts
To | Press
Display the Index tab | ALT+N
Type a keyword to search for | ALT+W, and then type the word
Select a keyword in the list | UP ARROW and DOWN ARROW
Display the associated topic | ENTER or ALT+D
Search Tab shortcuts
To | Press
Display the Search tab | ALT+S
Type a keyword to search for | ALT+W, and then type the word
Start a search | ALT+L
Select a topic in the results list | ALT+T, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Search for a keyword in the result list of a prior search | ALT+U
Search for words similar to the keyword. For example, to find words like "running" and "runs" for the keyword "run" | ALT+M
Only search through topic titles | ALT+R
Favorites Tab Shortcuts
To | Press
Display the Favorites tab | ALT+I
Add the currently displayed topic to the Favorites list | ALT+A
Select a topic in the Favorites list | ALT+P, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Remove the selected topic from the list | ALT+R
Topic Pane Shortcuts
To | Press
Index Lookup | Select the words you would like to look up and press F1
Find on page | CTRL+F, and then adjust options
Refresh page | F5

User Contributed Notes

There are no user contributed notes for this page.


The Full Text Search

Table of Contents

  • General searching rules
  • Searching for words or phrases
  • Defining search terms
  • Using nested expressions when searching

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users to search through every word in the help file to find a match. For example, if a user does a full-text search on the word "Apache", every topic that contains the word "Apache" will be listed. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

The usage of the search feature is fairly straightforward. Click on the search tab, type in the desired words and press ENTER (or click on "List Topics"). Then you'll receive a list of matches from the PHP Manual (and the notes). You can use the button with a right arrow on it to add boolean operators to your search (or you can type them in). As you see the results, you can use the column headings (Title, Location and Rank) to sort the topic list. The default order is by Rank. You can also adjust some parameters at the bottom of this tab.

The words found are highlighted on the current page in the Topic pane by default. You can turn off this feature by choosing the "Search Highlight Off" menu item in the Options menu. To can get this feature back similarly. If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted, due to a limitation of the viewer.

User Contributed Notes

There are no user contributed notes for this page.


General searching rules

A basic search consists of the word or phrase you want to find. You can use wildcard expressions, nested expressions, boolean operators, similar word matches, a previous results list, or topic titles to further define your search.

The basic rules for formulating queries are as follows:

  • Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters.
  • You may search for any combination of letters (a-z) and numbers (0-9). You cannot search for single letters (a, b, c, etc.) and common words, like: an, and, as, at, be, but, by, do, for, from, have, he, in, it, not, of, on, or, she, that, the, there, they, this, to, we, which, with, you.
  • Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), and hyphen (-) are ignored during a search.
  • Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks.

Note:

If you are searching for a file name with an extension, you should group the entire string in double quotes, ("filename.ext"). Otherwise, the period will break the file name into two separate terms. The default operation between terms is AND, so you will create the logical equivalent to "filename AND ext."

User Contributed Notes

There are no user contributed notes for this page.


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Word and phrase searches
Search for | Example | Results
A single word | select | Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".)
A phrase | "new operator" or new operator | Topics that contain the literal phrase "new operator" and all its grammatical variations. Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.
Wildcard expressions | esc* or HT?? | Results for the first example include topics that contain the terms "ESC", "escape", "escalation", and so on. The asterisk cannot be the only character in the term. Results for the second example include topics that contain the terms "HTTP", "HTML" and so on. The question mark cannot be the only character in the term.

Note:

Select the Match similar words check box to include minor grammatical variations for the phrase you search. This feature only locates variations of the word with common suffixes. For example, a search on the word "add" will find "added," but it will not find "additive". This option is independent of other options or syntax. If you do a titles-only search, variations in titles will be matched. If you use quotes (or any other query operator) any variation of the word can appear; for example, "stemmed search" will also match "stemming search".

User Contributed Notes

There are no user contributed notes for this page.


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "server cgi security" is equivalent to "server AND cgi AND security".

Search operators
Search for | Example | Results
Both terms in the same topic | http AND apache | Topics containing both the words "http" and "apache".
Either term in a topic | ming OR swflib | Topics containing either the word "ming" or the word "swflib" or both.
The first term without the second term | xml NOT expat | Topics containing the word "xml" but not the word "expat".
Both terms in the same topic, close together | database NEAR security | Topics containing the word "database" within eight words of the word "security".

Note:

The |, &, and ! characters can also be used in place of OR AND and NOT respectively. This may not work if you use a very old version of the viewer.

User Contributed Notes

There are no user contributed notes for this page.


Using nested expressions when searching

Nested expressions allow you to create complex searches for information. For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics containing the word "html" along with the words "smtp" and "mail" close together, or containing "html" along with the words "pop3" and "mail" close together.

The basic rules for searching help topics using nested expressions are as follows:

  • You can use parentheses to nest expressions within a query. The expressions in parentheses are evaluated before the rest of the query.
  • If a query does not contain a nested expression, it is evaluated from left to right. For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT (pop3 OR smtp)" finds topics containing the word "mail" without either of the words "pop3" or "smtp".
  • You cannot nest expressions more than five levels deep.

User Contributed Notes

There are no user contributed notes for this page.


Integrating the PHP Manual

Note:

The information provided here is mainly aimed at IDE authors, or advanced users who would like to integrate this CHM file to their favorite IDEs or other production environment components.

There are several editors out there with support for CHM integration, but you may need to know a few things about what the CHM contains to successfully integrate the manual into your environment.

The CHM is built using XSL style sheets from XML sources. This is unique currently in the PHP Manual family, as all other versions are generated using DSSSL style sheets. This also means, that non-intentional rendering differences may come up. A special conversion script is run on the XSLT output, adding several cute features, and packing up the manual with the preferences files and skin examples.

If you never worked with CHMs, you can think of them as compressed files with OS supported access for files inside and some added search and index support. However CHMs can only be viewed using the HTML Help Viewer, you can directly access files inside them using a special URL prefix, the CHM file name and the file you request from inside. As all the help content is stored in HTML files, you can show pages of the CHM in Internet Explorer.

Assume that you placed your php_manual_en.chm to c:\phpmanual the index file in the manual (which you see the first time) can be accessed with the following URL: mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html. Here mk:@MSITStore: is the special "protocol", C:\phpmanual\php_manual_en.chm is the CHM with it's full path. The /_index.html part is the path to the index file inside the CHM and :: is just what you need to put between the CHM path and this file path.

Note:

All files are in the root directory of the CHM, unlike the previous CHM versions which included a language directory. Images, style sheets and other supplemental files have names starting with an underscore (like the main index shown above), to avoid name collisions.

The names of generated files follow the same rules as the online manual, except that the extension is .html and not .php. The most important is that function documentation files are named function.FUNCNAME.html where FUNCNAME is the function name, with all underscores converted to hyphens. Some examples are function.echo.html, function.mysql-close.html, function.imagecopy.html.

Using all this information, you can show a manual page for a function requested by a user. A simple example is included in the distribution, named php_quickref.hta. This is a » HTML Application to demonstrate the simple process of showing a manual page for a function. The quickRef() function defined therein does the job.

If you would like to integrate the manual into an IDE without direct support for the PHP manual (actually the underscore to hyphen conversion), you can use the included _function.html file to access a function page. This file is simply a redirector, and can be parameterized via the URL, as _function.html#mysql_close. This page will redirect you to the mysql_close function page (function.mysql-close.html) automatically. You can provide the full path of this file if your IDE supports context sensitive help, and provide the IDE specified string as the parameter. An example for this is the UltraEdit 9 intergation (see the edition's website).

The index of the manual (accessible via the index tab on the navigation pane) can also be used for integrational purposes. All the HTML pages are included in the index with their titles as index terms (including function description pages).

If you are a desktop application developer and would like to tightly integrate the CHM into your program (such as displaying the TOC tree in your IDE's help box), you can find more information at » http://www.helpware.net/, as well as links to other useful resources. The official site for HTML Help is at » http://www.microsoft.com/download/en/details.aspx?id=21138.

User Contributed Notes

There are no user contributed notes for this page.