Php 字符串/整数数组
Larvel数组到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
字符串/整数的转换错误。我有一个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去掉?