Нужны ли нам ключи массива 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; } 

Solutions Collecting From Web of "Нужны ли нам ключи массива PHP, чтобы они были заключены в кавычки?"

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

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

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

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

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

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

вам не нужно это процитировать.

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

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

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

 $array[mykey];