我想通過它的值作爲參數到我的功能難以將參數傳遞到函數中?
function dostuff($input) {
global $input;
if ($input == 5) {
$output = "Success";
} else {
$output = "Failure";
}
echo $output;
}
爲什麼運行
dostuff(5);
不回的輸出變量(「成功」),像它應該?
我想通過它的值作爲參數到我的功能難以將參數傳遞到函數中?
function dostuff($input) {
global $input;
if ($input == 5) {
$output = "Success";
} else {
$output = "Failure";
}
echo $output;
}
爲什麼運行
dostuff(5);
不回的輸出變量(「成功」),像它應該?
你並不需要設置,試試這個:
function dostuff($input) {
if ($input == 5) {
$output = "Success";
} else {
$output = "Failure";
}
echo $output;
}
有了這個,dostuff(5)
返回 「成功」
說明:
global
是使用全局變量成你的函數(http://php.net/manual/en/language.variables.scope.php),你不需要它,因爲你通過了$input
在函數參數先生。
擴展在Jouby的解釋:
在PHP中,與許多其他語言,變量是,默認情況下,當地變量。這簡化了編寫安全函數的一些方面(減少偶然的副作用),但如果您真的想使用全局變量,則需要額外的步驟。
在函數定義中,參數變量是真正專用的局部變量。參數變量的神奇之處在於,當您調用函數時會自動分配它。
PHP中的global
關鍵字將變量名與全局變量相關聯,有效地替換了局部變量。 如果你想使用全局數據,你只需要使用global
,這通常不是一個好主意。
在你的例子中,這正是你所做的。你用一個不存在的全局變量來破壞你的本地參數。只要刪除該聲明,事情應該工作。
我不明白爲什麼你有'$ input = 5;'如果你使用'dostuff(5)'反正呢? –
我認爲不需要全球性的美元投入; –
因爲你在'global $ input;'中使用全局變量'$ input',這不等於5. – Rizier123