Какой из них ниже? У первого кода нет кавычек в массиве $ _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; }
Первый будет использовать значение $name
as key, а второй будет использовать буквенную строку '$name'
качестве ключа.
С PHP, $_GET["$name"]
и $_GET[$name]
идентичны, потому что PHP будет оценивать переменные внутри двойных кавычек. Это вернет ключ любого хранилища переменных $name
.
Однако $_GET['$name']
будет искать ключ самого $name
, а не любую переменную $name
.
Если ключ представляет собой число, $_GET[6]
, $_GET['6']
и $_GET["6"]
все синтаксически равны.
если ключ является переменной
$ Массив [$ ключ];
вам не нужно это процитировать.
но если это буквальная строка, вы должны (это не строка, если вы не завершаете ее в кавычки)
$ Массив [ 'MYKEY'];
и вы получите уведомление, если вы сделаете это так
$array[mykey];