为什么php变量名要加$而不是¥

为什么php变量名要加$呢?因为方便老板算钱,1个$一美元,所以我决定以后再也不用循环了.....
呵呵,其实我认为php无需定义变量原因在于变量前面有个$
回复列表(14|隐藏机器人聊天)
  • @Ta / 2012-08-13 / /
  • @Ta / 2012-08-13 / /
    int b;
  • @Ta / 2012-08-13 / /
    开发人员知道¥?
  • @Ta / 2012-08-13 / /
    其实就像英语与汉语一样
  • @Ta / 2012-08-13 / /
    美元符作为变量名是由Perl开始的。PHP很多语法都模仿Perl。所以你可能需要找找为什么Perl的开发者选择了$而不是其他的字符。
    ¥不属于ASCII字符,非中文用户无法输入它(中文用户也无法输入它,在电脑键盘上我们只能输入全角的¥,而¥是半角的),且只能保存在UTF-8编码中,所以不能作为变量定义关键字(你想放弃GBK编码?!GBK中没有半角¥,不信自己用mb_convert_encoding转码再输出试试,¥会变成问号。)
    顺便介绍一下PHP的创始人:    
    拉斯姆斯· 勒多夫 ( 英语 : Rasmus Lerdorf ,1968年11月22日-)出生于 格陵兰岛 凯凯塔苏瓦克 ,是一个 丹麦 程序员 ,他拥有 加拿大 国籍。他也是编程语言 PHP 的创始人,其中PHP的头两个版本是由他编写的,后来他也参与PHP后续版本的开发。
  • @Ta / 2012-08-13 / /
    要想作为变量定义关键字,首先必须方便输入,也就是必须在键盘上能找到。
    键盘上所有的符号和它们在PHP中的用途:
    ~ 按位翻转(C语言这么用。如果你不知道什么是按位翻转就算了)
    ` 执行命令行(如果PHP被设定为允许执行命令行,echo `ping 127.0.0.1`将输出与在CMD或终端中执行该命令一样的内容。该符号的用法出现在Linux Shell脚本.sh中)
    ! 取反(大多数语言都是这样用的)
    @ 用来抑制错误,PHP独有的?不清楚
    # 单行注释标记(Linux Shell这么用)
    $ 定义变量(Linux Shell这么用,它出现的比Perl更早,也许Perl是模仿它才用的$)
    % 取模(大多数编程语言都这样用)
    ^ 按位异或(C语言这样用。在数学中a^b表示a的b次方,在某些编程语言中也表示乘方)
    & 按位与(来自C)
    && 逻辑与(来自C)
    * 乘号
    ( ) 括号
    + 加号
    = 等号
    == 相等
    === 全等
    _ 下划线是合法变量/函数/常量名的一部分
    - 减号
    | 按位或(来自C)
    || 逻辑或(来自C)
    \ 转义字符(来自C)
    { } 代码块(来自C)
    [ ] 数组(来自C)
    : 冒号,用在三元表达式中(a ? b : c),来自C
    :: 调用类的静态属性/方法(来自C++)
    ; 语句结束(普遍这样用)
    "  ' 定义字符串,普遍这样用
    <  > 大于;小于
    <>不等于(望文生意)
    , 分隔参数(普遍这样用)
    . 连接字符串(来自Perl)
    ? 用于三元表达式,来自C
    / 除号
    总结发现,只有@$有可能成为变量定义关键字(取模%是不能放弃的,太常用了;用.或`来定义变量太不美观了,.a='b'; `c='d'; ?!#倒是可以用,#a=5; 但是Linux中到处都在用#做注释,其他符号太常用了,改变它们的意思不合适)。最终开发者选择了$,因为Linux Shell和Perl,甚至POSIX正则表达式中都使用$定义变量(替换时使用的$1、$2……)
  • @Ta / 2012-08-13 / /
    美元嘛
  • @Ta / 2012-08-13 / /
    @老虎会游泳 !是非 ~才是位运算取反
  • @Ta / 2012-08-13 / /
    @老虎会游泳 很奇怪为什么没有c中的goto语句
  • @Ta / 2012-08-13 / /
    @五角圆星,goto直到php5.4才被支持
    !是逻辑非。我之前一直想怎么表达,没想到逻辑非。但是“非”本身就是取反的意思。
  • @Ta / 2012-08-13 / /
    @老虎会游泳 php中c语言的一些其他的规则书上没说 不过应该支持 比如$a="abcdefghijklmn";echo $a[5];
  • @Ta / 2012-08-13 / /
    @老虎会游泳 我的问题是 有没有其他的一些被忽略却很实用的规则?
  • @Ta / 2012-08-13 / /
    @五角圆星http://cn.php.net/manual/zh/language.types.string.php,大部分技巧都是字符串处理中出现的。
    建议把PHP手册的
    简介
    布尔类型
    整型
    浮点型
    字符串
    数组
    对象
    资源类型
    NULL
    Callbacks
    都看一看。
  • @Ta / 2012-08-15 / /
    int main();
    {
    cls(22,44,990);
    }
添加新回复
回复需要登录