2012-01-23 191 views
0

在method2中找到的語法是否是method1返回true或false?如何「獲取」函數的返回值?

class myClass{ 
public function method1($arg1, $arg2, $arg3){ 
    if(($arg1 + $arg2 + $arg3) == 15){ 
     return true; 
    }else{ 
    return false; 
    } 
} 

public function method2(){ 
    // how to find out if method1 returned true or false? 
} 
} 

$object = new myClass(); 
$object->method1(5, 5, 5); 
+0

您定義的那些論據,正常變量,所以無論你想他們是實際參數是混淆爲。 –

+0

因爲我不太瞭解OOP。我只是在學習。 – user1002039

+0

代碼中沒有對象。這與OOP無關。這只是基本的程序PHP。你正在使用哪本書? –

回答

2

地做你建議,你可以做到這一點的幾種方法:

1)調用方法1中方法2

public function method2(){ 
    // how to find out if method1 returned true or false? 
    if(method1($a, $b, $c)) 
    { 
     //do something if true 
    } 
    else 
    { 
     //do something if false 
    } 
} 

2)方法2之前調用它(有點奇怪這樣做,但可能,可能需要根據上下文)

$method1_result = method1($a, $b, $c); 

method2($method_result); 

//inside method 2 - change the constructor to take the method 1 result. e.g. method2($_method1_result) 

if($_method1_result) 
{ 
    //do something if true 
} 
{ 
    //do something if false 
} 

如果你只是需要的r方法1 ONCE(因此方法1的返回值不會改變)的方法然後並且將多次調用方法2,那麼在方法2之外執行它可以更有效地保存重新運行相同的代碼(方法1)每次調用方法2時。

+2

謝謝!這是我正在尋找的。 – user1002039

0

喜歡的東西:

public function method2(){ 
    if($this->method1(5, 5, 5) == true){ 
     echo 'method1 returned true'; 
    } else { 
     echo 'method1 returned false'; 
    } 
} 

$obj = new myClass(); 
$obj->method2(); 

應導致

method1 returned true