Возможный дубликат:
Почему переменные PHP начинаются с символа знака $?
Я посмотрел на другие языки программирования, и кажется, что большинство из них не имеют никакого символа, чтобы показать, что что-то является переменной. Есть ли какая-то причина, почему интерпретатору PHP нужен такой знак, когда интерпретаторы / компиляторы для других языков способны выяснить, что такое переменная без такого символа?
Он делает это быстрее для переводчика? Помогает ли инженерам создавать интерпретатор? Это сделать код более легким для чтения? Или какая-то другая причина?
Бонусный вопрос: И если есть веская причина иметь символ, обозначающий переменную, почему у него не все языки программирования?
Это самый близкий вопрос, который я мог найти, хотя вопрос кажется неясным, и ответы варьируются от «только потому, что» до «вот почему это символ $, а не какой-то другой символ». Этот поток, похоже, не затрагивает фактическую цель знака доллара.
EDIT: Мой вопрос, должно быть, был ужасно сформулирован, судя по путанице в комментариях. Чтобы уточнить, мой вопрос не «Почему символ перед переменной a $, а не какой-то другой символ?», Вопрос, который был задан, и получил четыре хороших ответа на странице, с которой я связан. Мой вопрос: «Почему в PHP есть какой-либо символ перед переменной? Какую цель она имеет для символа перед переменной?»
Наличие символа для обозначения переменных делает строчную интерполяцию простой и понятной. Shell, Perl и PHP возникли из-за необходимости быстрой и простой манипуляции строками, включая интерполяцию, поэтому я предполагаю, что использование префикса переменной казалось хорошей идеей.
Т.е. в PHP:
$var = 'val'; $strVar = "The var is $var";
Сравнение с типичным форматированием строк:
var = 'val' strVal = 'The var is %s' %(var)
Я думаю, что это просто из его истоков.
Unix-оболочка и Perl были примерами.
если вы будете смотреть PHP ближе, вы увидите очень много общего с оболочкой.
Таким образом, вам лучше решить свой вопрос там 🙂
В php вам не нужно устанавливать переменные до их использования, а на других языках вы должны объявлять переменные перед их использованием, например var MyVar = 'my value'
или определить, какой контент будет удерживаться.
Я не уверен, но я думаю, что цель добавления символа состояла в том, чтобы не нужно было объявлять переменные, и пусть apache знает, что это переменная.