Есть ли законное использование для простых строк в PHP?

Этот вопрос заставил меня задуматься о простых струнах.

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

echo $foo[bar]; 

Если существует постоянная вызываемая полоса, она использует это для ключа массива, но если нет, тогда он рассматривает бар как голую строку, поэтому он ведет себя так же, как

 echo $foo["bar"]; 

Это может вызвать всевозможные проблемы, если в какой-то будущий день константа добавляется с тем же именем.

Мой вопрос в том, есть ли какая-то ситуация, когда на самом деле имеет смысл использовать голую строку?

Нет, я не вижу ни одного примера, где это имеет смысл, и это всегда опасно. Использование строк без кавычек должно быть абсолютно зарезервировано для адресации констант. Я не понимаю, как изобретатели PHP могли решить ввести это нелепое поведение вообще – он делает правильное использование констант почти невозможным (потому что, если вы попытаетесь получить доступ к константе, которая не была определена, PHP будет молча и глупо генерировать строка), не принося никакой пользы.

Это, скорее всего, не считается законным, но твиновская концепция MVC- оболочки моего друга TweetMVC избегает цитат в нескольких местах, чтобы сжать еще несколько символов, например:

 foreach(c('mod')as$f)require"t/$f.php";@list($c,$m,$a)=explode('/',@$_GET[r],3);$c=$c?:c('dc');$o=(@include"c/$c.php")?@new$c($m,$a):e(1) 

Единственный раз, когда вы использовали бы голую строку в качестве ключа, – если она была ранее использована в define() для константы.