首页 > 解决方案 > 变量未检测为数组

问题描述

我正在尝试创建一个文档注册代码(仍然没有编写函数)并且我尝试做一个回显来检查我的代码是否工作正常。不幸的是,它显然不起作用,因为我得到一个错误 $tag 实际上不是一个数组。我得到的错误是:

警告:count():参数必须是在 C:\xampp\htdocs\Intranet\Argumentarios\admin\uploader.php 第 37 行实现 Countable 的数组或对象

注意:未初始化的字符串偏移量:C:\xampp\htdocs\Intranet\Argumentarios\admin\uploader.php 第 38 行标记中的 0

警告:count():参数必须是在 C:\xampp\htdocs\Intranet\Argumentarios\admin\uploader.php 第 37 行中实现 Countable 的数组或对象"

代码是:

class Paquete{
    //Variable
    public $tag = array();
    //Funcion
    public function guardar($tag){
        $this->tag = $tag;
    }
    public function grabar($tag){
        //INSERT....
        echo "Tag". $this->tag . "<br/>";
    }
    public function ciclos() {
        for($i = 0; $i < count($this->tag); $i++){
            Paquete::grabar($this->tag[$i]);
        }
    }
}

标签: php

解决方案


guardar()应该推$tag送到 $this->tag数组上,而不是用单个标签替换数组。

此外,grabar不应该 echo $this-tag,它应该回显$tag参数。并且它应该被声明为静态的,因为它不需要使用$this.

class Paquete{
    //Variable
    public $tag = array();
    //Funcion
    public function guardar($tag){
        $this->tag[] = $tag;
    }
    public static function grabar($tag){
        //INSERT....
        echo "Tag". $tag . "<br/>";
    }
    public function ciclos() {
        foreach ($this->tag as $tag) {
            Paquete::grabar($tag);
        }
    }
}

推荐阅读