2024-10-01 15:28:35 | 我爱编程网
一、错误类型:PHP致命错误
Error type: PHP Fatal error
Fatal error: Call to undefined function (a) in (b) on line (c)
二、错误描述:
该错误报告表示你正企图调用未经定义的函数(function),其中
a----表示未定义的函数名;
b----出现该段脚本的路径;
c----企图调用未定义函数的行号。
d----第二次定义该函数时的行号。
三、原因及解决方法:
原因1:你的确没有声明过该函数。例如,直接调用下面的函数
myFunction();// 这里根本就没有这个函数
结果如下
Fatal error:Call to undefinedfunction myFunction()in(path) on line 1
解决:
仔细检测你的程序中是否声明过该函数。
原因2:你在函数声明时用的名称和你在调用时用的名称不相同,例如
function myFunction(){// do something}myFuntion();// 这里少写了一个字母C
解决:这是很多初学者最容易犯的一个错误。有时候因为少写,或者多写,写错一个字母而导致很长时间都检查不出来。
原因3:你在老版本的PHP下调用新版本的PHP内置函数而产生的错误。因为你的老版本中这个PHP内置函数根本就不存在。例如,你在PHP老版本中调用mime_content_type()
Fatal error:Call to undefinedfunction mime_content_type()
解决:翻开PHP手册仔细核对你所使用的内置函数到底适用于PHP的哪些版本。在PHP手册当中对每一个内置函数都注明了详细的版本限制。例如(PHP 4 >= 4.3.0, PHP 5).所以,解决办法就是升级你的PHP版本,或者改换同类型的其他内置函数。
原因4:你对该函数的调用代码,写在了与函数声明不同的文件中。例如,你在a.php文件中写了这样的代码
myFunction();
而你的函数声明却在b.php中
function myFunction(){// do something}
解决:这种情况一般发生在PHP初学者身上,他们在调用函数时却忘了PHP不会自动的进行文件关联或引用。也就是说上面的情况中a.php与b.php根本就不会产生任何关系。这个时候你需要使用include()之类的函数将两者关联起来。
原因5:你对该函数的调用代码,写在了与函数声明不同的文件中,你也引入了该文件。但是你的函数调用代码位于引入文件代码之前。例如,你在a.php执行函数调用,而在b.php中声明函数。
a.php代码
myFunction();include('b.php'); 我爱编程网
b.php代码
function myFunction(){ echo '123';}
解决:像上面的代码这样,在执行时就会报错。因为PHP在执行函数调用时找不到该函数的声明。所以,绝对不要把函数的调用写在函数声明文件被引入之前。当然,如果你是在同一个php文件当中,你完全可以把调用函数写在函数声明之前。
原因6:你连续两次使用相同名称来定义一个函数,例如
function myFunction(){}
function myFunction(){}
结果如下
Fatal error:Cannot redeclare myfunction()(previously declared in(path):2)in(path) on line 1
解决:
找到已经声明过的函数,看看是什么需要导致你再次定义了它。如果只是单纯的忘记之前已经定义过,那么将其中一个声明删除掉就是。当然,你的情况可能给复杂。比如你的脚本文件排列异常混乱,并且你可能使用了大量的include()之类的函数,这将导致你很难从混乱的代码当中理清思路。
保留原来的下标。
$b = array("Cat","Dog","Horse");
print_r(array_reverse($b));
// 数字索引的数组,需设置第二个参数保留原索引
print_r(array_reverse($b, true));
//Array ( [0] => Horse [1] => Dog [2] => Cat )
//Array ( [2] => Horse [1] => Dog [0] => Cat )
我爱编程网(https://www.52biancheng.com)小编还为大家带来PHP中使用按位取反(~)函数创建后门的相关内容。
PHP中使用按位取反(~)函数创建后门PHP中array_reverse函数的一个小问题保留原来的下标。$b = array("Cat","Dog","Horse");print_r(array_reverse($b));// 数字索引的数组,需设置第二个参数保留原索引print_r(array_reverse($b, true));//Array ( [0] => Horse [1] => Dog [2] =
100个最常用的PHP函数(记得收藏哦)以下是100个最常用的PHP函数列表,它们是PHP编程语言中常用的内置函数。这些函数按照使用频率从1到100进行排序。请注意,还有约4500个函数未在此列表中排名,所有这些数据来源于对1900个PHP开源项目的审查,使用了Exakat静态分析引擎的1.2.5版本。平均值代表在单个项目中使用这些函数的次数,有些是封装使用,而有些则是主要功能。例如,
PHP中的函数--foreach()的用法详解PHP4引入了foreach结构,和Perl以及其他语言很像。这只是一种遍历数组简便方法。foreach仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。复制代码代码如下:foreach(array_expressiona
php数组的问题$array[]=是给数组$array添加一个数组元素.$array[]=array(1,2,3);表明$array这个数组有一个元素,这个元素还是一个数组,里面有三个元素.==========$array=array(1,2,3);定义了一个有三个元素的数组.即$array这个数组中有三个元素.============不带[]一般用在定义或初始化
一个很简单的PHP面向对象问题如果不是写在类里你这个就是一个函数如果写在类里你这个就是一个类里的一个方法function_get()括号里如果没有参数就不要填直接调用这个函数可以了括号中间的是参数,意思就是你写这个函数的时候需要外部调入的数据才能完成function__set($name,$value)不一定是类里的属性不是很熟悉对类是外部传入的参数比如$a=1;$b=8
php时间函数问题使用date("Y-m-dH:i:s",time())date将服务器的时间格式化。语法:stringdate(stringformat,int[timestamp]);返回值:字符串函数种类:时间日期内容说明返回值的�字符串依配置的格式来决定。若有传入时间戳记值,则将时间戳记格式化返回;若无传入时间戳记值,则将目前服务器的时间格式化返回。
php函数基础问题1、int,bool是指函数的返回值类型。2、第一个string是参数类型,第二个string是参数名。3、[,int..]表示可选参数,不输入的话则使用默认值,逗号在前边是跟前边的参数隔开。。。PHP的问题,编写一个程序对三个数按由小到大的顺序排列以下是一个简单的PHP程序,用于对三个数进行由小到大的排序:php<?phpfunctionsor
php的日期函数的问题date函数返回各种格式的日期值,date(格式,[日期]),第一个参数是格式,第二个参数是日期,第二个参数可以省略(当前日期),例如date('l')就得到当前星期的完整名称,参数是小写的字母L,结果是Sunday到Saturday。date函数详细的格式字符如下:格式字串可以识别以下format参数的字符串format字符说明返回值例子
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01
2024-09-10 08:50:00