为什么PHP中的变量前边要加'$'符号

为什么PHP中的变量前边要加’$’符号

一直都特别好奇 PHP 中的变量前边都加 $ 符号。别的大众编程语言从没见过这种设定,比如:java,c#,c,c++,go,Ruby,python 甚至连写法被吐槽最多的 Objective-c 都没有。那么这种设定是怎么来的?为什么要这样做呢。
OK,我的第一篇 IT考古文章就来研究探寻一下这个问题。
下面是我人肉过滤掉噪音信息后得到的回答:

历史问题,unix那时候就存在了,SHELL,PERL。。。等脚本语言都是那样定义变量的,主要是区分字符和变量。例如 echo test就是字符"test",echo $test就是输出变量的值。——by umbrella1984
1、加一个$可以使解释程序大为简化,从而提高运行速度
2、php出世的时候perl已经比较流行了,所以加一个$可以吸引众多的perl程序员转向
——by xuzuning
加了$,又可以多使用一些单词做为变量名,不受保留字的影响,变量命名更自由,并且解释器在文本中只要搜索到'$'就可以判断其为变量了。而不用像其他编译型语言那样,总是查找已定义的变量表来判断变量。
不过你说的那个在编辑器中变量名文本拷贝的问题确实挺麻烦,双击一个单词后,它是不会将'$'选中的。还是要手动筛选
——by Metal Lovers

最后奉上一种貌似靠谱,但是最扯最迷惑人的解释

网友1:
!     表示“非”被用到判断中了if(!isset...)
@   被用到防止SQL输出错误信息了
#    常用的注释符号,UNIX系统下#有它的重大意思
%   被用作SQL模糊匹配和ASP程序
^     被用作正则中了
&    就更不用说了,被表示成and($a && $b)
*     这个符号更不能用了,还记得SQL语句中的SELECT * 吗?
()   也是不合理的,要不然你得判断语句还怎么写
-+ 这属于运算符号,也不能用
';   之类的就更别提了。。。
你看看,PHP除了用$符号还有什么好的选择?
——by https://blog.csdn.net/ITofwanyifei/article/details/40450553

PHP的产生历史

PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要且增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mSQL的支持,从此建立了PHP在动态网页开发上的地位。
注意 这里明确指出,PHP最开始是用 Perl 编写的程序。这就是 PHP 天生的基因。而 Perl 语言里面的变量就是用 $ 表明的。
参考PHP的历史

所以总结

PHP 是由 Perl 进化而来的。而那个年代,所有的 类Unix 脚本语言都是前边添加$这样定义变量的,为的是区分字符和变量。
至于后边的便于解释器优化,容易使程序员一眼看到那些是变量,变量起名更自由,等等解释。都是以后的事儿了。大家做阅读理解嘛,请解释一下作者写这段话的心理活动,类似这种的。