2012-04-07 14 views
0

親サブクラスを持つ変数を作成する必要があります。 例:PHP5のサブクラスで変数を作成する方法

親クラス

<?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; 
    } 
} 
?> 

<?php 
$parentClass = new parentClass(); 
?> 
parentClassを実行します

現在

お知らせ:未定義のプロパティ:サブクラス:: $ newVariable ライン6

上subclass.phpに、私は本当にこの必要があります。

は良い感触を!!!

ソリューション:

<?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; 
    } 
} 
?> 
+2

サブクラスで 'var $ newVariable'? –

+0

@eicto、私は新しい変数を作成する必要があります。コードを見て...ありがとう! –

+1

私は今コードを見て、それは無限ループに見えますか? –

答えて

4

あなたはサブクラスでプロパティを宣言する必要があります。

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

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

EDIT

それは、こと、またはmagic methodsのいずれかを使用しているのです非常にエレガントではない、あなたのコードをデバッグするのを難しくすることができます。

関連する問題