我的问题更多是关于术语然后是技术性的(或者是它?).
类中的getter方法和公共方法有什么区别?它们是同一个还是它们之间有区别?
我问,因为我正在努力学习最好的编码实践,这个领域对我来说似乎很灰暗.我正在评论我的代码,并注意到我有一个名为“Getters”的大部分和另一个名为“公共方法”的大部分然后我就像……“什么是差异?!”.
谢谢!
解决方法:
简单来说,PHP中的getter只是一种允许代码的其他部分访问某个类属性的方法.
例如:
<?php
class Person {
private $name;
public function __construct($name) {
$this->name = $name;
}
// Getter
public function getName() {
return $this->name;
}
}
$bob = new Person('Bob');
echo $bob->getName(); // Bob
?>
一种方法可能不一定只是为了返回一个属性;你可以创建其他方法,以便你的班级可以做一些时髦的事情.
为了扩展上面的例子,让我们给Person类一个名为say()的方法,并给它一个函数/方法参数来表示说什么:
public function say($what) {
printf('%s says "%s"', $this->name, $what);
}
在我们从类中创建一个对象之后调用它:
$bob = new Person('Bob');
echo $bob->getName(), "\n"; // Bob
$bob->say('Hello!'); // Bob says "Hello!"
请注意,在say()方法中,我引用了$this-> name.没关系,因为$name属性在同一个类中找到. getter(及其相应的setter,如果有的话)的目的是允许代码的其他部分访问此属性.