如何通过使用不同的变量在函数中预定义变量?

时间:2019-03-31 11:30:05

标签: php

我不知道如何预定义函数中的变量之一。

<?php 
    $number = 3;
    function test($num, $num2 = $number) {
        $result = "num = ".$num." and num2 = ".$num2;
        return $result;
    }


    echo test(1);

?>

它总是打印出来:

  

致命错误:第3行中C:\ xampp \ htdocs \ php \ index.php中的常量表达式包含无效操作

2 个答案:

答案 0 :(得分:1)

最好像这样使用它:

function test($num, $num2 = 3) {/**/}

但是,如果确实需要,可以定义一个常量:

const NUMBER = 3;

function test($num, $num2 = NUMBER)
{
    $result = "num = $num and num2 = $num2";
    return $result;
}

echo test(1); // returns "num = 1 and num2 = 3"

还有3d选项,如果您想使用一些动态变量:

$number = 3;

function test($num, $num2)
{
    $result = "num = $num and num2 = $num2";
    return $result;
}

echo test(1, $number); // returns "num = 1 and num2 = 3"

或者您可以使用课程:

class Test
{
    protected $number;

    public function __construct($number)
    {
        $this->number = $number;
    }

    public function test($num)
    {
        $result = "num = $num and num2 = $this->number";
        return $result;
    }
}

$test = new Test(3);

echo $test->test(1); // returns "num = 1 and num2 = 3"

答案 1 :(得分:0)

如果要将默认值分配给param,则必须使用值(常量表达式)而不是var(变量表达式)

function test($num, $num2 = 3 )