PHP sizeof() returns 1 错误

PHP sizeof() returns 1 incorrectly

此代码上周有效,我不记得最近更改过此代码,但由于某种原因它今天停止工作。

我已经缩小了问题的范围,但我对此感到困惑。基本上,$fields = sizeof($dataArray[$r]); 产生 $fields = 1,但如下图所示,ECHO json_encode($dataArray); 表明应该观察到 $fields = 9

$dataArray = $_POST['array'];

$validRows = array();
$invalidRows = array();

echo sizeof($dataArray); // correct output

for($r = 0; $r < sizeof($dataArray); $r++){

  $fields = sizeof($dataArray[$r]); // $fields is not what I expect

  ECHO json_encode($dataArray); // see image below (sent to javaScript alert)
  ECHO sizeof($fields); // returns 1
 
  ...
}

ECHO json_encode($dataArray); 出现在 javaScript 警报中

我的问题是什么?

基于 PHP 文档,sizeOf(Count 的别名)returns 1 如果数组不可数。

http://php.net/manual/en/function.count.php

Returns the number of elements in array_or_countable. If the parameter is not an array or not an object with implemented Countable interface, 1 will be returned. There is one exception, if array_or_countable is NULL, 0 will be returned.

但是除此之外,在你的第二个 ECHO 上,你显示的是 sizeOff 的结果 sizeoff ,那将是一个数字 伪: a = count("a","b","c") a 应该是 3 ECHO 计数(a) ECHO 显示 1,因为 (a) 是单个元素