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

什么时候应该在PHP类中声明变量?

邵飞宇
2023-03-14
问题内容

我是OOP范式的新手,所以可能对此问题有一个简单的解释…

您是否总是需要在类中声明公共对象范围的变量?例如:

<?php

class TestClass
{
    var $declaredVar;

    function __construct()
    {
        $this->declaredVar = "I am a declared variable.";
        $this->undeclaredVar = "I wasn't declared, but I still work.";
    }

    function display()
    {
        echo $this->declaredVar . "<br />";
        echo $this->undeclaredVar;
        echo "<br /><br />"; 
    }
}

$test = new TestClass;
$test->display();

$test->declaredVar = "The declared variable was changed.";
$test->undeclaredVar = "The undeclared variable was changed.";

$test->display();

?>

在此代码中,即使$declaredVar是唯一声明的变量,$undeclaredVar也一样可访问和可用-似乎就像我将其声明为public一样。

如果未声明的类变量始终可以这样访问,那么将它们全部预先声明的意义何在?


问题答案:

该变量不是未初始化的,只是未声明的。

在类定义中声明变量是提高可读性的一种方式。另外,您可以设置可访问性(私有或公共)。

无论如何,显式声明变量与OOP无关,它是特定于编程语言的。在Java中,您不能这样做,因为必须显式声明变量。



 类似资料:
  • 问题内容: 我正在尝试使用 BufferedReader 通过URL上的InputStreamReader 从Web文档中读取文本(到某些Apache服务器上的文件)。 现在,这很好。但是显然,我希望读者不要只读一行,而应该读文件中的所有行。 查看BufferedReader API,以下代码应做到这一点: 即在有更多行时读取所有行,在没有更多行时停止。但是,此代码不起作用-读者 永远不会 报告

  • 声明集合不会抑制其任何功能(仍然可以、、、等),但允许编译器进行更多优化。 在什么情况下,最好更改引用(不允许使用final)而不是使用现有集合的方法?

  • 问题内容: 我已经用python编程了大约两年了。主要是数据资料(熊猫,mpl,numpy),还有自动化脚本和小型Web应用程序。我试图成为一个更好的程序员,并增加我的python知识,而困扰我的一件事是我从未使用过一个类(除了为小型Web应用程序复制随机烧瓶代码外)。我通常理解它们是什么,但是我似乎无法为为什么在一个简单的函数中需要它们的问题而wrap之以鼻。 为了使我的问题更具针对性:我编写了

  • 问题内容: 在工作中进行大量重构的中间,我希望引入stdClass *作为从函数返回数据的一种方式,并且我试图找到非主观论据来支持我的决定。 是否有任何情况下最好使用一种而不是另一种? 使用stdClass而不是数组有什么好处? 有人会说,函数必须尽可能少且特定,才能返回一个值。 我决定使用stdClass是暂时的,因为从长远来看,我希望为每个进程找到正确的Value Objects。 问题答案:

  • 问题内容: 我知道他们两个都禁用了Nagle的算法。 我什么时候应该/不应该使用它们中的每一个? 问题答案: 首先,不是所有人都禁用Nagle的算法。 Nagle的算法用于减少有线中更多的小型网络数据包。该算法是:如果数据小于限制(通常是MSS),请等待直到收到先前发送的数据包的ACK,同时累积用户的数据。然后发送累积的数据。 这将对telnet等应用程序有所帮​​助。但是,在发送流数据时,等待A

  • 问题内容: 在该类中,有两个字符串,和。 有什么不同?我什么时候应该使用另一个? 问题答案: 如果你的意思是和则: 用于在文件路径列表中分隔各个文件路径。考虑在上的环境变量。您使用a分隔文件路径,因此在上将是;。 是或用于拆分到特定文件的路径。例如在上,或