PHP教程

PHP内置函数

一、概念

PHP 内置函数是指在 PHP 的语言库中预先定义好的函数,可以直接在PHP程序中使用,而无需进行额外的定义或导入,可以直接在PHP程序中使用,而无需进行额外的定义或导入。这些内置函数包括了一系列常用的功能函数,例如echo用于输出内容、mysql_connect用于连接MySQL数据库、include_once用于包含文件等等。它们就像是PHP的系统函数一样,为开发人员提供了便捷的功能和操作。

通过使用这些内置函数,开发人员可以快速实现各种常见的操作,而无需从头开始编写复杂的代码。这些函数已经经过了广泛测试和优化,具有较高的稳定性和可靠性。

二、PHP扩展模块

除了PHP的内置函数外,还有一些函数需要与特定的PHP扩展模块一起编译使用。如果没有正确编译相关的扩展模块,当使用这些函数时,就会出现"未定义函数"的致命错误。例如,如果要使用image函数中的imagecreatetruecolor()函数,需要在编译PHP时启用GD库的支持。或者,如果要使用mysqli_connect()函数,就需要在编译PHP时启用MySQLi扩展的支持。

为了查看PHP加载了哪些扩展库,可以调用phpinfo()函数或get_loaded_extensions()函数来获取相关信息。同时,需要注意的是,许多扩展库默认就是有效的,但也可以通过配置进行调整。

注意:在PHP中,如果将一个与函数声明中参数类型不匹配的值传递给函数,例如将一个数组传递给一个字符串类型的参数,函数的返回值是不确定的,通常函数会返回null作为结果。自PHP 8.0.0版本起,如果传递给函数的参数类型与声明的类型不一致,PHP将引发TypeError异常。这是PHP 8.0.0版本引入的新特性,旨在提高代码的类型安全性和可靠性。

三、内置函数标量类型

在PHP的强制模式下,内置函数的标量类型默认可以为null,这意味着如果一个内置函数声明参数类型为非null的标量类型(例如string),则它允许传递null值作为参数。由于历史原因,在强制模式下,PHP将null隐式转换为对应的标量类型,但在PHP 8.1.0版本中,这种行为被视为过时,PHP 8.1.0版本及以后的版本不再支持该行为。

从PHP 8.1.0版本开始,如果将null传递给一个声明为非null的内置函数参数,PHP将发出弃用通知,并产生警告。此外,在严格模式下,PHP将抛出TypeError异常,而不是将null隐式转换为相应的标量类型。

例如,strlen()函数的参数$string必须为非null的string。在强制模式下,如果将null传递给该函数,PHP将隐式将null转换成空字符串""。但在PHP 8.1.0版本及以后的版本中,如果将null传递给strlen()函数,则会产生警告并发出弃用通知。

<?php
var_dump(strlen(null));
// "Deprecated: Passing null to parameter #1 ($string) of type string is deprecated" as of PHP 8.1.0
// int(0)

var_dump(str_contains("foobar", null));
// "Deprecated: Passing null to parameter #2 ($needle) of type string is deprecated" as of PHP 8.1.0
// bool(true)
?>
广告合作
QQ群号:707632017

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com。(#改为@)

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

目录