我有一種情況,在我對它們執行操作之前,我想檢查大量字符串是否爲空。我不希望有執行上手動每一個字符串這張支票,所以我把它看起來像這樣的功能:將字符串中的變量作爲參數傳遞
function format_field($field_name, $format) {
$value = get_field($field_name);
if ($value != "") {
return $format;
}
return "";
}
這個函數的調用看起來是這樣的:
format_field('website', "<p><strong>Website:</strong><a href=\"$value\">$value</a></p>");
我希望通過在傳遞給format_field()
的字符串中寫入$value
,$value
的值將在函數返回前在函數中擴展,但似乎並非如此。
這是否可能,我只是錯了?
我也知道關於sprintf()
,但由於$value
可以在字符串中多次引用,所以它不太理想。
那你所要的輸出是什麼?如果'網站'中有一個字符串,你想要它說''網站:something「'或完全忽略整個輸出? – Andy
函數內部的變量'$ value'與調用函數的代碼中的變量不同。閱讀更多關於[變量範圍](http://php.net/manual/en/language.variables.scope.php)。 – axiac
嘗試僅將'$ value'作爲第二個參數傳遞給'format_field(arg1,arg2)',然後在返回之前在函數中處理它,當然可以將'get_field()'函數作爲@安迪在 –