0
私はそれを継承するいくつかのクラスを持つ基本クラスを持っています。変数型の変更phpDoc
class Pet{
...
}
class Dog extends Pet{
...
}
class Cat extends Pet{
...
}
それから私は、これらのクラスは、私が受け取ることになりますいくつかのJSONオブジェクトに基づいています
class Person{
/** @var Pet */
public $pet;
}
このクラスを消費し、別のクラスを持っています。 JSONオブジェクトには、DogオブジェクトまたはCatオブジェクトを含めることができます。私はswitch
ステートメントを実行して、それが実行時にどれであるか把握し、適切に処理します。しかし、私はそれが猫であるか犬であるかにかかわらず、PHPDocを介してタイプヒントを得たいと思います。私は実行時にタイプがPet
からDog
に変更されたことを指定する方法を理解することができませんでした。これはうまくいきませんでした。それはまだ普通の古いPet
オブジェクトだと思っています。
$pet = json_decode($jsonObj);
if($pet->type == "dog"){
/** @var Dog */
$pet = $pet;
}
PHPDocを使用して実行時に型をサブタイプに変更するにはどうすればよいですか?