如何在PHP5中创建子类中的变量

时间:2012-04-07 03:08:18

标签: php oop class

我需要用父子类创建一个变量。 例如:

父类

<?php
class parentClass
{
    function __construct()
    {

        $subClass = new subClass();
        $subClass->newVariable = true;

        call_user_func_array( array( $subClass , 'now' ) , array() );

    }
}
?>

子类

<?php
class subClass extends parentClass
{
    public function now()
    {
        if( $this->newVariable )
        {
            echo "Feel Good!!!";
        }else{
            echo "Feel Bad!!";
        }
        echo false;
    }
}
?>

执行parentClass

<?php
$parentClass = new parentClass();
?>

目前

  

注意:未定义的属性:sublass.php on中的subClass :: $ newVariable   第6行

我真的需要这个:

  

感觉很好!!!

解决方案:

<?php
class parentClass
{
    public $newVariable = false;

    function __construct()
    {

        $subClass = new subClass();
        $subClass->newVariable = true;

        call_user_func_array( array( $subClass , 'now' ) , array() );

    }
}
?>

<?php
class subClass extends parentClass
{
    public function now()
    {
        if( $this->newVariable )
        {
            echo "Feel Good!!!";
        }else{
            echo "Feel Bad!!";
        }
        echo false;
    }
}
?>

1 个答案:

答案 0 :(得分:4)

您必须在子类中声明属性:

<?php
class subClass extends parentClass
{
    public $newVariable;

    public function now()
    {
        if( $this->newVariable )
        {
            echo "Feel Good!!!";
        }else{
            echo "Feel Bad!!";
        }
        echo false;
    }
}
?>

修改

或者使用magic methods,这不是很优雅,并且可能使您的代码难以调试。