Обязательно ли использовать кавычки (одинарные кавычки и двойные кавычки) вокруг индекса при доступе к элементам массива в 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>

Для каждого из приведенных выше фрагментов кода я получил одинаковый результат в своем браузере 15.

Если вы внимательно ознакомились с тремя приведенными выше фрагментами кода, вы найдете три следующих утверждения:

//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 массив?

-3

Решение

В PHP одинарные и двойные кавычки ведут себя почти одинаково. Единственным исключением является то, что двойные кавычки позволяют экранировать.

$GLOBALS["y"] а также $GLOBALS['y'] то же самое в этом сценарии.

$GLOBALS[y] может работать, но проблематично. y ссылки на постоянную переменную под названием y, Если у вас его нет, он анализируется как строка, таким образом, работает как выше.

Но это на самом деле неправильно, и вы должны использовать кавычки!

Обязательно ли использовать кавычки вокруг индекса массива при доступе к конкретному элементу массива?

Абсолютно.

Если да, то какой тип кавычек, я имею в виду одинарные кавычки или двойные кавычки?

Как я уже сказал, вы можете использовать либо. Лично я предпочитаю сингл ('), но это зависит от вас.

Я не использовал никаких цитат в своем последнем фрагменте кода, хотя получил тот же результат. Означает ли это, что использование кавычек при доступе к элементам массива не обязательно?

Смотрите ответ на вопрос № 1.

Или это особый случай, который действителен только для массива $ GLOBALS?

Это скорее интерпретируется как постоянная переменная, определенная как const y = '...';

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]