【发布时间】: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