包含作为数组函数输入的php字符串变量

包含作为数组函数输入的php字符串变量,php,arrays,string,text,input,Php,Arrays,String,Text,Input,为什么这不起作用 $stringhaha =" 1 => General, 2 => Business, 3 => Entertainment, 4 => Health, 5 => Politics, 6 => Sci/Tech, 7 => Sports, 8 => News"; $all_categories = array($stringhaha)

为什么这不起作用

  $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);

所发生的事情正是您应该期望的:您已经声明了一个包含一个字符串的数组

对于我们人类来说,字符串看起来像数组并不重要,PHP只是PHP,无法神奇地检测到您希望它从字符串解析数组


giorgio79,meet,你的新好友。

发生的事情正是你应该预料到的:你声明了一个包含一个字符串的数组

对于我们人类来说,字符串看起来像数组并不重要,PHP只是PHP,无法神奇地检测到您希望它从字符串解析数组


乔治79,见见你的新好朋友。

这叫语言语法。你不能做任何你想做的事。你必须说出它的设计语言

这也不行

message = hello
为什么??因为它在语法上不正确。这同样适用于您的数组示例

这是正确的

$message = 'hello';

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

这叫做语言语法。你不能做任何你想做的事。你必须说出它的设计语言

这也不行

message = hello
为什么??因为它在语法上不正确。这同样适用于您的数组示例

这是正确的

$message = 'hello';

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

我认为正确的语法是:

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

print_r($all_categories);

您确实需要字符串数组,对吗?

我认为正确的语法是:

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

print_r($all_categories);

您确实需要一个字符串数组,对吗?

这是我希望PHP不那么宽容的时候之一。人们已经习惯了可以做任何他们想做的事情……第二个例子“起作用”,但是你应该把所有的字符串文字都括在引号里。PHP太宽容的另一个例子。谢谢你的评论。如何让php中的数组函数接受一个变量(直接复制到数组函数中时包含正确的数组输入)?根据我的示例,这似乎也是不可能的。好的,这似乎是不可能的。刚刚在php文档数组类型描述中发现了这一点:对于任何类型:整数、浮点、字符串、布尔值和资源,将值转换为数组将生成一个数组,该数组包含索引为零的单个元素和转换后的标量值。换句话说,(array)$scalarValue与array($scalarValue)完全相同。这是我希望PHP稍微宽容一点的时候之一。人们已经习惯了可以做任何他们想做的事情……第二个例子“起作用”,但是你应该把所有的字符串文字都括在引号里。PHP太宽容的另一个例子。谢谢你的评论。如何让php中的数组函数接受一个变量(直接复制到数组函数中时包含正确的数组输入)?根据我的示例,这似乎也是不可能的。好的,这似乎是不可能的。刚刚在php文档数组类型描述中发现了这一点:对于任何类型:整数、浮点、字符串、布尔值和资源,将值转换为数组将生成一个数组,该数组包含索引为零的单个元素和转换后的标量值。换句话说,(array)$scalarValue与array($scalarValue)完全相同。好的,谢谢。这里有一些更多的信息给后面的人:好的,谢谢。以下是我之后的其他人的更多信息: