строковая переменная php, содержащая в качестве входных данных для функции массива - PullRequest
0 голосов
/ 17 августа 2010

Почему это не работает?

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

Ответы [ 3 ]

2 голосов
/ 17 августа 2010

Это называется синтаксис языка.Вы не можете делать все, что хотите.Вы должны говорить на том языке, как он был разработан.

Это тоже не работает

message = hello

Почему?Потому что это не синтаксически правильно.То же самое относится к вашему примеру с массивом.

Это правильно

$message = 'hello';

У каждого языка есть правила, и вы должны их соблюдать.Удачи.

2 голосов
/ 17 августа 2010

То, что происходит, именно то, что вы должны ожидать: вы объявили массив, содержащий одну строку.

Неважно, что ваша строка для нас, людей, выглядит как массив, PHP - это просто PHPи не может волшебным образом определить, что вы хотите, чтобы он анализировал массив из строки.

giorgio79, соответствует PHP Docs , вашему новому лучшему другу.

0 голосов
/ 17 августа 2010

Я думаю, правильный синтаксис:

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

print_r($all_categories);

Вам нужен массив строк, верно?

...