在C#是實例時如何在實例時間設置屬性值?
這樣的代碼
People p = new People(){Name = "John", Age = 18};
通常設置對象屬性在PHP中有着這樣的任何解決方案?
在C#是實例時如何在實例時間設置屬性值?
這樣的代碼
People p = new People(){Name = "John", Age = 18};
通常設置對象屬性在PHP中有着這樣的任何解決方案?
目前,除了normal constructor methods,不,你不能這樣做,在PHP。然而,RFC的here和here與此類似,因此可能在幾個版本的時間內可用。
你可以這樣做
class People() {
public $name = "";
public $age = "";
public function __construct($name,$age) {
$this->name = $name;
$this->age = $age;
}
}
$obj = new People("John", 18);
欲瞭解更多信息,您可以訪問:http://php.net/manual/en/language.oop5.php
這是工作,但我不想把它放在參數中,因爲它可以將參數列表這麼長,並且需要依次設置值 – Lai32290
比你可以使用PHP的getter和setter。文檔在這裏http://www.php.net/manual/en/language.oop5.overloading.php#object.get –
這將取決於班級的建設,但你可以做到這一點。
<?php
class Person {
public function __construct(array $params = array()) {
foreach ($params as $property => $value) {
$this->{$property} = $value;
}
}
}
$p = new Person(array('Name' => 'Bob', 'Age' => 18));
echo $p->Age; //18
你可以將它們傳遞給構造函數,但它有更好的getter和setter。 – BenM