Php 字符串/整数数组

Php 字符串/整数数组,php,arrays,Php,Arrays,Larvel数组到字符串/整数的转换错误。我有一个php代码,其中需要一个类型为“stringarray”和“integer array”的变量。但当我试图声明它们时,它将错误显示为“数组到字符串转换错误”。我是新的php,所以我如何才能做到这一点php class A { public $id; public $name; public $subject=[]; public $nosubject; public $teacherid=[]; p

Larvel数组到
字符串/整数的转换错误。我有一个php代码,其中需要一个类型为“
stringarray
”和“
integer array
”的变量。但当我试图声明它们时,它将错误显示为“
数组到字符串转换错误”
。我是新的php,所以我如何才能做到这一点php

class A
{
    public $id;
    public $name;
    public $subject=[];
    public $nosubject;
    public $teacherid=[];
    public $hours=[];

    public function __construct()
    {
        settype($this->subject,"string");
        settype($this->hours,"integer");
        settype($this->teacherid,"integer");
    }}
我需要一个“字符串数组”类型的变量

那么您使用了错误的语言,因为PHP没有类型“string array”

它的类型是,意思是“可能是整数、字符串、其他数组、对象、布尔或混合的数组”。正如手册所述,“它实际上是一个有序的地图”。有些语言称之为字典、地图或键值存储。它是而不是例如,C调用的“数组”

您已经将
subject
声明为数组。这就是你能做的。在构造函数中,执行任何操作都没有意义,因为将数组声明为array将是冗余的,而将其声明为其他任何操作都会导致错误

如果需要,您可以做的是在处理数组的所有成员时将其转换为字符串

例如,在诸如returnSubjects之类的函数中,您可能需要执行以下操作

$this->subject = array_map(
    function($member) {
        settype($member, 'string');
        return $member;
    },
    $this->subject
);

return $this->subject;

因此,如果您有array
$this->subject
-您希望它的字符串值是多少?要有一个subject name数组,您将数组转换为字符串,您希望输出什么?显然,如果subject是“string array[]”,您不能将type设置为“string”。你能不能把settype去掉?