【问题标题】:Why PHP variables start with a $ sign symbol?为什么 PHP 变量以 $ 符号开头?
【发布时间】:2011-03-05 16:00:49
【问题描述】:

有没有人想过这个问题。为什么我们必须写$var_name = value; 而不是var_name = value;?是的,我知道这是 PHP 使用的语法规则,但为什么它是 $ 符号?

【问题讨论】:

  • 你回答了你的第一个问题(这是一个语法规则)...我想你的意思是问,“为什么我们必须写 $var_name = value; 而不是 #var_name = value;@var_name = value;”?跨度>
  • 它很可能来自 Perl,PHP 的各个部分都基于 Perl。
  • 可能是来自 linux shell 变量?
  • 不是答案,但是使用“$”可以更容易地识别出某个变量是一个变量。

标签: php syntax variables


【解决方案1】:

因为 PHP 是基于使用 $ 的 Perl,虽然 Perl 使用的符号是有意义的,并且大量用于表示数据类型,(例如 @ 用于表示数组)PHP 只有 $

早期的 PHP 是 Perl 的简单版本,但随着时间的推移,它包含了更多 Perl 的功能,尽管有人可能会争辩说 PHP 在很长一段时间内都是 Perl 的简单原始版本,因为在 PHP 5.3 之前它不包含具有使用其他语言,例如闭包/命名空间。

http://en.wikipedia.org/wiki/PHP

Perl 的创建者 Larry Wall 受到启发,使用来自 shell 脚本的$http://en.wikipedia.org/wiki/Sigil_%28computer_programming%29

【讨论】:

  • 廉价主机不想升级不是语言的错。 PHP 作为自己的语言很好地出现了。
  • @Aaron - 即使您确实获得了最新的 PHP,与 Python/Haskell/Perl/ (插入语言)相比,它仍然远远缺乏功能。那里有更好的语言和更多的功能,它们更有条理,但没有那么流行和易于访问。我是从一个使用 PHP 比上述语言更多的人的角度说的。
  • PHP 现在有闭包、命名空间等。
  • 我相信TRUE BASIC 也使用美元符号构造来指示前面的字符串变量。它会类似于string$ = "Hello"。我同意这是一个相当奇特的角色。
  • @mederomuraliev 很高兴提到haskell!西蒙和 JP 会很自豪的。
【解决方案2】:

在所有变量前加上 $ 使得代码更容易解​​析,并且符合“Hello $var”变量嵌入字符串的想法。

【讨论】:

    【解决方案3】:

    有趣的答案:

    将 PHP 变量视为人,您可以命名一个人并为其分配工作!

    但是如果你不付钱,那个人会拒绝工作,所以,第一手提供一美元:)

    $Jack = "开我的车" ;

    只是给“游戏”带来乐趣! 享受吧!

    关于真正的答案:

    $ 符号是早期选择的 计算机编码,因为它是 几乎所有字符集中都存在符号 代码,以及内部很少需要的标志 编程语言!

    【讨论】:

    • 美元符号表示VALUE。
    • @Babiker,确实如此,这或多或少是我有趣的回答的目标! ;)
    • @Babiker,很高兴知道......我只是不知道是否反对投票,因为我对美元符号的历史知识很好,而且我 15 岁的编程书籍证明了这一点; )
    • 您最初发帖时没有“真正的”答案。
    • @John Kugelman,没错,我确实必须编辑我的答案,但那是我与鼠标的个人战争;)(有时我想选择一个文本块来给出“评论”标签,我的鼠标决定要删除选定的文本......我们之间的个人问题);)
    【解决方案4】:

    这在计算机语言中已经很常见了,仅此而已。早在 Perl 之前!例如,查看 Commodore 64 BASIC

    10 PRINT "WHAT IS YOUR NAME?"
    20 INPUT A$
    30 IF A$="BAHKTIYOR" THEN PRINT "HEY CHECK OUT THAT DOLLAR SIGN"
    

    然而,在 BASIC 中,$ 位于变量名之后。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      相关资源
      最近更新 更多