当前位置: 首页 > 面试题库 >

PHP中的隐式类变量声明?

刘海
2023-03-14
问题内容

我一直在看一些代码,很难在php类中计算变量声明。具体来说,似乎我正在查看的代码在使用它们之前没有声明类变量。现在这是可以预期的,但是我找不到任何表明可能的信息。所以您会期望这样:

class Example
{

    public function __construct()
    {
        $this->data = array();
        $this->var = 'something';

    }

}

上班?并在类实例上创建这些变量以供以后使用吗?


问题答案:

这与正常变量声明的工作原理相同:

$foo = 'bar'; // Created a new variable

class Foo {
    function __construct() {
        $this->foo = 'bar'; // Created a new variable
    }
}

PHP类与其他语言不太一样,在其他语言中,需要将成员变量指定为类声明的一部分。PHP类成员可以随时创建。

话虽如此,如果 应该 将变量public $foo = null;声明为类的永久成员, 则应
像在类声明中那样声明变量,以明确表达其意图。



 类似资料:
  • gcc是否有一个选项来禁用未显式定义为volatile的全局变量的读/写优化? 我的团队正在耗尽我们的嵌入式C项目的程序内存,该项目使用gcc构建。当我启用优化以减少代码大小时,代码不再像预期的那样工作,因为我们没有在我们应该使用的地方使用volatile关键字。也就是说,我能够通过声明在ISRs Volatile中访问的几个变量来解决呈现的问题。然而,我并不确定这些是我需要声明volatile的

  • 问题内容: 我是OOP范式的新手,所以可能对此问题有一个简单的解释… 您是否总是需要在类中声明公共对象范围的变量?例如: 在此代码中,即使是唯一声明的变量,也一样可访问和可用-似乎就像我将其声明为public一样。 如果未声明的类变量始终可以这样访问,那么将它们全部预先声明的意义何在? 问题答案: 该变量不是未初始化的,只是未声明的。 在类定义中声明变量是提高可读性的一种方式。另外,您可以设置可访

  • 问题内容: 我有这样的代码: 有什么方法可以在一处定义全局变量并使所有函数一次访问该变量?不利用更多? 问题答案: 该数组可以代替使用: 从手册: 包含对所有变量的引用的关联数组,这些变量当前在脚本的全局范围内定义。变量名是数组的键。 如果您有一组需要一些公共变量的函数,那么带有属性的类可能是一个不错的选择,而不是全局的:

  • 其实新版的Time::print并不需要这么复杂。我们并非真的需要创建局部变量来引用当前对象的实例变量。 如果函数引用hour,minute或者second时,只写它们本身,而不写点号,C++知道它指的是当前对象。所以我们本可以这么写: void Time::print() { cout << hour << ":" << minute << ":" << second <<endl;

  • 当我试图运行我的BMI计算器时,我经常遇到这样一个错误“Cannot resolve method'println(java.lang.String,double)”当我试图运行我的BMI计算器时,我如何为一个double类型的变量声明一条语句?请帮帮我。这是我代码的链接

  • 问题内容: 我想知道为什么Java对于具有相同名称的实例变量的超类和子类具有这种奇怪的行为。 假设我们有以下类定义: 通过这样做,我们应该隐藏了超类的变量。如果我们没有明确指定的方式来访问的通过电话,那么我们就应该永远无法获得一个孩子的一个实例。 但是,当我们进行强制转换时,此隐藏机制将中断: 这不是完全避开整个野外躲藏点吗?如果是这种情况,那么这是否会使该想法完全没有用? 在子类中,不能用其简单