Мне нужен авторитетный ответ на этот вопрос, или вы можете сказать мой запрос.Обязательно использовать кавычки (одинарные кавычки и двойные кавычки) вокруг индекса при доступе к элементам массива в PHP?
Давайте посмотрим на следующие три фрагменты кода:
Первое:
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y;
?>
</body>
</html>
Второе:
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS["y"] = $GLOBALS["x"] + $GLOBALS["y"];
}
myTest();
echo $y;
?>
</body>
</html>
Третье:
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS[y] = $GLOBALS[x] + $GLOBALS[y];
}
myTest();
echo $y;
?>
</body>
</html>
Для каждого из приведенных выше фрагментов кода я получил тот же результат в своем браузере .
Если Вы заметили выше три фрагменты кода тесно, вы найдете следующие три различных утверждений:
//From First Code Snippet. Here I've used single quotes around the array index.
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
//From Second Code Snippet. Here I've used double quotes around the array index.
$GLOBALS["y"] = $GLOBALS["x"] + $GLOBALS["y"];
//From Third Code Snippet. Here I've not used any kind of quotes around the array index.
$GLOBALS[y] = $GLOBALS[x] + $GLOBALS[y];
Итак, мои сомнения заключаются в следующем:
- Обязательно ли использовать кавычки вокруг индекса массива при доступе к определенному элементу массива?
- Если да, то какой тип котировок я имею в виду одинарные кавычки или двойные кавычки?
- Я не использовал какие-либо кавычки в своем последнем фрагменте кода, хотя получил тот же результат. Означает ли это, что использование кавычек при доступе к элементам массива не является обязательным?
- Или это специальный случай, который действителен только для массива
$GLOBALS
?
Первые две строки, последние являются константами. Действуют нормальные правила. Здесь ничего особенного. Просто прочитайте [руководство] (http://php.net/manual/en/language.types.array.php), в котором объясняется * именно то, что вы ищете. Смотрите, где говорится, что делают и не делают. –
@JohnConde: Я не определил и не использовал константы в моем коде. – user2839497
Используйте одиночные или двойные кавычки. Если вы не используете их, он все равно будет работать в этом случае, поскольку PHP будет искать определенную константу с этим именем, и если он ничего не найдет, он вернется к строке. Однако вы должны получать уведомление в своих журналах ошибок. –