2016-10-03 61 views
0

我想通過傳遞數據發送電子郵件使用codeigniter電子郵件類到以下括號。Codeigniter電子郵件類,意外如果

$this->email->message('Whatever message you want to email') 

以下工作

$this->email->message('Your name is '.$data->name.''); 

但下面將給出錯誤。 「意外,如果」

$this->email->message('You have ordered:'. 
         if(isset($result->order)){ 
          //show order detail 
         }else{ 
          "nothing" 
         }.''); 

什麼是正確的方式來實現這一目標。

以及如果我想在if(isset之後包含一個foreach循環,那將如何工作。

+0

即不是一個'如果(){}'塊的有效位置。你可以看看[三元操作符](https://davidwalsh.name/php-shorthand-if-else-ternary-operators)是你想要的。 – MonkeyZeus

回答

2

if不是函數。它不能用作變量賦值的「數據源」。

$foo = if(...) { ... } // illegal syntax. 

應該寫成

if (...) { 
    $foo = true result 
else { 
    $foo = false result 
} 

$this->email->message('You have ordered:'. $foo); 
1

您正在尋找的「三元運算符」:

<?php 
$this->email->message('You have ordered: ' . isset($result->order) ? '...' : 'nothing'); 

這裏'...'顯然僅僅是出於某種「詳細信息」你想有一個佔位符以顯示。這當然可以是以前準備好的字符串變量。

http://php.net/manual/en/language.operators.comparison.php

+0

我認爲這可能是它。我還沒試過,但是這是什麼? mark do – codenoob

+0

好吧,看看我引用的文檔:它將操作數評估到左邊,確定它是否爲真。根據它選擇右邊的第一個(真)或第二個(假)選擇。 – arkascha

0

這可能是這樣的:

$temp = isset($result->order) ? "" : "nothing"; 

$this->email->message('You have ordered:'.$temp.'');