【问题标题】:PHP static method and static variable, is my solution correct?PHP静态方法和静态变量,我的解决方案正确吗?
【发布时间】:2014-06-26 17:04:01
【问题描述】:

我正在进行一项测试以保持我的技能,但我有一个问题我不是 100% 确定的。

“鉴于我们要运行 Test::outputTimesFive(),下面的代码 sn-p 有一个错误。”

class Test
{
public $_value = 2;

public function __construct()
{
         $this->_value = 3;
     }

 public static function outputTimesFive()
     {
         echo self::$_value * 5;
     }
 }

假设我只能指向错误的一行代码,当然是行:

public $_value = 2;

因为那是不允许静态方法Test::outputTimesFive 正常工作的原因。 通过将static 添加到该变量中,我使该方法能够正常工作,但同时我已经“杀死”了构造函数。

在我们谈论仅执行该静态方法的问题中,没有人谈论创建该对象的实例,那么您怎么看?我的想法对吗?

【问题讨论】:

  • 静态函数可以instantiate self 然后它不会破坏构造函数,但问题背后的意图实际上并不清楚 - 这是一个不好的例子 - 它也不适合 Stack Overflow . Code Review 你可能会有更多的运气
  • 我认为你是对的。我不喜欢这样表达的问题。以下代码 sn-p 总是 有不止一个错误,您永远不确定 smo 是否试图欺骗您,这样的答案被认为是正确的。问“一个严重错误”或“使这样的方法调用一次更正”的问题是什么?
  • 顺便说一句。如果它是“标记正确答案”测试并且其中一个答案(在有错误的建议行中)只是“否”,我肯定会标记:)
  • 非常感谢你们的回应。我不想表现得像有需要的人,所以我发表了我的想法和答案,我想咨询你,没有缺点,所以再次感谢:) 我也会检查代码审查,谢谢 - 我不知道关于这个网站。他们会问“我们应该更正哪一行以允许 Test::outputTimesFive() 运行以及该函数输出中的数字是多少”。

标签: php class variables methods static


【解决方案1】:

行号3是正确的指出。主要问题是关于静态方法的,我们需要尽一切努力确保它在正确后能够工作。另外 - 正如你们所说,我对构造函数的看法是错误的 - 构造函数无论如何都会正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 2011-06-29
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多