2016-03-25 8 views
1

これは私のコードですsemplified 私は何かを出力しようとしていますが、他の関数を返しましたが動作しません。 私はまた、これはあなたが探しているものである代わりに$this->PHPの出力関数は、クラスを介して戻ります

class a{ 
    function a(){ 

     return "aaaaaaaaaaaaaaaaah"; 

    } 
    function b(){ 
     return "bbbbbbb"; 
    } 
} 
$a = new a; 
class b{ 
    function ea($a){ 
     return "oajs$a"; 

    } 
    function f(){ 
     global $a; 
     $blah = $this->ea("asd"); 
     $blah .= $a->a; 
     return $blah; 
    } 
} 
$b = new b; 
echo $b->f; 
+1

質問、特定の問題やエラーや問題自体でそれを再現するために必要な最短のコードを希望の動作を含める必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve) –

+3

'$ b-> f'はクラス' b'の**プロパティ**を検索しています。あなたは**メソッド** 'f()'を持っているので、 '$ b-> f()'をエコーし​​ます。あなたはクラスを使っているので、 'global'を混乱させる必要はありません。単純に' a'のインスタンスを挿入して使用することができます。注入は、クラス「b」のコンストラクタまたはセッタメソッドを介して行うことができます。 –

答えて

0

self::を使用してみました。デバッグの助け求めて(「なぜこのコードは動作しないの?」)

class a { 
    public function a(){ 
     return 1; 
    } 
    public function b(){ 
     return 2; 
    } 
} 
class b{ 
    public $a; 
    public function __construct() { 
     $this->a = new a(); 
    } 
    public function ea($a){ 
     return "ao$a"; 
    } 
    public function f(){ 
     $blah = $this->ea("stuff"); 
     $blah .= $this->a->b(); 
     return $blah; 
    } 
} 
$b = new b(); 
echo $b->f(); 
関連する問題