有人可以向我解释一下 PHP 中对象作用域的概念吗?我对 PHP 中的对象非常陌生,我问这个问题的原因是因为我能够在 if 语句中创建一个对象,然后在 if 语句范围之外访问该对象。
示例:
//only create object if some condition is met
if ($conditionTrue){
$myBook = new Book('PHP for Dummies','softcopy');
}
$myBook.read();
我本以为这会产生错误,但事实并非如此。
我的问题的一些背景
我试图弄清楚如何根据满足的条件确定要调用哪个构造函数。唯一可以想到的方法是引入一个 if 语句,但这样做,我认为会带来范围问题,但事实并非如此,我只是想知道为什么......
最佳答案
在 PHP 中,if 没有自己的作用域。所以是的,如果您在 if 语句内或 block 内定义了某些内容,那么它将可用,就像您在外部定义它一样(当然,假设 block 内或 if 语句内的代码可以运行)。有关 PHP 范围的更多信息,请阅读 variable scope手册页。
关于PHP 对象范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16074717/