Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算会话数组中的值时出现警告_Php_Arrays_Session - Fatal编程技术网

Php 计算会话数组中的值时出现警告

Php 计算会话数组中的值时出现警告,php,arrays,session,Php,Arrays,Session,自从升级到PHP7.2后,我现在在尝试获取PHP会话中的值数时收到此警告 Parameter must be an array or an object that implements Countable in 我尝试使用的获取值数量的代码是 $numSelected = count($_SESSION['selectStandards']); 及 我认为php会话是一个数组,但我的理解似乎不正确,但我不确定的是如何将会话转换为数组 话虽如此,将我的代码保持原样会给我带来更多问题吗?我现有的

自从升级到PHP7.2后,我现在在尝试获取PHP会话中的值数时收到此警告

Parameter must be an array or an object that implements Countable in
我尝试使用的获取值数量的代码是

$numSelected = count($_SESSION['selectStandards']);

我认为php会话是一个数组,但我的理解似乎不正确,但我不确定的是如何将会话转换为数组

话虽如此,将我的代码保持原样会给我带来更多问题吗?我现有的代码正按原样工作

这是$\u会话['selectStandards']的var\u转储

array(4) { [0]=> string(6) "107732" [1]=> string(6) "107733" [2]=> string(6) "107731" [3]=> string(6) "107734" }

为什么不检查它是否存在,以及它是否确实是一个数组,哪一个可以计数

$numSelected = isset($_SESSION['selectStandards']) && is_array($_SESSION['selectStandards']) ? count($_SESSION['selectStandards']) : 0;

数组中的特定元素不是array@Andreas我不完全清楚你说的“做var_dump$”会话['selectStandards']是什么意思;你会发现它不是一个数组或者一个可数的对象。PHP会话是数组,但它们包含的值可以是任何内容。@johncode将会话转换为数组可以修复它吗?这是一个数组。在您尝试计数项目时,会话中是否存在此项目?你在某个地方遗漏了一些东西。它肯定存在,因为我在我的代码中进一步从中提取值,这是可行的。我只需要找到一种方法来获取会话中的值的数量。count和sizeof正在返回我期望的值,但我知道这不是正确的方法,它将消除错误,但可能不会给出他们期望的结果,甚至是$\u会话['selectStandards']。如果他们要添加var_dump$会话['selectStandards'的输出;对于他们的问题,我们可以更好地帮助他们。。。如果是CSV,则需要在计数前爆炸。
$numSelected = isset($_SESSION['selectStandards']) && is_array($_SESSION['selectStandards']) ? count($_SESSION['selectStandards']) : 0;