2012-11-21 83 views
1

所以我有這個IF語句在我看來。它工作和所有,但想知道是否有更好的方式來寫這個。兼具會議通話似乎不必要...IF會議陳述 - 格式Q

if($this->session->userdata('campaign_name')){ 
    echo $this->session->userdata('campaign_name'); 
} 
else { 
    echo 'this'; 
} 

注意這個功能將內嵌在文字輸入使用。所以我正在尋找儘可能最少的代碼。

回答

3

請注意,如果不存在campaign_name,則CI的Session類的userdata方法將返回false。因此,一個變量分配給潛在未定義陣列密鑰(CAMPAIGN_NAME)

$campaign_name = $this->session->userdata('campaign_name'); 

if($campaign_name) 
{ 
    echo $campaign_name; 
} 
else 
{ 
    echo 'this'; 
} 

OR

if($campaign_name = $this->session->userdata('campaign_name')) 
{ 
    echo $campaign_name; 
} 

控制器方法(/application/controllers/test_controller.php)

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

    class Test_Controller extends CI_Controller 
    { 
     function __construct() 
     { 
      parent::__construct(); 

     } 
     public function myFunction() 
     { 
      $data['campaign_name'] = $this->session->userdata('campaign_name'); 
      $this->load->view('test_view',$data); 

     } 
    } 

查看(/application/view/test_view.php )

<html> 
<head></head> 
<body> 
    <input type="text" value="<?php echo $campaign_name; ?>"> 
</body> 
</html> 
+0

謝謝。內聯選項最適合什麼? (即在文本輸入上)。試圖避免所有這些內聯函數的代碼。 –

+0

@MikeBarwick最好是在控制器中進行控制。 –

+0

不錯......我知道控制器路線......這將是理想的解決方案。我會錘鍊這個。乾杯!!! –

1

在您的控制器中,您可以將該會話數據的值存儲到變量中,並將其傳遞給視圖。在視圖中,你可以使用if語句來查看變量。我建議不要在RPM中設置視圖中的變量。雖然它有效,但它打破了你所關心的問題的分離。

此外,請使用alternative PHP syntax查看CodeIgniter中的視圖。它會讓你的代碼更整潔,更易於維護。

編輯:我現在看到RPM已經更新了他的答案,以在控制器中設置變量。這是一個很好的例子。

+0

謝謝我可能會這樣做......並且我已經在使用其他PHP語法......很多CI的憎恨......我沒有。 –

+0

老實說我不喜歡使用替代PHP語法 –

+0

我自己並沒有完全使用它......只是刪除'php'標籤真的 –