PHP 对象范围

标签 php oop scope

有人可以向我解释一下 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/

相关文章:

java - 在不使用比较器的情况下按不同属性比较对象

PHP/HTML 使用两个表并获取要在 html 表中使用的名称

php - Laravel:App::setLocale 不起作用

php - 在 php 中运行 javascript

java - 扩展 JFrame 与在程序中创建它

ruby-on-rails - has_many 关系的每个最后一个元素的范围

mysql - 用 PHP 清理撇号

javascript - 如何在 JavaScript 中获取 "extended"原型(prototype)属性或函数? jQuery 插件中的常见做法

rust - 在Rust中,什么是保持范围内文件中数据读取的正确方法?

javascript - js : accessing scope of parent class