それを動作させる方法はありますか?例を参照してください:PHPのクラス置換
class car {
function __construct($type){
switch ($type) {
case 'big' : return new big_car();
case 'small' : return new small_car();
}
}
function whatisit() {
echo "this is car ;(\n";
}
}
class big_car extends car {
function __construct(){}
function whatisit() {
echo "this is big car ;) \n";
}
}
class small_car extends car {
function __construct(){}
function whatisit() {
echo "this is small car ;) \n";
}
}
ので、目標はこのようにそれを使用することです。
$mycar = new car('big');
$mycar->whatisit(); // i want it to say that it's big
私はその悪い道、非常に多くを推測し、それがこのように動作することはできませんが、多分トリックはありますか?
PSは::私はそのための特別な静的メソッドを使用することができます知っているが...
コンストラクタは、PHPの値を返すことはできません。別の方法が必要です。 – NullUserException
ニックネーム+アバターのために@kitty upvoted。 – moonwave99
"car"インターフェイスと "car"ファクトリを追加する必要があります。両方を一緒に実行しようとすると、醜くて難しくなります。 – Xeoncross