-1

我正在使用 php 中存在的函数,但它给了我:bool(false)。我的编码中的语法错误在哪里?

<?php

class Test{

  public function moneydays(){

    return null;

  }

}
var_dump(function_exists('$moneydays'));
?>
4

3 回答 3

2

在这种情况下,您必须使用 method_exists

method_exists('Test','moneydays');

例子

echo method_exists('Test','moneydays') ? 'Yes' : 'No';
于 2013-03-05T01:38:27.023 回答
2

在您的代码示例中,您有两个错误:

  1. $moneydays不存在
  2. Test::moneydays()是一种方法。不是函数。

要扩展#2,即使您有正确的代码var_dump(function_exists('moneydays'));,它仍然不会给您期望的结果,因为function_exists()只会告诉您函数是否定义了它正在使用的范围。要测试一个方法是否存在,您需要使用method_exists()这将检查一个以查看它是否具有指定的方法

于 2013-03-05T01:37:33.373 回答
0

对于初学者来说,$不应该在那里。但另外你正试图在一个类中找到一个函数,所以你需要使用method_exists.

由于方法不是静态的,你必须先实例化类,然后检查它是否有方法:

$instance = new Test;
var_dump(method_exists($instance,"moneydays"));
于 2013-03-05T01:39:25.610 回答