2010-08-17 89 views
0

为什么这不起作用?PHP字符串变量包含数组函数的输入

$stringhaha ="  1 => General, 
     2 => Business, 
     3 => Entertainment, 
     4 => Health, 
     5 => Politics, 
     6 => Sci/Tech, 
     7 => Sports, 
     8 => News"; 

$all_categories = array($stringhaha); 

print_r($all_categories); 

(将给予1项数组)

虽然这个工程: 如果我有这样的变量内容,将正确地创建一个阵列,8个项目:

$all_categories = array(1 => General, 
     2 => Business, 
     3 => Entertainment, 
     4 => Health, 
     5 => Politics, 
     6 => Sci/Tech, 
     7 => Sports, 
     8 => News); 

print_r($all_categories); 
+5

这是我希望PHP只是少一些宽容的时代之一。人们习惯于能够做他们想做的任何事情...... – NullUserException 2010-08-17 11:02:52

+0

顺便说一句,你的第二个例子“工作”,但你应该把所有这些字符串文字用引号引起来。 PHP的另一个例子太宽容了。 – NullUserException 2010-08-17 11:08:40

+0

感谢您的所有意见。 我怎样才能让PHP中的数组函数接受一个变量(包含直接复制到数组函数时正确的数组输入?) 这似乎是不可能的,因为我的例子也是如此。 – giorgio79 2010-08-17 11:26:07

回答

2

发生了什么正是你应该期望的:你已经声明了一个包含一个字符串的数组。

无关紧要的是,你的字符串看起来像一个数组给我们人类,PHP只是PHP,并且不能奇迹般地检测到你希望它从字符串中解析数组。

giorgio79,遇见PHP Docs,你的新好朋友。

+0

好的谢谢。以下是一些追随我的人的更多信息: http://www.php.net/manual/en/language.types.array.php – giorgio79 2010-08-17 11:33:56

2

它被称为语言语法。你无法做任何你想做的事。你必须说出它的设计语言。

这不工作,要么

message = hello 

为什么?因为它在语法上不正确。对于数组的例子同样适用。

这是正确的

$message = 'hello'; 

每一种语言都有规则,你必须尊重他们。祝你好运。

0

我认为正确的语法是:

$all_categories = array(1 => "General", 
    2 => "Business", 
    3 => "Entertainment", 
    4 => "Health", 
    5 => "Politics", 
    6 => "Sci/Tech", 
    7 => "Sports", 
    8 => "News"); 

print_r($all_categories); 

你想要一个字符串数组,对不对?

相关问题