如何在 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')){}