【问题标题】:PHP Error Uninitialized string offset: 0PHP错误未初始化的字符串偏移量:0
【发布时间】:2015-01-23 04:43:56
【问题描述】:

我收到此错误:

遇到 PHP 错误
严重性:通知
消息:未初始化的字符串偏移量:0
文件名:controllers/basecontroller.php
行号:616 和行号:617

这是我的代码:

//Controller File
function _send_email($email_template, $receiver=array(), $data=array(), $sender=array()){
$this->load->model('ad_model');
$tmpl = $this->ad_model->getAdByCode($email_template);
$title = $tmpl['desc']; // Line 616
$html = $tmpl['html']; // Line 617
$html = str_replace("[NAME]", $receiver['name'] ,$html);
//$html = str_replace("[PWD]", $pwd ,$html);
$html = str_replace("[EMAIL]", $receiver['email'] ,$html);

foreach($data as $code=>$d){
  $html = str_replace("[".strtoupper($code)."]", $d ,$html);
}
...

//Model File
function getAdByCode($code){
    $this->db->select('html,desc');
    $rec = $this->db->get_where('ad', array('code'=>$code), 1,0);
    //echo $code;
    //echo print_r($rec,1);
    $rec = $rec->result_array();
  if(isset($rec[0])){
    $rec = $rec[0];
  } else {
    $rec = '';
  }     

    return $rec;
  }
}

有人愿意帮忙吗?

【问题讨论】:

  • 我们应该如何猜测命名的行 616 和 617 ?
  • @OlegDubas OP 注释了代码中的行 -> $title = $tmpl['desc']; // Line 616 $html = $tmpl['html']; // Line 617
  • 'desc''html' 条目在 $tmpl 中不存在。
  • Uninitialized string offset 通常意味着当 var 是字符串而不是数组时,您正在尝试获取数组键。做一个var_dump($tmpl)检查。
  • print_r($tmpl);看看你得到了什么?

标签: php arrays string


【解决方案1】:

似乎在$tmpl 数组中找不到两个索引。尝试检查是否设置了值以避免通知

$title = (isset($tmpl['desc']) ? $tmpl['desc'] : ''); // Line 616
$html = (isset($tmpl['html']) ? $tmpl['html'] : '');

【讨论】:

    【解决方案2】:

    您的模板数组 $tmpl 不包含 html 作为键。

    如果您在$this->ad_model->getAdByCode($email_template); 中可以控制它,您可以更改为使用您在此处写的$tmpl['html'] 的信心。

    但是从数组中访问关键元素的建议方法是检查它的存在性,例如:

    $title = isset($tmpl['desc']) ? $tmpl['desc'] : ''; 
    $html = isset($tmpl['html']) ? $tmpl['html'] : '';
    

    【讨论】:

      猜你喜欢
      • 2017-05-10
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-07
      • 2012-09-21
      • 1970-01-01
      相关资源
      最近更新 更多