检查功能输出的其他方法?

时间:2014-11-24 10:15:44

标签: php function class

来自一个明显的PHP新手的问题。

我有一个内部有两个函数的类。我试图使用第二个函数检查第一个函数的输出(如下面的代码中所示)。这个问题是输出(1)已经显示在if语句行中。结果如下:

1Flag是:1

所以问题是,如果没有在if语句中显示输出,我怎么能这样做呢?

class Test{

    public $flag;

    private function func_one(){
        $this->flag = 1;
        echo $this->flag;
        return $this->flag;
    }

    public function display_func(){
        if ( !empty( $this->func_one() ) ){
            echo 'Flag is: ';
            $this->func_one();
        }

        // if ( $this->func_one() === 1 ){
        //  echo 'Flag is: ';
        //  $this->func_one();  
        // }

        //var_dump( $this->func_one() );
    }
}

$classTest = new Test();
$classTest->display_func();

6 个答案:

答案 0 :(得分:1)

class Test{
public $flag;
private function func_one(){
    $this->flag = 1;
    return $this->flag;
}
public function display_func(){
    if ( !empty( $this->func_one() ) ){
        $result=$this->func_one();
        echo 'Flag is: '.$result;
    }
    }
}
$classTest = new Test();
$classTest->display_func();

答案 1 :(得分:0)

echo

中删除func_one()

答案 2 :(得分:0)

将返回值存储在变量中并对其进行比较

if ( !empty( $this->func_one() ) ){
    echo 'Flag is: ';
    $this->func_one();
}

应该是

$val=$this->func_one();
if (!empty($val)){
      echo "Flag is: $val";
}

同时从func_one()中删除回声,只返回值。这允许您只调用一次方法,并根据返回的值做出决定。

答案 3 :(得分:0)

您的条件语句:if ( !empty( $this->func_one() ) )来电func_one()func_one()的第二行是echo $this->flag;。这就是输出显示在if语句中的原因。

答案 4 :(得分:0)

您需要从第一个功能中删除echo

此外,在第二个函数中,连接第一个函数返回的输出。

所以,以下是变化:

private function func_one(){
    $this->flag = 1;
    //echo $this->flag; -> remove this
    return $this->flag;
}

public function display_func(){

    if ( !empty( $this->func_one() ) ){
        echo 'Flag is: ' .$this->func_one(); // Also, observe the changes on this line.
    }

答案 5 :(得分:0)

您可以从第二个函数中删除if条件。见下面的代码。

班级考试{

public $flag;

private function func_one() {
    $this->flag = 1;
    echo $this->flag;
    return $this->flag;
}

public function display_func() {

    //if ( !empty( $this->func_one() ) ){
    echo 'Flag is: ';
    $this->func_one();
    //}
    // if ( $this->func_one() === 1 ){
    //  echo 'Flag is: ';
    //  $this->func_one();  
    // }
    //var_dump( $this->func_one() );
}

}

$ classTest = new Test(); $ classTest-> display_func();

您的结果=标志是:1

========================================

你也可以这样写代码

班级考试{

public $flag;

private function func_one() {
    $this->flag = 1;
    return $this->flag;
}

public function display_func() {
    echo 'Flag is: '.$this->func_one();
}

}

$ classTest = new Test(); $ classTest-> display_func();