【发布时间】:2014-09-29 09:13:34
【问题描述】:
是否有检查某个类中是否存在构造函数的函数/方法?我尝试了 function_exists() 方法/函数,但它看起来不起作用:
<?php
class Test {
public function __construct() {
echo 'Construct loaded.<br />';
if (function_exists('__construct'))
echo 'Function exists.';
else
echo 'Function doesn\'t exists.';
}
}
new Test;
更新(感谢大家,这个有效):
<?php
class Test {
public function __construct() {
echo 'Construct loaded.<br />';
}
}
$t = new Test;
if (method_exists($t, '__construct'))
echo 'Function exists.';
else
echo 'Function doesn\'t exists.';
更新 #2
因为我在创建新对象之前需要这个,所以我最终得到了这段代码(我添加了它以防将来有人会读到这个):
<?php
class Test {
public function __construct() {
echo 'Construct loaded.<br />';
}
}
//$t = new Test;
if (method_exists('Test', '__construct'))
echo 'Function exists.';
else
echo 'Function doesn\'t exists.';
【问题讨论】:
-
function_exists 正在检查是否存在 全局函数,而不是类方法....尝试使用 method_exists()
-
因为
function_exists('__construct')正在检查函数,而不是类方法。 -
我想这只是一个例子,但我确实希望你没有检查其内部是否存在构造函数......?!
-
@deceze no...这只是为了这个例子。否则就没有意义了。 :D
-
@tastro 如果您找到了
function_exists,并查看了手册(当然您已经查看了),则有一个“请参阅”部分,其中总是包含一些有用的内容。
标签: php constructor exists