Нужны ли нам ключи массива PHP в кавычках?

Какой из приведенных ниже является правильным? Первый код не имеет кавычек в массиве $_GET, а второй - я знаю, вы должны иметь их, когда это текстовая строка, но в этом случае это переменная, а как насчет того, если ключ является числом?

без кавычек

function arg_p($name, $default = null) {
  return (isset($_GET[$name])) ? $_GET[$name] : $default;
}

с цитатами

function arg_p($name, $default = null) {
  return (isset($_GET['$name'])) ? $_GET['$name'] : $default;
}

3 ответа

Решение

Первый будет использовать значение $name в качестве ключа, в то время как второй будет использовать буквенную строку '$name' в качестве ключа.

С PHP, $_GET["$name"] а также $_GET[$name] идентичны, потому что PHP будет оценивать переменные внутри двойных кавычек. Это вернет ключ любой переменной $name магазины.

Тем не мение, $_GET['$name'] будет искать ключ $name сама по себе, а не переменная $name содержит.

Если ключ является номером, $_GET[6], $_GET['6'], а также $_GET["6"] все синтаксически равны.

  • если ключ является переменной

    $ Массив [$ ключ];

Вы не должны цитировать это.

  • но если это буквальная строка, вы должны (это не строка, если вы не заключаете ее в кавычки)

    $ Массив ['MYKEY'];

и вы получите уведомление, если вы сделаете это так

$array[mykey];
Другие вопросы по тегам