2017-03-03 10 views
-1

私はまだ私を混乱させるこの質問を私の心に持っています。私は同じクラスの他のメソッドを呼び出して値を操作するメソッドを持つPHPクラスを持っています。それらの関数はすべて、 "return"ステートメントによっていくつかのソート・オフ値を返します。しかし、問題は、操作のために任意の数の関数を呼び出すと、最初の関数呼び出しで常にスクリプトを終了するときに発生します。例えばPHP Innerクラスの戻り値

(擬コードのため申し訳ありません)について

Class H 
Method1 
$this->Method2() 
$this->Method3() 
Method2 
Returns something 
Method3 
Returns something 
End 

とき場合には、戻り値を持つ2つの他のメソッドを呼び出すスクリプトから法1を用いてイム。私のスクリプトはMethod1の中のMethod2上に終わります。

+0

サンプルコードなどを投稿して、それをよりよく説明できますか? – Dimi

+0

現時点ではありませんが、何かを返す間にecho stmtを使用するのは良いアプローチですか?私はmethod1の中でmethod2を呼び出すときにスクリプトが終了するので、method2が実行された後にmethod3も使用したいと思っています。 –

答えて

0

まず.. http://www.killerphp.com/tutorials/php-objects-page-3/ 私はこの1つはあなたが感じることができます願って、より良い...私のANSはdoesnの場合あなたの質問にはうまくいきません...検索を続けてください...難しいものになります..

+0

ありがとう、これは難しいです。私はそれを見てみましょう! –

+0

私はすでにすべてのものをoopsで学んでいました。これは実際に私の心を殺す! –

+0

私はあなたのことを簡潔に説明しました。ループのようになります。最終的に、最初のメソッドからこのループの開始を呼び出すと、最初のメソッドの前に...あなたの質問が満たされますか? – Jana

0

これは、returnがプロセスを強制終了し、必要なものを返すためです。クラスの内部プロパティを持ち、それらを取得することができます。これらのプロパティを設定するメソッドはsettersと呼ばれ、それらを取得するメソッドはgettersと呼ばれます。あなたは、単にデータをエコーし​​たい場合は、それがかもしれ

$class = new MyClass(); 

$class->setFirstName('David'); 
$class->setLastName('Parker'); 
$class->setCity('AnyTown'); 

echo $class->firstName; // David 

echo $class->lastName; // Parker 

echo $class->city; // AnyTown 

// or something like 

echo $class->getFullName(); // David Parker 

:私は、私は簡単に私のクラスをインスタンス化し、その情報をつかむことができ、これらのプロパティを設定しているため、今

<?php 

Class MyClass { 

    public $firstName; 
    public $lastName; 
    public $city; 

    // Setters 
    public function setFirstName($name) 
    { 
     $this->firstName = $name; 
    } 

    public function setLastName($name) 
    { 
     $this->lastName = $name; 
    } 

    public function setCity($city) 
    { 
     $this->city = $city; 
    } 

    // Getters 
    public function getFullName($name) 
    { 
     return "{$this->firstName} {$this->lastName}"; 
    } 

    public function getCity($name) 
    { 
     return $this->city; 
    } 

} 

:この例のクラスを見てみましょうクラスをインスタンス化し、クラスのプロパティをエコーする方が理にかなっています。私はそれが通常クラスからの何かreturnに良い練習であることがわかります。そのクラスオブジェクトを操作するときは、echoを使用する方が良いでしょう。

希望は意味があります。

あなたがメソッド、メソッドのオーバーロードとオーバーライドのPHP..especiallyの戻り値の型にOOPSの基本を学ぶ必要があるすべての
+0

gettersとsettersを知っていますが、感謝しています。あなたは、クラスをインスタンス化し、それを操作することによって実証しました。実際にインスタンス化せずに、同じクラスの他の関数から値を操作する必要がある場合はどうなりますか?私はそれを得たと思う? –

+0

私はそれをバディに反響したくない、それは単にブラウザに表示されます –