如何使用函数返回值作为PHP中另一个函数的参数?

时间:2018-05-30 08:17:51

标签: php function arguments parameter-passing default-arguments

我想要一个以1个参数作为输入的函数,如果没有传递值,它应该将默认值作为另一个函数的输出。我在PHP中使用Class来实现这一点,但它给了我错误"常量表达式包含无效操作"

<?php

class Common
{
    public $usrname;

    function getLoggedInUser(){
        if (ISSET($_SESSION['email'])) {
            $this->usrname = ($_SESSION['email']);
            return $this->usrname;
        }
        return false;
    }

    function getLoggedInUserId($username = $this->usrname){
        echo $username;
    }

}

将类文件调用为

    <?php
    include "common.php"
    $c = new Common;
    $c->getLoggedInUserId();

以下是针对上述呼叫显示的错误

  

致命错误:常量表达式包含无效操作

请让我知道如何将函数结果作为另一个函数的参数传递。感谢

3 个答案:

答案 0 :(得分:2)

getLoggedInUserId用户必须重新定义如下

function getLoggedInUserId($username=""){
    if(empty($username)){
     echo $this->usrname;
    }else{
         echo $username;
    }

}

答案 1 :(得分:2)

将您的功能更改为:

public function getLoggedInUserId($username=""){
    $username = ($username == "") ? $this->usrname : $username;
}

答案 2 :(得分:1)

由于默认值必须是常量值,您需要编写类似这样的内容......

function getLoggedInUserId($username = null){
    if ( $username == null ) {
       $username = $this->usrname;
    }
    echo $username;
}