可能重複:
What is the PHP shorthand for: print var if var existPHP - 檢查一個變量設置然後打印在一個命令
爲了打印一個變量,我這樣做:
if(isset($var)) print $var;
但我在這裏重複$ var 2次。有沒有一種方法,以使它看起來像:
If $var exists then print it
,而不是
If $var exists then print $var
可能重複:
What is the PHP shorthand for: print var if var existPHP - 檢查一個變量設置然後打印在一個命令
爲了打印一個變量,我這樣做:
if(isset($var)) print $var;
但我在這裏重複$ var 2次。有沒有一種方法,以使它看起來像:
If $var exists then print it
,而不是
If $var exists then print $var
您可以使用 print (isset($var) ? $var : '');
?:
稱爲ternary operator
這裏也$ var重複; –
是的,但我會訪問$ var 2次。 我在找什麼就像一個函數或寫一個方法:'If_this_variable_exists_then_print_it($ var);' – Alucard
@vladimire沒有辦法做到這一點,缺少像自己寫的函數。這就是語言的工作原理。僅僅接受語言就顯得容易多了。 –
初始化$var
爲空字符串,所以你將不需要if-check。
假設你做了$var = $_REQUEST['var'];
,你將會失去運氣。
Imho這是一個微型優化,並不重要。
使用的錯誤控制操作員的幫助下,「@」 http://php.net/manual/en/language.operators.errorcontrol.php
echo @$var;
我不認爲用「如果是$ var存在,那麼打印」比「更快,如果是$ var存在,那麼打印$ VAR 」。內部用於檢查變量的腳本引擎是否設置。可能是微觀優化。
這種類型的問題可能會在IT測驗中被詢問。 我記得有一個問題「如何編寫打印字符串的程序,條件是不要使用分號」。給出答案。
<?php if(print("Hello World")){}
** No。**永遠不要故意使用沉默操作符。 *永遠!* – Charles
不幸的是,這個沒有短期和PHP內置的解決方案。
在我們的框架我們用自己的功能:
function isset_(&$aVariable, $aDefaultValue = null)
{
if (isset($aVariable)) return $aVariable;
return $aDefaultValue;
}
然後,你可以這樣做:
echo isset_($var);
雙下分數通常用於PHP魔術功能。最好不要在用戶定義的函數中使用。 「__isset」也是一個神奇功能。 –
@habeebperwad謝謝。功能名稱已更改。但邏輯保持不變。 –
如果再次調用變量有什麼問題呢? –
沒有問題,我只是尋找一種方法來改善我的代碼(如果有的話)。 它遵循同樣的想法,當我得知我可以做的一個例子:= $var ?>,而不是<?php echo $ var?> .. – Alucard
沒有必要縮短這個,更短的總是更好。作爲旁註,短標籤並不總是一個好主意,因爲它們在某些版本的PHP中被默認禁用。 – adeneo