【发布时间】:2014-08-06 01:06:50
【问题描述】:
根据模型 Etablissements_commanditaires_m 中的这段代码:
public function ajouter()
{
... code ...
$recuperer = $this->db->get($this->table)->result_array();
$recuperer['quantite_lignes'] = $this->db->count_all_results($this->table);
$recuperer['number'] = 5;
$recuperer['text'] = 'blabla';
最后一行 $recuperer['text'] = 'blabla';出错了。
但是 $recuperer['number'] = 5;不要犯错误。
即将出现的错误是:Illegal string offset or Undefined offset: 0
控制器中的这段代码:
$etablissements_commanditaires = $this->etablissements_commanditaires_m->ajouter();
$html['quantite_lignes'] = $etablissements_commanditaires['quantite_lignes'];
... code ...
$i=0;
foreach ($etablissements_commanditaires as $enregistrement)
{
echo 'aa'.$enregistrement['id_etablissement_payeur'].'bb'; // Makes the first error.
...
}
错误是:
<p>Severity: Warning</p>
<p>Message: Illegal string offset 'id_etablissement_payeur'</p>
<p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
<p>Line Number: 240</p>
</div>aa5bb<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: Illegal string offset 'id_etablissement_payeur'</p>
<p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
<p>Line Number: 243</p>
</div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: Illegal string offset 'id_etablissement_payeur'</p>
<p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
<p>Line Number: 254</p>
</div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message: Undefined offset: 0</p>
<p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
<p>Line Number: 260</p>
如何将字符串设置为 $recuperer['text'],而不会出错?
另一个案例看起来是同样的问题,然后想知道我的 CodeIgniter/PHP 是否正常?
PHP => PHP 版本 5.5.9-1ubuntu4.3
CodeIgniter => 2.2.0
$this->db->select('id_etablissement_payeur, nom');
$this->db->where('id_etablissement_payeur',$enregistrement['id_etablissement_payeur']);
$get_RESULTAT_etablissements_payeurs = $this->db->get('etablissements_payeurs');
$result_etablissements_payeurs = $get_RESULTAT_etablissements_payeurs->result_array();
echo '<pre>';
print_r($result_etablissements_payeurs);
echo '</pre>';
echo $result_etablissements_payeurs[0]['id_etablissement_payeur'] . ' - '; //Line Number: 279
echo $result_etablissements_payeurs[0]['nom']; //Line Number: 280
print_r 的偏移量为 0,效果很好:
<pre>Array
(
[0] => Array
(
[id_etablissement_payeur] => 4
[nom] => Etablissement payeur N° 4
)
)
</pre>4 - Etablissement payeur N° 4<pre>Array
(
[0] => Array
(
[id_etablissement_payeur] => 1
[nom] => Etablissement payeur N° 1
)
)
</pre>1 - Etablissement payeur N° 1<pre>Array
(
[0] => Array
(
[id_etablissement_payeur] => 1
[nom] => Etablissement payeur N° 1
)
)
etc.
但是 2 回声产生了一个未定义的偏移量:0 错误:
<p>Severity: Notice</p>
<p>Message: Undefined offset: 0</p>
<p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
<p>Line Number: 279</p>
</div> - <div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message: Undefined offset: 0</p>
<p>Filename: ETABLISSEMENTS_COMMANDITAIRES/etablissements_commanditaires_c.php</p>
<p>Line Number: 280</p>
</div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
etc.
这很奇怪,因为偏移量 0 确实存在,或者我错过了什么地方。
有什么想法吗?
【问题讨论】:
标签: arrays codeigniter object