php - 致命错误:未捕获的错误:无法使用 Entrada 类型的对象作为数组
问题描述
谁帮我解决这个问题?
56 public static function mostrar_entradas_busqueda($entradas) {
57 $count = count($entradas);
58 for ($i = 1; $i <= $count; $i++) {
59 if ($i % 3 == 1) {
60 ?>
61 <div class="row">
62 <?php
63 }
64 $entradas = $entradas[$i - 1];
65 self::mostrar_entrada_busqueda($entradas);
66
67 if ($i % 3 == 0) {
68 ?>
69 </div>
70 <?php
71 }
72 }
73 if ($i % 3 !== 0) {
74 ?>
75 </div>
76 <?php
77 }
78 }
致命错误:未捕获错误:无法在 C:\xampp\htdocs\blog\app\EscritorEntradas.inc.php:64 中使用 Entrada 类型的对象作为数组:64 堆栈跟踪:#0 C:\xampp\htdocs\blog\vistas\buscar .php(81): EscritorEntradas::mostrar_entradas_busqueda(Object(Entrada)) #1 C:\xampp\htdocs\blog\index.php(117): include_once('C:\xampp\htdocs...') #2 {main} 在第 64 行的 C:\xampp\htdocs\blog\app\EscritorEntradas.inc.php 中抛出
解决方案
第一次执行时,这行...
$entradas = $entradas[$i - 1];
... 将 的值重写为$entradas
对象(数组的第零个元素的值$entradas
)。下次尝试执行它时,实际上是将该对象作为数组进行查询,因此会出现错误。
解决方案:只需重命名该变量,您就完成了:
$entrada = $entradas[$i - 1]; // and now it's single
self::mostrar_entrada_busqueda($entrada);
是的,变量的作用域是 PHP 中的每个函数,而不是每个块。但即使是后者,你仍然必须重写那行;我不知道有任何语言对赋值语句的左右部分有不同的范围解析规则。
作为旁注,我真的不确定您为什么要检查i % 3 == 0
内部if (i % 3 == 1)
分支。
推荐阅读
- formbuilder - 如何创建一个拖放表单构建器,如谷歌表单,但更强大,如 jotForms
- python - “元素 '
气味 14 中的“无法位于父视图中” - html - Ajax 表单在应该提交新信息时向数据库提交相同的信息
- php - Laravel 变形关系
- javascript - 通过引用设置原始对象属性
- influxdb - 尝试按时间分组的 InfluxDB 2.0 意外令牌
- php - 在 tmp 文件夹中创建新目录并存储上传的文件
- c++ - c++ 带参数的结构指针
- wordpress - 如何使 div 或 id 仅对登录的 wordpress 作者可见
- python - 如何将 Scrapy 脚本转换为 .exe 文件?