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,我在回显会话数组时遇到了一个奇怪的问题。我希望做到以下几点: for($i=0;$i<sizeof($_SESSION['medication']);$i++){ echo $_SESSION['medication'][$i]; } 更新2 我发现了问题:在代码的后面部分,我使用了变量$medicing,它似乎引用了会话。怎么会?“全球注册”打开了吗 更新3-找到解决方案 register_globals确实是开着的(多么尴尬),我把它关掉了。它与另一个变量$medicing有

我在回显会话数组时遇到了一个奇怪的问题。我希望做到以下几点:

for($i=0;$i<sizeof($_SESSION['medication']);$i++){
    echo $_SESSION['medication'][$i];
}
更新2

我发现了问题:在代码的后面部分,我使用了变量$medicing,它似乎引用了会话。怎么会?“全球注册”打开了吗

更新3-找到解决方案
register_globals确实是开着的(多么尴尬),我把它关掉了。它与另一个变量$medicing有关。现在它工作得很好。谢谢大家

该会话数组中有一个StdClass类型的对象无法回送


另外,使用

为什么要尝试使用for在数组上循环
foreach
专门设计用于迭代数组

尝试:

正如其他人所建议的,您可能正在
$\u会话['medicing']
中存储对象。您应该尝试
var_dump($_SESSION['medicing')
若要查看其中实际存储的内容,如果其中确实有一个对象(
stdClass
),您需要在运行循环之前删除它,因为您无法回显类

编辑:


$\u SESSION['medicing'][4]
之后的所有元素都包含一个对象作为值,您必须执行一些操作,而不是回显它(尝试像其他人建议的那样打印)

我的猜测是,会话数组的索引中存储的不是字符串。在本例中,数组中似乎有一个
stdClass
对象

此外,由于可以使用非数值数组索引,因此使用foreach循环将产生更好的结果

foreach($_SESSION['medication'] as $index => $value) {
    if (is_scalar($value)) {
        echo "$index = $value<br />";
    } else {
        echo "<pre>$index = " . print_r($value, true) . "</pre><br />";
    }
}
foreach($\u会话['medicing']作为$index=>$value){
if(是_标量($value)){
echo“$index=$value
”; }否则{ echo“$index=”.print_r($value,true)。“
”; } }

将检查变量是否可以回送(字符串、int、float、bool),否则我们将返回值。

显示
var\u转储($\u会话['medicing'))
请。谢谢。试试
var_转储($_会话['medicing'])您在“药物”中存储了什么?它是一个数组吗?显示更多提示。@tunmisefasipe我正在会话数组中存储不同的药物。请参阅var_dump()的问题编辑,我通常也使用foreach,但它也有相同的问题。这非常有用,并向我展示了数组中的内容,非常感谢!!
foreach($_SESSION['medication'] as $foo){
    echo $foo;
}
foreach($_SESSION['medication'] as $index => $value) {
    if (is_scalar($value)) {
        echo "$index = $value<br />";
    } else {
        echo "<pre>$index = " . print_r($value, true) . "</pre><br />";
    }
}