Какой из них ниже? У первого кода нет кавычек в массиве $ _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];