如何在PHP中設置一個默認變量爲函數?在蟒蛇,它應該是這樣的:PHP定義了一個變量,如果它沒有傳遞給函數
def fun(con = predefined):
我已經嘗試了以下無濟於事:
function fun($con = $GLOBALS['con']){}
在這種情況下,你可以看到,我想將值設置爲全局變量的定義。
如何在PHP中設置一個默認變量爲函數?在蟒蛇,它應該是這樣的:PHP定義了一個變量,如果它沒有傳遞給函數
def fun(con = predefined):
我已經嘗試了以下無濟於事:
function fun($con = $GLOBALS['con']){}
在這種情況下,你可以看到,我想將值設置爲全局變量的定義。
看起來你的問題是你正在嘗試o從全局設置默認值。 PHP可能不喜歡這樣。你可以這樣規避它:
function fun($con = null){
$con or $con = $GLOBALS['con'];
}
我個人認爲這是一種嗜好。看起來你想從全局資源獲取數據庫連接。我不認爲這是應該如何完成的,但是如果不傳遞給函數,這個答案將允許從全局設置$ 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.
感謝您的出色解釋,它是可發佈的!但遺憾的是,這與我的問題並不完全一致。 – Jamus
這是一個小例子,您可以如何實現此功能。基於此,您可以開發您的邏輯 –
我們建立了一個小的類使用全局變量以靜態方式
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')){}
這遠遠超出了我對PHP LOL的理解,但它和其他解決方案一樣好用;非常感謝。 – Jamus
它現在更容易理解嗎? –
check [this](http://stackoverflow.com/questions/5859376/php-function-with-variable-as -default-value-for-an-parameter) –
@DrixsonOseña該死的,顯然我的關鍵字已關閉。我考慮將它設置在函數的開頭,但是來自python;對我來說看起來太亂了LOL。我將把這個問題留給任何進行特定搜索的人。 – Jamus
更具體地說,如果$ con的值可以作爲選項傳遞給該函數,那麼我更願意;看起來我必須做一個解決方法。 – Jamus