2017-04-06 5 views
0

私はオブジェクト指向プログラミングの初心者です。
私の質問は、クラスメソッドの中にファイルを含めることです。
ここで、必要なファイル内でクラスメソッドを使用するにはどうすればよいですか?私は$this->two()を使用していますが、うまくいきますが、私はそれが最良の方法だとは思いません。コードを読んでいる人がいれば、コードを理解することは難しいでしょう。
この代替手段はありますか?クラス内のインクルードファイル内のクラスメソッドを使用

//Main.php 
class Test{ 

    public function one(){ 
     .... 
     require('file.php'); 
    } 

    public function two(){ 
     .... 
    } 

    public function three(){ 
     .... 
    } 
} 
?> 

//file.php 
<div> 
    <?php $this->two(); ?> 
</div> 

答えて

0

あなたはMVCとテンプレートエンジン(smartyなど)についての詳細を読んでください、このクラスおよび呼び出し方法

$c = new Test; 
$c->two(); 
0

本当のテンプレートとして使用します。このファイルを

//Main.php 
class Test{ 

public function one(){ 
    .... 
    print str_replace('{two}',$this->two(),file_get_contents('file.php')); 
} 

public function two(){ 
    .... 
} 

public function three(){ 
    .... 
} 
} 
?> 

//file.php 
<div> 
    {two} 
</div> 

からオブジェクトを作成することができますより複雑なものを作る。

0

あなたは特色になります。

http://php.net/manual/en/language.oop5.traits.php

letがあなたがtraitTest.phpを作ると言います。

trait traitTest{ 
    function foo(){ 
    echo "foo"; 
    } 
} 

あなたは、あなたのクラスを宣言beofreこれを含めるとそうLIKE '使用' キーワードを使用することができます。

require_once traitTest.php; //need to be 'loaded' before you declare class 

    class test{ 
     use traitTest; 

     function bar(){ 
     echo 'bar'; 
    } 
    } 

その後、あなたが行うことができます:

$test=new test(); 
$test->foo(); 
$test->bar(); 

あなたが使用して多くのクラスを作ることができます1つまたは複数の形質;

0

基本的には、 'main.php'メソッドone()に 'file.php'の内容を含めることです。最終的にこのメソッドを呼び出すと、 'file.php'の内容が読み込まれ、メソッドtwo()への呼び出しが行われます。 OOPでは、この種の結合と依存関係(別のファイル内)を避け、カプセル化を強制する必要があります。

最も重要なことは、あなたのやっていることを避けるためにコードを構造化し、可能でない場合はコードにコメントすることです。

関連する問題