Var关键字在核心中的用法

时间:2013-11-25 作者:Twifty

我注意到整个核心中的许多类都使用var 关键字尚未在注释(写在变量上方)中声明为私有访问。The PHP docs 国家:

出于兼容性原因(作为public关键字的同义词),仍然支持使用var关键字声明变量的PHP 4方法。在5.1.3之前的PHP 5中,它的使用将生成一个E\\u严格警告。

一、 它是公共的。那是哪一个呢?(还有人使用PHP 4吗?)

就我而言,我正在扩展WP_Error 类并希望访问errors 变量(我想array_merge 而不是拜访add 对于每个错误)。The Codex 简单地提到它是这个类的“财产”,这让我觉得它是为了公开。那么,要么内联注释错误,要么抄本错误,哪一个?

我知道它被宣布var 将其公开,但我如何知道在下一个版本中,它是否不会被更改?

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

通常WordPress向后兼容性为very 强,(有时太强了)。

因此,公共属性(属性声明为varpublic 在任何影响下)在将来的版本中成为私有。但是,正如您所注意到的,该变量在class doc block中标记为private,这意味着开发人员不应该直接使用该变量,而是通过公共方法使用该变量,因此在将来的版本中(当核心开发人员决定删除任何PHP 4代码时),属性将声明为private的可能性将增加。

我的建议是忽略建议并访问变量direclty,或者更好地使用getter-like

function get_errors() {
  return $this->errors;
}
如果在未来的版本中,变量private 并且没有添加公共getter,请尝试调整代码,或者向core提交一个补丁,添加getter和/或将变量声明为protected.

结束