php получает переменные в качестве ключа без присвоенного значения

Если я введу следующее в браузер:

http://domain.com/script.php?1234 

И script.php имеет следующий скрипт:

  $key=array_keys($_GET); echo $key[0]; 

Выход будет:

  1234 

(Я пытаюсь покончить с уродливым r = 1234, и если это сработает, это будет идеально.)

Мой вопрос: официально ли это или плохое программирование?

Related of "php получает переменные в качестве ключа без присвоенного значения"

Вы могли бы также сделать

 echo $_SERVER['QUERY_STRING'] 

Что касается создания дружественных URL-адресов, есть лучшие способы сделать это.

См. Например: $ _GET и URL Rewriting для PHP

Ничто не может быть официально правильным, если оно работает для вас, то, во что бы то ни стало, его использовать. Кстати, проблема в том, что это то, что значение.

Когда у вас есть example.com?1234&4567 тогда у вас будет два значения без имени ключа, чтобы рассказать вам, что к чему.

Но если вы хотите покончить с уродливым url, вы должны изучить mod_rewrite

Руководство для начинающих

Другое руководство для новичков

Это верно. Переменная называется 1234, и она не имеет значения. Это значит

 GET['1234'] == ''; 

Вы могли бы также написать http://example.com?1234=10. Тогда результат будет

 GET['1234'] == '10'; 

Вы не должны использовать этот подход. Если вы не хотите, чтобы ваши переменные отображались, вы можете использовать переписывание URL, чтобы URL выглядел хорошо. Кроме того, не забудьте очистить свой $ _GET 🙂

Фактически, в вашем примере 1234 – это переменная, которую вы отправляете через GET, без значения, если вы хотите посмотреть ее таким образом.

Мой вопрос: официально ли это или плохое программирование?

Query-parameter-without-value не документирован для работы, хотя, вероятно, это будет продолжаться и на практике.

Если вы просто хотите захватить целую строку запроса, не анализируя ее как параметры, лучше всего сказать так:

 echo $_SERVER['QUERY_STRING'] 

(Независимо от того, что вы делаете, не отсылайте его прямо, хотя! Или дезинфицируйте значение, например, преобразовывая его в целое число, или, если вы хотите разрешить произвольную строку, вывести ее соответствующим образом для JavaScript, кавычками с косой чертой и кавычками обратные косые.)