我想知道哪种方法被认为是最佳实践,为什么?
拥有该功能,因此它会尝试获取传入的任何内容。
class Test{
private $first = 'first';
private $second = 'second';
public function data($what){
return $this->{strtolower($what)};
}
}
或有一组固定的选项:
class Test{
private $first = 'first';
private $second = 'second';
public function data($what){
switch(strtolower($what)){
case 'first':
$value = $this->first;
break;
case 'second':
$value = $this->second;
break;
default:
$value = null;
}
return $value;
}
}
使用第一个选项意味着我不需要在每次向类中添加新成员时都更改函数,但这也意味着我不能再拥有private
类成员。
使用第二个选项意味着我每次添加新成员时都需要更改函数,但这意味着我可以确保没有读取不应该读取的内容。
使用第一种方法,如果我想为特定成员添加额外的处理,我可以为这些成员添加一个 if 语句。
使用第二种方法,我可以在 case 语句中进行处理。