2016-03-28 1 views
-1

私はこのクラスを持っていると言うことができます:私がしたいのは、特定の関数を使って何かをすることです。 1つの公開機能を持ち、その一部を実行できる方法で!index.phpの関数をこのクラスのように使用する - > publicF-> f()

CLASS DATA { 
     public function X() { 
      function A() { 
       //do_something 
      } 
     } 
} 

ここで私はindex.phpにあり、関数A()のみを呼び出したいと思います。 私は試しました$data->X()->A()しかし何も 試しました$data->X(A())もありません

これは可能ですか?

+0

流暢なインターフェイスで読み上げてください。 – Rizier123

答えて

0

あなたが書いたように、いいえ。あなたはJavascriptアプリケーションと同じように何かを構築しようとしているように見えます。しかし、Rizier123のように、このようなことをすることができます。

class Foo { 
    public function getBar(){ 
     return new Bar(); 
    } 
} 

class Bar { 
    public function someFunction() { 

    } 
} 


$foo = new Foo(); 

$foo->getBar()->someFunction(); 

私は、継承がより良いルートになるような方法でネストしたいと思っている理由は完全にはわかりませんが、

class Foo extends Bar { 

} 

class Bar { 
    public function someFunction() { 

    } 
} 


$foo = new Foo(); 

$foo->someFunction(); 

しかし、私は一貫性のある魔​​法の中で特定のコンストラクタパラメータを渡す方法として前者を使うことができると思います。

class Foo { 
    public function getRainbow(){ 
     return new Bar('rainbow'); 
    } 
} 

class Bar { 
    private $type; 

    public function __construct($type) 
    { 
     $this->type = $type; 
    } 

    public function someFunction() { 
     switch($this->type){ 
      case 'rainbow': 
       echo 'All the way across the sky.'; 
       break; 
      default: 
       echo 'Boring.'; 
       break; 
     } 
    } 
} 


$foo = new Foo(); 

$foo->getRainbow()->someFunction(); 
+0

ありがとうございます!私は最初に本を使ってphp、mysql、htmlを勉強しようとしました。 –

+0

それは仕事をしなかった!今私は自分のプロジェクトをデザインしています。すべてのツールは最初に使い方として研究されていますが、それを解決するのに完全な本がないので、たくさんの質問があります。この質問がゴミ箱の場合、私はいつもそれらを削除することができます! –

+0

あなたが最初に私は何かをしたい、次に私はそれを行う方法と思います。私は仕事のための適切なツールを見つけるために質問をする! –

関連する問題