如何阻止is_callable显示包含

时间:2010-10-01 06:44:12

标签: php

我正在尝试使用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时才会发生这种情况,这意味着该方法不可调用或类不在已注册的自动加载中。

任何想法???

2 个答案:

答案 0 :(得分:1)

你说你正在检查是否存在类和方法..所以我的第一个问题是,你不能使用class_exists();method_exists();吗?

在类上要求某些方法的另一个想法是使用接口。然后你只需要确保该类存在,如果您在接口中定义的方法在所述类中不可用,PHP应该给出一些消息。

答案 1 :(得分:0)

应该这样做:

  

ob_start(); //激活outputbuffering(阻止服务器向客户端发送任何内容)

     

如果(!is_callable(阵列(自:: $优雅,自:: $动作)))   {

self::$classy = 'index';
self::$action = 'index'; 
     

}

     

ob_end_clean(); //结束输出缓冲并丢弃生成的任何输出