2012-12-26 51 views
0

可能重複:
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 
+6

如果再次調用變量有什麼問題呢? –

+0

沒有問題,我只是尋找一種方法來改善我的代碼(如果有的話)。 它遵循同樣的想法,當我得知我可以做的一個例子:,而不是<?php echo $ var?> .. – Alucard

+3

沒有必要縮短這個,更短的總是更好。作爲旁註,短標籤並不總是一個好主意,因爲它們在某些版本的PHP中被默認禁用。 – adeneo

回答

1

您可以使用 print (isset($var) ? $var : '');

?:稱爲ternary operator

+1

這裏也$ var重複; –

+0

是的,但我會訪問$ var 2次。 我在找什麼就像一個函數或寫一個方法:'If_this_variable_exists_then_print_it($ var);' – Alucard

+1

@vladimire沒有辦法做到這一點,缺少像自己寫的函數。這就是語言的工作原理。僅僅接受語言就顯得容易多了。 –

1

初始化$var爲空字符串,所以你將不需要if-check。

假設你做了$var = $_REQUEST['var'];,你將會失去運氣。

Imho這是一個微型優化,並不重要。

0

使用的錯誤控制操作員的幫助下,「@」 http://php.net/manual/en/language.operators.errorcontrol.php

echo @$var; 

我不認爲用「如果是$ var存在,那麼打印」比「更快,如果是$ var存在,那麼打印$ VAR 」。內部用於檢查變量的腳本引擎是否設置。可能是微觀優化。

這種類型的問題可能會在IT測驗中被詢問。 我記得有一個問題「如何編寫打印字符串的程序,條件是不要使用分號」。給出答案。

<?php if(print("Hello World")){} 
+2

** No。**永遠不要故意使用沉默操作符。 *永遠!* – Charles

-2

你可以做<?php echo @$var; ?>. Or <?= @$var ?>.

+0

**沒有。**永遠不要故意使用沉默操作符。 *永遠!* – Charles

-1

不幸的是,這個沒有短期和PHP內置的解決方案。

在我們的框架我們用自己的功能:

function isset_(&$aVariable, $aDefaultValue = null) 
{ 
    if (isset($aVariable)) return $aVariable; 
    return $aDefaultValue; 
} 

然後,你可以這樣做:

echo isset_($var); 
+0

雙下分數通常用於PHP魔術功能。最好不要在用戶定義的函數中使用。 「__isset」也是一個神奇功能。 –

+0

@habeebperwad謝謝。功能名稱已更改。但邏輯保持不變。 –

相關問題