PHPを学び始めて、このようなことはできるのかな?という素朴な質問になります。
質問
constructorを通さず、メンバ変数を設定し、そのclassを返してほしいです。
class Test{ private $name; private $old; public function __construct($name) { $this->name = $name; } public function getName() { return $this->name; } public function getOld() { return $this->old; } }
このようなnameとoldをconstructorでsetしてgetterで返せるclassがあった場合
$testClass = new Test("me"); echo $testClass->getName(); // me
このように取得できると思います。
$wantClass = //何かで me と 20を渡す echo $wantClass->getName(); //me echo $wantClass->getOld();; //20
と出てほしい場合にはどのようにしたらいいのでしょうか?
考えた案1
__constoructor($name, $old=0){ $this->name = $name; $this->old = $old; }
のように生成してもいいと思っているのですが、できればデフォルト値を持たせたくなく
static public function create($name, $old){ $this->name = $name; $this->old = $old; return このクラス; } $wantClass = Test::create("me", 20) //のような感じ echo $wantClass->getName(); //me echo $wantClass->getOld();; //20
このような感じで作れたりしないのでしょうか?
ググりすぎて覚えてないのですが、constructorがオーバーロードできるやつであれば可能なのかなと思いましたが、phpは無理ですよね?
雑な質問になりますが、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー