2013-01-20 88 views
-1

迴音,我試圖讓我的代碼錯誤和通知免費。因此我應該檢查每個我想要回顯的變量。我感興趣的具體案例是一個「新」頁面,也可以充當「編輯」。如果選擇了某些內容,則會顯示編輯頁面,其中填充了要編輯的內容的字段。如果沒有任何選擇,它是相同的頁面,但空字段。這給我的意思的想法:簡化空()+不同類型的變量

<li class="bordertop"> 
    <label>Recommended knowledge</label> 
    <input class="first_input" name="recommended[]" value="<?php if (count ($Subject->retrieveLink('recommended')) > 0) echo current($Subject->retrieveLink('recommended')); ?>" placeholder="Title"/> 
    <input class="second_input" name="recommended_url[]" value="<?php if (key ($Subject->retrieveLink('recommended')) != null) echo key($Subject->retrieveLink('recommended')); ?>" placeholder="http://www.example.com"/> 
    </li> 

我真的不喜歡在我的網頁那麼多的代碼。我試圖儘量分離演示文稿中的邏輯以及保持OOP方法。我在想這樣做與此類似:

// Check + echo 
function checko($arg = null) 
    { 
    if (!is_array($arg)) 
    if (!empty($arg)) 
     echo $arg; 
    } 

但是,這似乎也呼籲在未來的麻煩(從裏迴盪並不讓我進一步修改字符串,它不覺得自己像一個根本「解決方案)。有很多變量需要檢查和回顯,有時候會被填充,有時會被清空。這是最好的方法是什麼?我知道我可以做的if (empty($variable)) echo $variable無處不在重複我的代碼,但:

  1. 這不起作用(如PHP 5.4的,我相信它會在5.5工作)從對象中返回值。這是我主要關心的問題,因爲我經常使用它。

  2. 我有太多重複的代碼。沒有

回答

1

我試圖讓我的代碼錯誤,並通知免費。因此我應該檢查每個我想要回顯的變量。

不,你不應該。
看,這些通知,不僅讓你的忙他們戰鬥。他們是爲了幫助,而不是讓你的代碼變得複雜。
你只需要確保你操作什麼變量。並且增加批量if(empty())不會有任何好處。

我真的不喜歡在我的網頁那麼多的代碼。

這對模板來說確實太多了。其中一些應該被轉移到控制器
調用模板之前,準備好你的數據,然後讓普通

<input class="first_input" name="recommended[]" value="<?=$recommended?>" placeholder="Title"/> 
<input class="second_input" name="recommended_url[]" value="<?=$recommended_url?>" placeholder="http://www.example.com"/> 
+0

我明白了,那麼我想好的問題是我是否可以避免空串的通知,但保留它們的一切。所以我會在我的代碼開頭聲明一些變量爲空字符串或一些內容,對吧? –

0

在函數內部不要回聲,只是返回值

// Check + echo 
function checko($arg = null) { 
    if (!is_array($arg)) 
    if (!empty($arg)) 
     return $arg; 
} 

另外,如果你想縮短代碼,你可以使用三元運算符: http://phpmaster.com/using-the-ternary-operator/

+0

這只是一個簡化的寫作,我的問題是爲那些邏輯簡化......抱歉,沒有作出明確 –

+0

好,所以你想讓它更MVC。 – art2

+0

那麼在視圖中調用該函數有什麼問題? – art2