热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么PHP在变量前面有$符号?-WhydoesPHPhavea$signinfrontofvariables?

InPHPandsomeotherscriptinglanguageshavethe$varsyntaxwhileJavaandotherlanguageswecan

In PHP and some other scripting languages have the $var syntax while Java and other languages we can do just var.

在PHP和其他一些脚本语言中有$ var语法,而Java和其他语言我们可以做var。

Is there any theory behind it? Does it help them to parse. If not why would they choose to tack on an extra character in front?

它背后有什么理论吗?它能帮助他们解析吗?如果不是为什么他们会选择在前面加上一个额外的角色呢?

6 个解决方案

#1


67  

It prevents variable names conflicting with language keywords, and allows them to be interpolated in strings.

它可以防止变量名与语言关键字冲突,并允许它们以字符串形式进行插值。

#2


9  

My theory is that scripting languages such as php would need some way to continue to run even if a new reserved word is introduced, such as php4 -> php5 got catch added. Since its a scripting language any webpages that had catch as a variable name would not die, due to the change in the language.

我的理论是,像php这样的脚本语言需要某种方式继续运行,即使引入了一个新的保留字,例如php4 - > php5 got catch。由于它是一种脚本语言,任何被捕获为变量名称的网页都不会因为语言的变化而死亡。

This is not an issue with compiled languages since everything is converted to a binary and any changes in the language would not affect already compiled programs

这不是编译语言的问题,因为所有内容都转换为二进制文件,语言中的任何更改都不会影响已编译的程序

#3


8  

Because constants and reserved words come without the $ thing

因为常量和保留字没有$ thing

Don't try to compare programming languages syntaxes... They're right in being so different. :)

不要试图比较编程语言的语法......他们是如此不同。 :)

#4


8  

Because its roots lay in Perl: PHP History

因为它的根源在于Perl:PHP历史

#5


6  

Because some languages are ugly ad hoc scripting kludges and used goofy tricks to alert the "parser" to the fact that it has work to do.

因为有些语言是丑陋的特殊脚本kludges并使用愚蠢的技巧来提醒“解析器”它有工作要做的事实。

And other languages were real language design efforts that used real variable names and not ugly macro syntax...

其他语言是真正的语言设计工作,使用真正的变量名称,而不是丑陋的宏语法......

The one rather decent language that uses $ is Perl, but I might point out that Perl6 dropped it.

使用$的一种相当不错的语言是Perl,但我可能会指出Perl6掉了它。

#6


1  

Here is an proposed explanation as to why PHP uses $. It shows the sequence of original scripts such as awk which used the $ through Perl to PHP.

以下是PHP使用$的原因的建议解释。它显示了原始脚本的序列,例如awk,它使用$ Perl到PHP。

Probably originally used to make parsing of the language a lot easier.

可能最初用于使语言的解析更容易。


推荐阅读
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
author-avatar
journeylis-1998_246
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有