我正在尝试使用is_callable
来检查类和方法是否存在,它非常好但仍然显示我的include参数。
以下是代码:
if(!is_callable(array(self::$classy,self::$action))) {
self::$classy = 'index';
self::$action = 'index';
}
以下是结果:
.;C:\php5\pear;./lib;./model;./helper;./controller;/model/;/helper/;/controller/;/lib.
仅当返回值为true时才会发生这种情况,这意味着该方法不可调用或类不在已注册的自动加载中。
任何想法???
答案 0 :(得分:1)
你说你正在检查是否存在类和方法..所以我的第一个问题是,你不能使用class_exists();
和method_exists();
吗?
在类上要求某些方法的另一个想法是使用接口。然后你只需要确保该类存在,如果您在接口中定义的方法在所述类中不可用,PHP应该给出一些消息。
答案 1 :(得分:0)
应该这样做:
ob_start(); //激活outputbuffering(阻止服务器向客户端发送任何内容)
如果(!is_callable(阵列(自:: $优雅,自:: $动作))) {
self::$classy = 'index'; self::$action = 'index';
}
ob_end_clean(); //结束输出缓冲并丢弃生成的任何输出