2016-10-03 3 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

'IF(){}'ブロックの有効な位置ではないことを。 [三項演算子](https://davidwalsh.name/php-shorthand-if-else-ternary-operators)を調べることができます。 – MonkeyZeus

答えて

2

ifNOTです。変数代入の "データソース"として使用することはできません。明らかに'...'はあなたが好きな「詳細」のための唯一のプレースホルダです。ここ

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

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

は、あなたが「三項演算子」を探している

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

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

のように記述する必要があります表示する。これは、あらかじめ用意された文字列変数にすることができます。

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

+0

これはそれかもしれないと思います。私はまだそれを試してhaventしかし、何ですか? do do – codenoob

+0

さて、私が参照したドキュメントを見てください。左側のオペランドを評価し、それが真であるかどうかを判断します。それに応じて、右側の最初の(真の)または2番目の(偽の)選択肢を選択します。 – arkascha

0

それはこのようになり得る:

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

$this->email->message('You have ordered:'.$temp.''); 
関連する問題