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