草庐IT

php - php获取一个类的所有子类的方法

是否可以在php中获取给定类的所有子类? 最佳答案 functiongetSubclassesOf($parent){$result=array();foreach(get_declared_classes()as$class){if(is_subclass_of($class,$parent))$result[]=$class;}return$result;}巧合的是,这个实现恰好是theone在Vadim链接的问题中给出。 关于php-php获取一个类的所有子类的方法,我们在Stac

php - 子类是否继承父常量?如果是,我如何访问它们?

问题说明了一切。我在父类中定义了常量。我试过$this->CONSTANT_1但它不起作用。classMyParentClass{constCONSTANT_1=1;}classMyChildClassextendsMyParentClass{//IwanttoaccessCONSTANT_1} 最佳答案 我认为您需要像这样访问它:self::CONSTANT_1;或者“parent”,它始终是在父类中建立的值(即保持常量的不变性):parent::CONSTANT_1;有趣值得注意的一件事是,您实际上可以覆盖子类中的const值。

php - 子类是否继承父常量?如果是,我如何访问它们?

问题说明了一切。我在父类中定义了常量。我试过$this->CONSTANT_1但它不起作用。classMyParentClass{constCONSTANT_1=1;}classMyChildClassextendsMyParentClass{//IwanttoaccessCONSTANT_1} 最佳答案 我认为您需要像这样访问它:self::CONSTANT_1;或者“parent”,它始终是在父类中建立的值(即保持常量的不变性):parent::CONSTANT_1;有趣值得注意的一件事是,您实际上可以覆盖子类中的const值。

PHP 子类 Magic __isset 有效,但 __get 无效

我有一个抽象父类Mongo_Document(来自mongodb-php-odm)和一个继承类Model_ActionPlan。Mongo_Document具有神奇的__isset和__get方法,可与Mongo_Document类中的数组进行交互。我正在尝试使用以下代码(Model_ActionPlan方法内部的片段):if(isset($this->status)){if(($this->status==="closed")AND($this->close_type!="failure")){return;}}(请注意,如果status=='closed',则保证设置close_t

PHP 子类 Magic __isset 有效,但 __get 无效

我有一个抽象父类Mongo_Document(来自mongodb-php-odm)和一个继承类Model_ActionPlan。Mongo_Document具有神奇的__isset和__get方法,可与Mongo_Document类中的数组进行交互。我正在尝试使用以下代码(Model_ActionPlan方法内部的片段):if(isset($this->status)){if(($this->status==="closed")AND($this->close_type!="failure")){return;}}(请注意,如果status=='closed',则保证设置close_t

php - 将当前对象 ($this) 转换为子类

我有一个类,可能需要将对象更改为更进一步的后代类。这可能吗?我知道一种选择是返回它的副本,但改用子类,但实际上修改当前对象会很好......所以:classmyClass{protected$var;functionmyMethod(){//functionwhichchangestheclassofthisobjectrecast(myChildClass);}}classmyChildClassextendsmyClass{}$obj=newmyClass();$obj->myMethod();get_class_name($obj);//=>myChildClass

php - 将当前对象 ($this) 转换为子类

我有一个类,可能需要将对象更改为更进一步的后代类。这可能吗?我知道一种选择是返回它的副本,但改用子类,但实际上修改当前对象会很好......所以:classmyClass{protected$var;functionmyMethod(){//functionwhichchangestheclassofthisobjectrecast(myChildClass);}}classmyChildClassextendsmyClass{}$obj=newmyClass();$obj->myMethod();get_class_name($obj);//=>myChildClass

PHP:如何将子类 __construct() 参数传递给 parent::__construct()?

我有一个这样的PHP类:classParentClass{publicfunction__construct($arg){//Initializea/somevariable(s)basedon$arg}}它有一个子类,例如:classChildClassextendsParentClass{publicfunction__construct($arg){//Lettheparenthandleconstruction.parent::__construct($arg);}}如果由于某种原因,ParentClass需要更改以采用多个可选参数,我希望Child类提供“以防万一”?除非我重

PHP:如何将子类 __construct() 参数传递给 parent::__construct()?

我有一个这样的PHP类:classParentClass{publicfunction__construct($arg){//Initializea/somevariable(s)basedon$arg}}它有一个子类,例如:classChildClassextendsParentClass{publicfunction__construct($arg){//Lettheparenthandleconstruction.parent::__construct($arg);}}如果由于某种原因,ParentClass需要更改以采用多个可选参数,我希望Child类提供“以防万一”?除非我重

php - PHP 中的抽象常量 - 强制子类定义常量

我注意到在PHP中不能有抽象常量。有没有办法强制子类定义一个常量(我需要在其中一个抽象类内部方法中使用它)? 最佳答案 这可能有点“hack”,但只需很少的努力就可以完成这项工作,但如果常量未在子类中声明,则只会显示不同的错误消息。自引用常量声明在语法上是正确的并且解析没有问题,只有在该声明实际在运行时执行时才会抛出错误,因此抽象类中的自引用声明必须被覆盖在其他子类中将出现fatalerror:无法声明自引用常量。在此示例中,抽象父类Foo强制其所有子类声明变量NAME。此代码运行良好,输出Donald。但是,如果子类Fooling