这是一个场景
class page {
public $name;
public $title;
public function showhead() {
return "<head><title>".$this->title."</title></head>";
}
}
$mypage = new page;
$mypage->title = "My Page title";
$mypage->showhead();
Run Code Online (Sandbox Code Playgroud)
和另一种情况
class page {
public $name;
public function showhead($title) {
return "<head><title>".$title."</title></head>";
}
}
$mypage = new page;
$mypage->showhead("My Page title");
Run Code Online (Sandbox Code Playgroud)
在这些方法中,哪个更好,哪个应该避免?为什么?
传递参数之间总是存在一些紧张关系(单独或在不可变的聚合类型中,PHP中并不存在)并将它们存储在某处(无论是类属性,全局,等等).OOP的一个好处是,您可以将状态存储在对象中并从封装中受益(防止许多意外覆盖数据),同时避免使用变量污染符号表.使用这些可变对象有其自己的一组问题,特别是如果我们进入多线程编程,但这在PHP中是一个较小的问题.
在您的特定情况下,我认为将标题存储在对象中会更好.正如In silico所说,它似乎属于page,并且最重要的是你可以做以下事情:
$page = new page;
$page->setTitle("whatever");
...
function doStuff($page) {
...
$page->showhead();
}
Run Code Online (Sandbox Code Playgroud)
然后你不必$page与标题一起传递.
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |