我正在使用 php 中存在的函数,但它给了我:bool(false)。我的编码中的语法错误在哪里?
<?php
class Test{
public function moneydays(){
return null;
}
}
var_dump(function_exists('$moneydays'));
?>
我正在使用 php 中存在的函数,但它给了我:bool(false)。我的编码中的语法错误在哪里?
<?php
class Test{
public function moneydays(){
return null;
}
}
var_dump(function_exists('$moneydays'));
?>
在这种情况下,您必须使用 method_exists
method_exists('Test','moneydays');
例子
echo method_exists('Test','moneydays') ? 'Yes' : 'No';
在您的代码示例中,您有两个错误:
$moneydays
不存在Test::moneydays()
是一种方法。不是函数。要扩展#2,即使您有正确的代码var_dump(function_exists('moneydays'));
,它仍然不会给您期望的结果,因为function_exists()
只会告诉您函数是否定义了它正在使用的范围。要测试一个方法是否存在,您需要使用method_exists()
这将检查一个类以查看它是否具有指定的方法。
对于初学者来说,$
不应该在那里。但另外你正试图在一个类中找到一个函数,所以你需要使用method_exists
.
由于方法不是静态的,你必须先实例化类,然后检查它是否有方法:
$instance = new Test;
var_dump(method_exists($instance,"moneydays"));