PHP 警告:count():参数必须是在 C:\\htdocs\my.php 中实现 Countable 的数组或对象 [关闭]

Posted

技术标签:

【中文标题】PHP 警告:count():参数必须是在 C:\\\\htdocs\\my.php 中实现 Countable 的数组或对象 [关闭]【英文标题】:PHP Warning: count(): Parameter must be an array or an object that implements Countable in C:\\htdocs\my.php [closed]PHP 警告:count():参数必须是在 C:\\htdocs\my.php 中实现 Countable 的数组或对象 [关闭] 【发布时间】:2019-06-14 00:25:21 【问题描述】:

count():参数必须是数组或对象,在C:\htdocs..\components\com_jcmets\tpl\joomspirit_theme\tpl_form.php中实现Countable

$customBBCodes = $this->getVar('comments-form-custombbcodes');
if (count($customBBCodes)) 
    foreach($customBBCodes as $code) 
        if ($code->button_enabled) 
            $k = 'custombbcode' . $code->id;
            $title = trim(JCommentsText::jsEscape($code->button_title));
            $text = empty($code->button_prompt) ? JText::_('BBCODE_HINT_ENTER_TEXT') : JText::_($code->button_prompt);
            $open_tag = $code->button_open_tag;
            $close_tag = $code->button_close_tag;
            $icon = $code->button_image;
            $css = $code->button_css;
        
    

我在我的 Joomla 3.0 应用程序中使用 Apache 上的 PHP7.3 运行此脚本。

【问题讨论】:

var_dump($customBBCodes) 所以$customBBCodes 不是你所期望的数组或对象。检查 $this->getVar('comments-form-custombbcodes'); 返回的内容 if (count($customBBCodes)) 的目的到底是什么?这在这里似乎完全没有必要。 由于我们不知道$customBBCodes 的数据类型或值,这个问题需要更好的诊断细节才能得到适当/准确的回答。在不知道数据类型的实际和预期范围是什么的情况下提供is_array() 还为时过早。 我期待与此页面类似的命运:***.com/q/51594817/2943403 【参考方案1】:

必须加if(is_array($customBBCodes))

全部改成

   `$customBBCodes = $this->getVar('comments-form-custombbcodes');
    if(is_array($customBBCodes))
        if (count($customBBCodes)) 
            foreach($customBBCodes as $code) 
                if ($code->button_enabled) 
                    $k = 'custombbcode' . $code->id;
                    $title = trim(JCommentsText::jsEscape($code->button_title));
                    $text = empty($code->button_prompt) ? JText::_('BBCODE_HINT_ENTER_TEXT') : JText::_($code->button_prompt);
                    $open_tag = $code->button_open_tag;
                    $close_tag = $code->button_close_tag;
                    $icon = $code->button_image;
                    $css = $code->button_css;`                    

【讨论】:

以上是关于PHP 警告:count():参数必须是在 C:\\htdocs\my.php 中实现 Countable 的数组或对象 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

PHP 警告:count(): 参数必须是数组或实现 Countable 的对象

PHP错误:警告:count():参数必须是实现Countable的数组或对象

PHP警告消息:count():参数必须是实现Countable的数组或对象[重复]

./libraries/plugin_interface.lib.php#551 count() 中的警告:参数必须是数组或实现 Countable 的对象

MYBB 警告 [2] count():参数必须是数组或实现 Countable 的对象 - 行:906

警告:sizeof():参数必须是数组或实现可数php7.2的对象