【问题标题】:Codeigniter email class, unexpected ifCodeigniter 电子邮件类,如果出现意外
【发布时间】:2016-10-03 20:33:40
【问题描述】:

我正在尝试通过将数据传递到以下括号中来使用 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 循环,那将如何工作。

【问题讨论】:

  • 这不是if(){} 块的有效位置。你可以看看ternary operators是你想要的。

标签: php codeigniter html-email


【解决方案1】:

if不是一个函数。它不能用作变量赋值的“数据源”。

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

应该写成

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

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

【讨论】:

    【解决方案2】:

    您正在寻找“三元运算符”:

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

    '...' 显然只是一个占位符,用于显示您想要显示的任何“细节”。这当然可以是预先准备好的字符串变量。

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

    【讨论】:

    • 我想这可能是它。我还没有尝试过,但是有什么作用?标记做
    • 好吧,看看我引用的文档:它评估左边的操作数,决定它是否为真。根据它选择右边的第一个(真)或第二个(假)替代方案。
    【解决方案3】:

    可能是这样的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-02
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多