実行時に動的にプロパティを追加できないPHPクラスを作成できますか?
-
30-10-2019 - |
質問
このクラスを例にとってください。
<?php
class Person
{
private $name = null;
private $dob = null;
public function __construct($name, $dob)
{
$this->name = $name;
$this->dob = $dob;
}
}
$potts = new Person('Matt', '01/01/1987');
var_dump($potts);
$potts->job = 'Software Developer'; // new dynamic property
var_dump($potts);
var_dump(get_object_vars($potts));
出力は次のとおりです。
object(Person)#1 (2) {
["name":"Person":private]=>
string(4) "Matt"
["dob":"Person":private]=>
string(10) "01/01/1987"
}
object(Person)#1 (3) {
["name":"Person":private]=>
string(4) "Matt"
["dob":"Person":private]=>
string(10) "01/01/1987"
["job"]=>
string(18) "Software Developer"
}
array(1) {
["job"]=>
string(18) "Software Developer"
}
動的プロパティを追加するのを停止することは可能ですか?クラス定義のプロパティのリストを取得することは可能ですか? (つまり、動的ではなく、実行時に追加されたプロパティ)
正しい解決策はありません
所属していません StackOverflow