我不是PHP开发人员,所以我想知道在PHP中,使用纯OOP风格的显式getter / setters是否具有私有字段(我喜欢这样)是否更受欢迎:
class MyClass {
private $firstField;
private $secondField;
public function getFirstField() {
return $this->firstField;
}
public function setFirstField($x) {
$this->firstField = $x;
}
public function getSecondField() {
return $this->secondField;
}
public function setSecondField($x) {
$this->secondField = $x;
}
}
或只是公共领域:
class MyClass {
public $firstField;
public $secondField;
}
谢谢
您可以使用php magic methods __get and __set.
<?php
class MyClass {
private $firstField;
private $secondField;
public function __get($property) {
if (property_exists($this, $property)) {
return $this->$property;
}
}
public function __set($property, $value) {
if (property_exists($this, $property)) {
$this->$property = $value;
}
return $this;
}
}
?>