2011-03-16 155 views
3

我從來沒有見過$ret = N.T.T.T.T.'<div id="toptabs">';或類似的東西,似乎這會拋出一個解析錯誤......任何人都可以解釋爲什麼它不會?這是做什麼用的?

public function renderTabs() { 
    if(empty($this->currentTabs)) { 
     return ''; 
    } 

    $ret = N.T.T.T.T.'<div id="toptabs">'; 
    if(!empty($this->currentTabs['left'])) { 
     $ret .= $this->doTabs($this->currentTabs['left'], 'left'); 
    } 
    if(!empty($this->currentTabs['right'])) { 
     $ret .= $this->doTabs($this->currentTabs['right'], 'right'); 
    } 
    $ret .= N.T.T.T.T.'</div>'; 

    return $ret; 
} 
+5

所以......許多... ...相同的答案... – Blender

+0

每個人的寫作在同一時間。我寫我的屏幕時彈出了「10個新答案」。 –

+1

閱讀答案後,我認爲'N'和'T'可能是[常數](http://php.net/constants)。 :-) –

回答

3

NT好像constants
.相連來

從命名和使用我可以假設N代表換行符和T一標籤。

你從來沒有見過它,因爲它是寫這樣的東西

$ret = "\n\t\t\t\t<div id='toptabs'>"; 

或只是

$ret = " 
       <div id='toptabs'>"; 

看起來更熟悉

反正挺奇怪的方式,所有這些格式不應該因爲所有的輸出都應該通過模板來處理,以便編寫如下格式:

1

NT可能意味着該名稱的常量。

但是,對於常量的馬虎處理,如果它們沒有定義,它們會將它們解析爲文字「N」和「T」。 (你會得到一個關於E_NOTICE級別的警告。)

嘗試echo constant("N");以查看它們是否存在。

1

N和T很可能定義爲像新的生產線和標籤全局常量。雖然IMO不是很好。

3

我會假設這些是定義在某處的常量來指示新行和製表符。

define("T", "\t"); 
define("N", "\r\n"); 
+1

這是一個非常好的猜測。 –

2

漂亮的你有兩個define的某個地方,像:

define('T', "\t"); 
define('N', "\n"); 

所以T將是一個列表,並N一個換行符。

2

到分析器,NT是常數,推測字符串(但在任何情況下,它們被假定是能夠被連接成串的類型的變量)。像任何其他字符串一樣,它們可以連接在一起。

1

那些看起來像腳本中其他位置定義爲N和T的常量。尋找類似的東西:

define(「N」,$ somevalue); define(「T」,$ somevalue);

它看起來像腳本將它們附加在一起。

1

您需要在此代碼之前的某處定義常量N和T.

2

我願意打賭,N是一個新行(可能
)和T常量是一個選項卡(可能是4位; 4倍&nbsp;

此外,請記住.是連接運算符中PHP。