gpt4 book ai didi

php - 变量是数组但不可数?

转载 作者:行者123 更新时间:2023-12-04 01:39:15 24 4
gpt4 key购买 nike

我正在将我们的 Codeigniter (v. 3.1.11) 站点从 php 5.6 升级到 php 7.2(目前在我的 Mac 上的本地主机上运行)。慢慢地,我找到了 count() 用法的所有实例并进行了更正。我的理解是数组是可数的,但我似乎无法计算数据库调用后由 Codeigniter 的 result_array() 函数返回的数组......

我的 Controller 的以下部分

    $reviews = $this->reviews_model->review_details($productname);
echo "Variable is type: ".gettype($reviews);
if (count($reviews >=1)) {
$myreview=$reviews[0];
} else {
$myreview=0;
}
return $myreview;

在我的模型中调用这个函数(请注意,我正在回显变量类型只是为了确定!)
    function review_details($pagename) {
$r = false;
$sql = "select Reviews.*, ReviewItemLink.Item as Product, ReviewItemLink.* from Reviews LEFT JOIN ReviewItemLink ON Reviews.ReviewItemID=ReviewItemLink.ReviewItemID where pagename=? AND ReviewActive = 1 ORDER BY Date DESC";
$query = $this->db->query($sql, $pagename);
if ($query->num_rows() > 0):
$r = $query->result_array();
endif;
return $r;
}

即使变量是一个数组
Variable is type: array

我现在仍然收到了非常熟悉的警告消息:
Severity: Warning
Message: count(): Parameter must be an array or an object that implements Countable
Filename: controllers/Software.php
Line Number: 1005

Backtrace:

File: /Users/juner/Sites/html/application/controllers/Software.php
Line: 1005
Function: _error_handler
File: /Users/juner/Sites/html/application/controllers/Software.php
Line: 75
Function: _get_my_review

File: /Users/juner/Sites/html/index.php
Line: 324
Function: require_once

是否有不可数的数组类型?任何建议/想法将是最有帮助的!

最佳答案

这部分不正确(错别字?):

if (count($reviews >=1)) {
$myreview=$reviews[0];
} else {
$myreview=0;
}

您正在向 count 函数传递一个 bool 值。 count($reviews >=1)转至 count(true) ;这就是您收到警告的原因。
if (count($reviews >=1)) {应该是 if (count($reviews) >=1 ) {

关于php - 变量是数组但不可数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58207275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com