我有一个PHP类,在这个例子中我只是调用MyClass
。如果在这个类中出现问题,它会抛出一个我正在捕获的异常。在这个catch块中,我需要访问MyClass
的一些公共类属性,但由于某种原因,它们都返回NULL
。代码如下。
try {
$myClass= new \sys\global\MyClass($id);
} catch (Exception $e) {
die(var_dump($myClass->reading));
}
以上是打印NULL
到页面,即使reading
是MyClass
的公共属性:
namespace sys\global;
class MyClass {
public $reading = 10;
// ... other class code
}
我甚至在抛出异常之前在类中完成了die(var_dump($this->reading))
,它的值为10
。
在类中抛出异常会破坏它吗?
答案 0 :(得分:2)
如果在构造函数中抛出异常,则不会创建该对象。即,您无法访问不存在的对象的属性。
答案 1 :(得分:1)
根据例外情况,您可能无法访问成员。在这种情况下,您的异常会在$myClass
的构造函数中出现,所以我怀疑您的对象是否正确创建,因此意味着您无法访问其属性。