PHP语法特点
感觉PHP在语法上与C++特别相似。只要会C++,PHP基本上不用记什么。
语法上有这些特点:
1. 数据类型
null, bool, string, float, integer, array, object
object 是 new 出来的对象
转换类型与 C 一样。
2. PHP里所有的变量名都是以 $ 开头
在Shell里,只有获取变量的时候才需要加$符号,在PHP里,所获取还是设置都要加 $ 符号
$str = "hello"; echo $str;
3. PHP里变量名区分大小写,函数名不分
$str = "String\n"; $STR = "This is STR\n"; echo $str; ECho $str; echo $STR;
结果输出:
String
String
This is STR
4. PHP里的注释除了C++有的 // /**/ 外,还有脚本常用的 #
// 注释 /* * 注释 */ # 注释
5. 定义变量时无需指明类型
这点与 python, lua一样,这也是大多数据脚本的共性。
6. 数据组是 array
用作数组时:
$arr = array("C++", "C", "Java", "PHP");
用作映射表时:
$map = array("John"=>"M", "Lily"=>"F");
如果不指定键值,那么它就是数字 0,1,2,3...为键。如果指定了键值,那就以指定的键值为键。
其功能非常类似于Lua的表。Lua的如下:
w = {x=0, y=0, label="console"}
不过 Lua 的有点怪异,非得从1开始计数。
7. 逻辑语句与C++一样
if .. else if .. else, for, while, continue, break等与C++一样。只不过,PHP还支持用 : ... endXXX 来代替 { ... }
if ($num == 0) { echo "num = " . $num; } # 也可以写成如下 if ($num == 0) : echo "num = " . $num; endif
有 ++$i 与 $i++,与C++一样。
8. 字符串用 . 进行连接
这一点跟 Lua 类似,Lua 是用 .. 进行字符串拼接的。
9. 字符串用单引号或双引号界定
$name = 'Peter'; echo 'My name is $name\n'; echo "My name is $name\n"; echo "===="
My name is $name\nMy name is Peter
====
在单引号里 $name 与 \n 都没有被重新计算。而双引号则会被替代。这点跟shell一样。
10. 有 === (恒等)与 !== (不恒等)比较。恒等的意思是不仅值相等,类型还一样
11. 函数的定义
function PrintName($name = "Unknow") { if (is_string($name)) { echo "My name is $name\n"; return TRUE; } return FALSE; } PrintName("Hevake");
与 Lua 类似,也可以带默认值
12. 常量
define("NAME", "hevake_lcj"); # 定义常量 echo constant("name"); # 取常量 if (defined("name")) { # 检查是否定义了常量 name echo "定义了 name"; }
13. 可变变量
<?php $text="My Name"; $a = "text"; echo $$a; echo '<br>'; $b = 'a'; echo $$$b; ?>
$text, $$a, $$$b的结果都是“My Name”。
函数也可以这样引用:
<?php function come() { echo "I am coming. <br/>"; } function back() { echo "I am back. <br/>"; } $func = "come"; $func(); $func = "back"; $func(); ?>
14. 预定义环境变量
$_SERVER, $_COOKIE, $_SESSION, $_POST, $_GET, $GLOBALS
15. 函数可以以引用传参
<?php function example(&$m) { $m = $m * 5 + 10; } $m = 1; example($m); echo "<p>在函数外:\$m = $m</p>"; ?>
16. foreach循环
<?php $map = array('john'=>18, 'licy'=>22); foreach ($map as $key=>$value) { echo "$key=>$value, "; } echo '<br/>'; ?>http://my.oschina.net/hevakelcj/blog/326907