2012-01-23 158 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