PHP中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。
变量名与PHP中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*‘。
 $this是一个特殊的变量,它不能被赋值。
 
基础
 以$开头,跟着字母或者下划线,后面可以是数字,甚至是中文。不过要按照命名规范,使用驼峰命名.
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        
          6
          
        
          7
          
        
          8
          
        
          9
          
        
          10
          
        
          11
          
        
          12
          
        |  
       
         
         <?php 
          
         
         $var
          
         =
          
         'Bob'
         ; 
          
         
         $Var
          
         =
          
         'Joe'
         ;
          
         // 区分大小写 
          
         
         echo
          
         "$var, $Var"
         ;
               
         // 输出 "Bob, Joe" 
          
         
         $
         4site
          
         =
          
         'not yet'
         ;
              
         // 非法变量名;以数字开头 
          
         
         $_4site
          
         =
          
         'not yet'
         ;
             
         // 合法变量名;以下划线开头 
          
         
         $i站点
         is
          
         =
          
         'mansikka'
         ;
           
         // 合法变量名;可以用中文 
          
         
         ?> 
          
         |  
     
使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前(源变量)。例如,下列代码片断将输出“My name is Bob”两次:
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        
          6
          
        
          7
          
        
          8
          
        
          9
          
        
          10
          
        
          11
          
        |  
       
         
         <?php 
          
         
         $foo
          
         =
          
         'Bob'
         ;
                       
         // 将 'Bob' 赋给 $foo 
          
         
         $bar
          
         =
          
         &
         $foo
         ;
                       
         // 通过 $bar 引用 $foo 
          
         
         $bar
          
         =
          
         "My name is $bar"
         ;
           
         // 修改 $bar 变量 
          
         
         echo
          
         $bar
         ; 
          
         
         echo
          
         $foo
         ;
                          
         // $foo 的值也被修改 
          
         
         $vbar
          
         =
          
         &
         (
         24
          
         *
          
         7
         )
         ;
           
         // 非法; 引用没有名字的表达式 
          
         
         ?> 
          
         |  
     
默认值:
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        
          6
          
        
          7
          
        
          8
          
        
          9
          
        
          10
          
        
          11
          
        
          12
          
        
          13
          
        
          14
          
        
          15
          
        
          16
          
        
          17
          
        
          18
          
        
          19
          
        
          20
          
        
          21
          
        
          22
          
        
          23
          
        
          24
          
        
          25
          
        
          26
          
        
          27
          
        
          28
          
        |  
       
         
         // 未赋值和无上下文声明的变量,默认值为NULL 
          
         
         var_dump
         (
         $
         unset_var
         )
         ; 
          
         
         // 可根据上下文 
          
         
         echo
         (
         $
         unset
         _
         bool
          
         ?
          
         "true\n"
          
         :
          
         "false\n"
         )
         ; 
          
         
         // String usage; outputs 'string(3) "abc"' 
          
         
         $
         unset
         _
         str
          
         .
         =
          
         'abc'
         ; 
          
         
         var_dump
         (
         $
         unset_str
         )
         ; 
          
         
         // Integer usage; outputs 'int(25)' 
          
         
         $
         unset_int
          
         +=
          
         25
         ;
          
         // 0 + 25 => 25 
          
         
         var_dump
         (
         $
         unset_int
         )
         ; 
          
         
         // Float/double usage; outputs 'float(1.25)' 
          
         
         $
         unset_float
          
         +=
          
         1.25
         ; 
          
         
         var_dump
         (
         $
         unset_float
         )
         ; 
          
         
         // Array usage; outputs array(1) {  [3]=>  string(3) "def" } 
          
         
         $
         unset_arr
         [
         3
         ]
          
         =
          
         "def"
         ;
          
         // array() + array(3 => "def") => array(3 => "def") 
          
         
         var_dump
         (
         $
         unset_arr
         )
         ; 
          
         
         // Object usage; creates new stdClass object (see http://www.php.net/manual/en/reserved.classes.php) 
          
         
         // Outputs: object(stdClass)#1 (1) {  ["foo"]=>  string(3) "bar" } 
          
         
         $
         unset_obj
         ->
         foo
          
         =
          
         'bar'
         ; 
          
         
         var_dump
         (
         $
         unset_obj
         )
         ; 
          
         |  
     
判断是否有值:
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        
          6
          
        
          7
          
        
          8
          
        
          9
          
        |  
       
         
         <?php 
          
         
         print
          
         isset
         (
         $a
         )
         ;
          
         // $a is not set. Prints false. (Or more accurately prints ''.) 
          
         
         $b
          
         =
          
         0
         ;
          
         // isset($b) returns true (or more accurately '1') 
          
         
         $c
          
         =
          
         array
         (
         )
         ;
          
         // isset($c) returns true 
          
         
         $b
          
         =
          
         null
         ;
          
         // Now isset($b) returns false; 
          
         
         unset
         (
         $c
         )
         ;
          
         // Now isset($c) returns false; 
          
         
         ?> 
          
         |  
     
预定义变量
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        
          6
          
        
          7
          
        
          8
          
        
          9
          
        |  
       
         
         $
         _GET
               
         // 所有GET请求参数 
          
         
         $
         _POST
              
         // 所有POST请求参数 
          
         
         $
         _ENV
               
         // 环境变量 
          
         
         $
         _SERVER
            
          
         
         $
         _COOKIE
            
         // cookie 
          
         
         $
         _REQUEST
           
         // 所有请求参数 
          
         
         $
         _SESSION
           
         // session值 
          
         |  
     
PHP标记
PHP脚本以<?php 开头,以 ?> 结尾:
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        |  
       
         
         <?php
           
          
         
            
         echo
          
         "Hello world!"
         ; 
          
         
         ?> 
          
         |  
     
当解析一个文件时,PHP会寻找起始和结束标记,也就是 <?php 和 ?>,这告诉PHP开始和停止解析二者之间的代码。此种解析方式使得PHP可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被PHP解析器忽略。
PHP也允许使用短标记 <? 和 ?>,但不鼓励使用。只有通过激活php.ini中的 shortopentag配置指令或者在编译PHP时使用了配置选项 –enable-short-tags 时才能使用短标记。
如果文件内容是纯PHP代码,最好在文件末尾删除PHP结束标记。这可以避免在 PHP结束标记之后万一意外加入了空格或者换行符,会导致PHP开始输出这些空白,而脚本中此时并无输出的意图。
例如,下面的是在一个文件中的,这个文件只有PHP代码,此时建义不要加上?>结束标识:
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        
          6
          
        
          7
          
        |  
       
         
         <
         ?
         php
           
         // Html safe containers  
          
         
         echo
          
         "Hello world<br>"
         ; 
          
         
         echo
          
         "test<br>"
         ; 
          
         
         echo
          
         "www.henishuo.com"
         ;
           
          
         |  
     
从HTML中分离
凡是在一对开始和结束标记之外的内容都会被PHP解析器忽略,这使得PHP文件可以具备混合内容。可以使PHP嵌入到HTML文档中去,如下例所示:
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        
          6
          
        
          7
          
        |  
       
         
         <p>
         This
          
         is 
         going 
         to 
         be 
         ignored 
         by 
         PHP
          
         and 
         displayed 
         by 
         the 
         browser
         .
         <
         /
         p
         > 
          
         
         <?php
          
         echo
          
         'While this is going to be parsed.'
         ;
          
         ?> 
          
         
         <p>
         This
          
         will 
         also 
         be 
         ignored 
         by 
         PHP
          
         and 
         displayed 
         by 
         the 
         browser
         .
         <
         /
         p
         > 
          
         |  
     
条件分离:
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        
          6
          
        
          7
          
        
          8
          
        
          9
          
        
          10
          
        
          11
          
        
          12
          
        
          13
          
        |  
       
         
         <?php
          
         $expression
          
         =
          
         true
          
         ?> 
          
         
         <?php
          
         if
          
         (
         $expression
          
         ==
          
         true
         )
          
         { 
          
         
             
         echo
          
         "expression is true"
         ; 
          
         
         }
          
         ?> 
          
         
         <?php
          
         if
          
         (
         $expression
          
         ==
          
         true
         )
         :
          
         ?> 
          
         
           
         This
          
         will 
         show 
         if
          
         the 
         expression 
         is 
         true
         . 
          
         
         <?php
          
         else
         :
          
         ?> 
          
         
           
         Otherwise
          
         this 
         will 
         show
         . 
          
         
         <?php
          
         endif
         ;
          
         ?> 
          
         |  
     
指令分隔符
同C语言一样,PHP需要在每个语句后用分号结束指令。一段PHP代码中的结束标记隐含表示了一个分号;在一个PHP代码段中的最后一行可以不用分号结束。如果后面还有新行,则代码段的结束标记包含了行结束。
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        
          6
          
        
          7
          
        
          8
          
        
          9
          
        |  
       
         
         <?php 
          
         
             
         echo
          
         "This is a test"
         ; 
          
         
         ?> 
          
         
         <?php
          
         echo
          
         "This is a test"
          
         ?> 
          
         
         <?php
          
         echo
          
         'We omitted the last closing tag'
         ;
         ?> 
          
         |  
     
注释
PHP支持C、C++、Unix Shell风格(Perl 风格)的注释。例如:
|  
        
          1
          
        
          2
          
        
          3
          
        
          4
          
        
          5
          
        
          6
          
        
          7
          
        
          8
          
        
          9
          
        
          10
          
        
          11
          
        
          12
          
        |  
       
         
         <?php 
          
         
             
         echo
          
         "This is a test"
         ;
          
         // This is a one-line c++ style comment 
          
         
             
         /* This is a multi line comment 
          
         
                yet another line of comment  
          
         
              */
             
          
         
             
         echo
          
         "This is yet another test"
         ; 
          
         
             
         echo
          
         'One Final Test'
         ;
          
         # This is a one-line shell-style comment 
          
         
         ?> 
          
         |  
     
 可以使用//或者#注释单行,可以使用/**/注释段。