PHP语法特点

jopen 9年前


感觉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