2010-12-18 156 views
0

這裏有幾個問題..代碼點火器form_input

  1. 什麼是下面的語法?
  2. 所有片斷是什麼意思?

    ((! is_array($data)) ? $data : '') 
    
  3. 它在函數結束時如何使用?

    function form_input($data = '', $value = '', $extra = '') 
    { 
        $defaults = array('type' => 'text', 'name' => ((! is_array($data)) ? $data : ''), 'value' => $value); 
        return "<input "._parse_form_attributes($data, $defaults).$extra." />"; 
    } 
    

三江源。布雷克

+0

我也有幾個問題:你能更具體?你想要描述代碼的每個字符,或者你想知道什麼?你的意思是什麼*所有的作品*? *它是如何使用的?* *它在您的問題中指的是什麼? – 2010-12-18 03:23:07

回答

3

好吧,讓我試試據我瞭解你的問題。

什麼是以下語法?

這是一個函數定義。

這些都是什麼意思?

這是ternary operator。這意味着:如果$data不是數組(!is_array($data)),返回$data? $data)否則返回一個空字符串(: ''

它是if-else的簡寫。

它在最後的功能中如何使用?

不確定這裏是什麼意思。函數_parse_form_attributes($data, $defaults)被稱爲女巫似乎返回一個字符串。

如果在你的問題是指$defaults,那麼它只是一個數組,獲取構建和包含以下值:

Array (
    'type' => 'text', 
    'name' => $data, // or empty string if $data is an array, 
    'value' => $value 
); 

它是用來建立一個input元素,將看像這樣:

<input type="text" 
     name="(value of $data or empty)" 
     value="(value of $value)" 
     (value of $extra) 
     /> 
1

確定這似乎產生與OME有用的默認值的形式輸入HTML ....要回答你的Qs進行順序:

  1. 這是一個函數,可選參數。你可以把例如form_input('SomeData', 'SomeValue');
  2. 它的元素創建HTML,包括你給它的任何信息,使用默認值,如果沒有提供任何值
  3. 一個很難回答......總之你定義一個新功能。如果您提供參數,它們將用於創建表單元素。如果你忽略它們,將使用默認設置 - 例如type將默認爲text用於輸出,如<input type="text" [blah]>
  4. 我不太確定你的意思 - 附加爲鍵值對,例如<input type="text" key="Value" [blah]>?如果是這種情況,我個人會失去$extra變量,而是有一組鍵 - >值對。否則,您需要根據需要$extra,例如key1="value1" key2="value2"
0

1)它返回一個輸入字段;

2)請原諒?

3)函數有三個值。 $ value是輸入字段(在文本框中找到的)的默認值;如果數據不是數組,則$ data將是表單的名稱,否則該名稱將爲空; $ extra是一個包含其他內容的字符串。請參考函數_parse_form_attributes;

4)link

順便說一句,我衷心希望_parse_form_attributes()什麼奇妙的東西,因爲這看起來像一個令人難以置信的詳細功能和笨有一些方便的內置表單生成功能。

+0

這是一個內置的CI功能。我只是想弄清楚那些奇怪的語法。 – TechplexEngineer 2010-12-18 03:51:19

1

它的內嵌式:

function form_input($data = '', $value = '', $extra = '') 
{ 
    if (is_string($data)) { // or better: is_scalar() 
     // leave as-is 
    } 
    else { 
     $data = ''; 
    } 
    ... 

(略有差異)
它基本上確保參數$data從不是數組。也許它被允許成爲以前版本的函數中的一個數組,這是確保正確操作的安全代碼。

注意該類型的執法是另一種方法(通常矯枉過正,但有時建議):

function xy($data, $value, $z) { 

     assert(! is_array($data)); 
     assert(is_string($value));