2011-12-17 52 views
-1

阵列任何人都可以解释为什么我看不到有什么数组里面?我认为它应该可以有多个号码(订阅),所以也许这就是为什么我有麻烦?这是代码。打印出里面的PHP

$num = $_SESSION['subscription_ids']; 
if(is_array($num)) 
    { 
print_r($num); 
    } 
    else 
    { 
echo "not an array"; 
    } 

//Thanks DonnieM, yet It's spliting out "Array () " no joke. 

这是怎么回事?

+0

你会得到什么? `print_r`应该输出* something *。 – deceze 2011-12-17 05:12:59

+0

var_dump($ _ SESSION ['subscription_ids'])的输出是什么; – 2011-12-17 05:13:27

+0

for print_r它有数组()和var转储状态NULL – Matt 2011-12-17 05:15:38

回答

2

你的困惑显然​​产生于1输出为is_array
is_array返回一个布尔值值(truefalse)。当输出布尔值作为文本,true被表示为1false如无物(空字符串)。

因此1只是意味着是的,这是一个数组。它不会告诉你阵列中有多少个元素。

1

这是什么意思?

php > $a = array(); 
php > echo is_array($a); 
1 
php > print_r($a); 
/* this is not empty, but an empty array */ 
Array 
(
) 
/* as long $a is initiate, it WILL NEVER return NULL */ 
php > var_dump($a); 
array(0) { 
} 

/* but */ 
php > $a = array(null); 
php > var_dump($a); 
array(1) { 
    [0]=> 
    NULL 
} 
0

很难说,因为我不知道$ _SESSION ['subscription_ids']的值是什么。它在我看来你正在使用is_array函数不正确。它返回一个布尔值,你只是把它分配给一个变量。这里是一个链接到文件:

http://php.net/manual/en/function.is-array.php

我想说结构中的这样的代码:

$num = $_SESSION['subscription_ids']; 
if(is_array($num)) 
{ 
    print_r($num); 
} 
else 
{ 
    echo "not an array"; 
} 

希望这有助于!