未捕获的类型错误:join():参数 #2 ($array) 必须为 ?array 类型,给定字符串 / Highcharts 的 PHP8 数据

Kai*_* L. 2 php arrays highcharts php-8

我的虚拟主机将 PHP 版本从 PHP7.4 更改为 PHP8。现在我的 Highcharts 不再显示,并且根据 Highcharts 系列数据我收到一条错误消息。

图表的数据来自mysql数据库。

这是错误:

Uncaught TypeError: join(): Argument #2 ($array) must be of type ?array, string given in testchart.php:64
Stack trace:
\#0 testchart.php(64): join(Array, ',')
\#1 {main}
thrown in testchart.php on line 64
Run Code Online (Sandbox Code Playgroud)

我的呼吁join()

data: [<?php echo join($tempA24, ',') ?>],
Run Code Online (Sandbox Code Playgroud)

这是包含数据库值的数组:


array(2) {
  [0] => array(2) {
    [0] => float(1667131200000)[1] => float(21)
  }
  [1] => array(2) {
    [0] => float(1667134800000)[1] => float(22)
  }
}
Run Code Online (Sandbox Code Playgroud)

Luk*_*uke 5

的语法join是相反的 - 它应该是join($separator, $array)

或者,就你的情况而言:join(',', $tempA24);

至于它曾经起作用的原因 - 有一个遗留签名以相反的方式进行争论。然而,这在 PHP 7.4 中已被弃用,现在已在 PHP 8.0 中删除

Docsjoin是 的直接别名implode):

implode(string $separator, array $array): string

旧签名(自 PHP 7.4.0 起已弃用,自 PHP 8.0.0 起已删除):
implode(array $array, string $separator): string