如何在PHP中为函数设置默认变量?在python中,它看起来像这样:
def fun(con = predefined):
我尝试过以下无效:
function fun($con = $GLOBALS['con']){}
在这种情况下,正如您所看到的,我想将值设置为全局变量的定义。
答案 0 :(得分:2)
这是一个非常简单的例子:
<?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.
答案 1 :(得分:1)
看起来您的问题是您尝试从全局设置默认值。 PHP可能不喜欢这个。你可以这样绕过它:
function fun($con = null){
$con or $con = $GLOBALS['con'];
}
我个人认为这有点好事。看起来您想要从全局资源获取数据库连接。我不认为这应该如何做,但这个答案将允许$ con从全局设置,如果没有传递给函数。或者允许它在传递时使用。
答案 2 :(得分:1)
我们构建一个小类以静态方式使用全局变量
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')){}