【发布时间】:2021-03-27 07:05:42
【问题描述】:
我已经浏览了此处可以找到的有关此警告的所有其他帖子,但我似乎无法更正它。警告是PHP Warning: in_array() expects parameter 2 to be array, string given in...。
代码:
$my_teachers = $student->my_teachers;
if (in_array($teacher_email, $my_teachers)) {
我知道 $my_teachers 需要是一个数组,但据我所知。该值是通过创建一个数组,将教师的电子邮件推送到数组中,并将其保存到 MySQL 来创建的。 MySQL 数据库行显示为
a:2:{i:1;s:16:"teacheremail1@gmail.com";i:2;s:18:"teacheremail2@gmail.com";}
这实际上是作为字符串存储的,我没有意识到吗?无论哪种方式,我如何摆脱警告?代码仍然给了我预期的结果,但警告正在填满我的 error_log。
【问题讨论】:
-
似乎是
serialize()字符串。使用unserialize($string)转换回数组。 -
通常框架有一个内置的方法来转换回数组/对象。您可能需要查看您的项目(wordpress 或插件),看看是否有更好的方法。
标签: php mysql arrays wordpress