PHP 定义一个变量,如果它没有传递给函数



如何在 PHP 中为函数设置默认变量?在python中,它看起来像这样:

def fun(con = predefined):

我尝试了以下方法无济于事:

function fun($con = $GLOBALS['con']){}

在本例中,如您所见,我想将值设置为全局变量的定义。

这是一个非常简单的例子:

 <?php
 function makecoffee($type = "cappuccino")
 {
     return "Making a cup of $type.n";
 }
 echo makecoffee();
 echo makecoffee(null);
 echo makecoffee("espresso");
 ?>

上面的示例将输出:


Making a cup of cappuccino.
Making a cup of . Making a cup of espresso.

看起来您的问题是您正在尝试从全局设置默认值。PHP 可能不喜欢这样。您可以通过以下方式规避它:

function fun($con = null){
    $con or $con = $GLOBALS['con'];
}

我个人认为这是一种恶作剧。看起来您想从全局资源获取数据库连接。我不认为这是应该这样做的方式,但是如果不传递给函数,这个答案将允许从全局设置$con。或者允许在通过时使用它。

我们构建一个小类以静态方式使用全局变量

class globy{
    static public function set($name, $value) { $GLOBALS[$name] = $value; }
    static public function get($name)         { return $GLOBALS[$name]; }
}

然后你可以这样做

function fun($con=globy::get('con')){}

或者你可以这样做(不是你的问题)

function fun($con=globy::set('con','value_of_con')){}

相关内容

  • 没有找到相关文章

最新更新