4

我不能这样做,但想知道什么会起作用:

is_object(new Memcache){
   //assign memcache object    
   $memcache = new Memcache;
   $memcache->connect('localhost', 11211);
   $memcache->get('myVar');
}
else{
   //do database query to generate myVar variable
}
4

4 回答 4

12

您可以使用class_exists()来检查一个类是否存在,但如果您可以实例化该类,它将不会返回!

你不能的原因之一可能是它是一个抽象类。要检查这一点,您应该检查class_exists().

对于上面的例子,这可能是不可能的(有一个抽象类,不检查它),但在其他情况下可能会让你头疼:)

//first check if exists, 
if (class_exists('Memcache')){
   //there is a class. but can we instantiate it?
   $class = new ReflectionClass('Memcache') 
   if( ! $class->isAbstract()){
       //dingdingding, we have a winner!
    }
}
于 2014-02-12T15:24:18.087 回答
4

class_exists

if (class_exists('Memcache')){
   //assign memcache object    
   $memcache = new Memcache;
   $memcache->connect('localhost', 11211);
   $memcache->get('myVar');
}
else{
   //do database query to generate myVar variable
}
于 2012-08-30T19:52:32.470 回答
0

退房class_exists()

http://php.net/manual/en/function.class-exists.php

于 2012-08-30T19:52:49.290 回答
0

您可以使用该class_exists函数查看一个类是否存在。

在手册中查看更多信息:class_exists

于 2012-08-30T19:53:21.320 回答