[英]PHP define a variable if it's not passed to a function
如何在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')){}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.