5. 美元符作为变量名是由Perl开始的。PHP很多语法都模仿Perl。所以你可能需要找找为什么Perl的开发者选择了$而不是其他的字符。
¥不属于ASCII字符,非中文用户无法输入它(中文用户也无法输入它,在电脑键盘上我们只能输入全角的¥,而¥是半角的),且只能保存在UTF-8编码中,所以不能作为变量定义关键字(你想放弃GBK编码?!GBK中没有半角¥,不信自己用mb_convert_encoding转码再输出试试,¥会变成问号。)
顺便介绍一下PHP的创始人:
拉斯姆斯· 勒多夫 ( 英语 : Rasmus Lerdorf ,1968年11月22日-)出生于 格陵兰岛 凯凯塔苏瓦克 ,是一个 丹麦 程序员 ,他拥有 加拿大 国籍。他也是编程语言 PHP 的创始人,其中PHP的头两个版本是由他编写的,后来他也参与PHP后续版本的开发。
6. 要想作为变量定义关键字,首先必须方便输入,也就是必须在键盘上能找到。
键盘上所有的符号和它们在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……)
10.
@五角圆星,goto直到php5.4才被支持
!是逻辑非。我之前一直想怎么表达,没想到逻辑非。但是“非”本身就是取反的意思。
11.
@老虎会游泳 php中c语言的一些其他的规则书上没说 不过应该支持 比如$a="abcdefghijklmn";echo $a[5];
12.
@老虎会游泳 我的问题是 有没有其他的一些被忽略却很实用的规则?