直接上代码:
namespace MyNamespace;
class Exception extends \Exception {}
$a = new Exception('error');
$b = new Exception('error');
var_dump($a instanceof Exception);
var_dump($b instanceof \Exception);
这个的执行结果为:
求助一下大伙们,第二个为什么是 true的结果?
直接上代码:
namespace MyNamespace;
class Exception extends \Exception {}
$a = new Exception('error');
$b = new Exception('error');
var_dump($a instanceof Exception);
var_dump($b instanceof \Exception);
这个的执行结果为:
求助一下大伙们,第二个为什么是 true的结果?
$b 的类是 \MyNamespace\Exception, \MyNamespace\Exception 是 \Exception 的子类,所以当然为 true
啦!
补充:
我理解你可能需要的是 get_class()
var_dump(get_class($b) === 'MyNamespace\Exception');
class A {}
class B extends A {}
$b = new B();
因为B继承了A, 所以$b当然是可以视为是A的一个实例的, 并没有什么问题, 见:
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答1.4k 阅读✓ 已解决
792 阅读
638 阅读
OOP编程中继承问题
Exception继承于Exception,所有的Exception实例同时也是Exception的实例