1、在linux下使用php的方式:
   vi test
   編輯test的內容
   <?php
       echo "hello world";
   ?>
   保存后運行 php test
   即得到hello world字符串。這種形式使用只合適學習php的語法,php在網絡方面的功能就發(fā)揮不出來了。

2、php和javascript一樣是弱類型語言。其賦值形式為
   $money = 1000.89;
   php支持Integer,String,Float,Boolean,Array和Object.
3、php獲取表單數(shù)據(jù)的方式:
   $tireqty
   $_POST['tireqty']
   $HTTP_POST_VARS['tireqty']
4、可變變量。工作原理就是用一個變量的值作為另一個變量的名稱,如:
   $varname = 'tireqty';
   $$varname = 5; (此時相當于給tireqty變量賦值5)
5、聲明常量:
   define('TIREQTY', 10);建議使用大寫字母
6、變量的作用域:
  
7、引用
   賦值操作時,先產生一個原變量的一個副本,然后再將它保存在內存的其他地方
   $a = 5;$b = $a;$a = 7;
   經過這樣操作后,$b的值依然為7不會發(fā)生改變。
   如果使用引用操作符&
   $b = &$a; $a = 7;
   那么$b也就同時等于7。因為$a和$b都指向了相同的內存地址。
8、錯誤抑制操作符
   錯誤抑制操作符@可以在任何表達式前面使用,即任何有值的或者可以計算出值的表達式之前
   如:$a = @(57/0);
   如果沒有@操作符,這一行代碼將產生一個除0警告,使用這個操作符,這個警告就會被抑制住。

9、執(zhí)行操作符
   執(zhí)行操作符是一對操作符,它是一對反向單引號(``)。php將試著將反向單引號之間的命令當做
   服務器端的命令來執(zhí)行。表達式的值就是命令的執(zhí)行結果。如:
   $out = `ls -al`;
   echo $out;

10、結束一個循環(huán)或者程序
    支持break、continue和exit,exit會跳出整個腳本程序。
11、php對文件的操作和c語言中的文件操作是一樣的。
12、php中對數(shù)組是可以隨意增長的,這點和javascript一樣。
    arry[i] = value的方式就可以將數(shù)組的size加1
   初始化方式1: $products = array("Tires","Oil","Spark");
             2:products[0]="Tires",products[1]="Oil",products[2]="Spark";
13、數(shù)組的循環(huán)
   可以使用for循環(huán),也可以使用foreach
   foreach($products as $current)
     echo $current.' ';
   foreach是專門為數(shù)組而設計的。
14、相關數(shù)組(相當于hashmap)
   $prices = array('Tiers'=>100, 'Oil'=>10, 'Spark'=>4);以產品作為關鍵字,以價格作為
   值的相關數(shù)組。
   讀取方法:
   foreach($prices as $key=>$value)
     echo $key.'=>'.$value;
  
   while($element = each($prices))
   {
     echo $element['key'];
     echo '=>';
     echo $element['value'];
    }

   while(list($product,$price) = each($prices))
     echo "$product=>$price";
15、數(shù)組排序
   sort、asort和ksort。asort是按照相關數(shù)組的value進行排序,而ksort是按照key進行排序。
   以上是按照升序進行排序的,如果需要按照降序進行排序那么為rsort,arsort和krsort。也可以
   自定義排序,如多維數(shù)組,使用usort($products,compair),compair是一個函數(shù),需要用戶自定義。
  
16、file函數(shù)返回一個數(shù)組,文件中的每一行是數(shù)組的一個元素
    $orders = file("orders.txt");
17、explode函數(shù)用于處理字符串的分隔符
   $line = explode("\t", $orders[i]);返回的line就是一個數(shù)組,這個功能類似于Java的
   StringTokenizer類的功能
18、統(tǒng)計數(shù)組元素個數(shù):count、sizeof和array_count_values,其中最后一個是返回一個相關函數(shù)
   key為數(shù)組元素,value為這個數(shù)組元素出現(xiàn)的次數(shù)。
19、require和include函數(shù),用于加載文件,如果此文件是.php文件則執(zhí)行,如果不是則當成
   普通文件加載進來。如果里面包含<?php command ?>也會執(zhí)行。
   這兩個函數(shù)的區(qū)別只是如果加載失敗require會報錯,而include只是會警告
20、php的錯誤提示:通常,php給出的錯誤信息是非常有用的。它可以告訴你錯誤出現(xiàn)在哪個文件
   中,錯誤在文件的哪一行等。
21、如果希望值發(fā)生改變,就采用引用傳遞參數(shù)
   function increment(&$value, $amount =1)
   {
      $value = $value + $amount;
   }

   使用:
   $a = 10;
   echo $a.'<br />';
   increment($a);
   echo $a.'<br />';
   當然如果不采用引用傳遞還希望$a發(fā)生改變可以將其變成全局變量。
22、php5引入了全新的、功能更為強大的面向對象實現(xiàn),它使得類和對象更用用。
23、class的定義
    class classname
    {
         //方法和屬性的引用采用“->”方式
         $attribute;
         function _construct($param)
         {
            $this->attribute = $param; //注意和java不同,這里this前面是有一個$符的
            echo "Hello";
          }
          function _destruct()  //可選
          {
           }
      }

24、控制訪問符:public是默認屬性,這里與Java不一樣。
25、parent關鍵字允許調用父類操作的方法,如要從類B中調用父類A的操作A::operation,可以
   使用parent::operation()。但是如果operation中的操作屬性被重載了,還是會使用B中的屬性值
26、final關鍵字用于類和函數(shù),同Java一樣,防止繼承和重載的。php同樣是只能繼承一個父類,但是
   可以實現(xiàn)多個接口。繼承的關鍵詞是extends,實現(xiàn)的關鍵字是implements.
27、php4之前的對象是按照值傳遞的,而php5是按照引用傳遞的,這點和Java一樣了。
28、使用Per-class常量
   class Math {
    const pi = 3.14159;
   }
   使用: echo Math::pi;
29、靜態(tài)方法:使用static關鍵字,同Java。調用時用Math::operation();
30、php5提供instanceof關鍵字
    ($b instanceof B) 返回true
    ($b instanceof A) 返回true
31、php5引入clone關鍵字,允許復制一個已有的對象
   $c = clone $b; 同Java的clone意義,但是用法不同。
   clone后c具有同b一樣的屬性,如果要改變默認的clone方式,需要在類中寫一個_clone方法

32、php5提供abstract關鍵字,意義同java。
33、php5習慣利用_call實現(xiàn)方法的重載(注意重載是指方法名相同而參數(shù)不同,overload,而override
    是子類覆蓋父類的方法)。因為php使用靈活的類型和(容易實現(xiàn)的)可選的函數(shù)參數(shù)
    如:
    public function _call($method,$p)
    {
       if($method == 'display')
         if(is_object($p[0]))
            $this->displayobject($p[0]);
         elseif(is_array($p[0]))
            $this->displayArray($p[0]);
         else
            $this->displayScalar($p[0]);
     }
     _call()方法必須帶有兩個參數(shù),一個包含被調用的方法名稱,第二個參數(shù)包含傳遞給
     該方法的參數(shù)數(shù)組。使用:
     $ov = new overload;
     $ov->display(array(1,2,3)); //調用displayArray函數(shù)
     $ov->display('cat');   //調用displayScalar函數(shù)
34、php5有_toString(),同Java,如果實現(xiàn)則可以自定義打印類實例對象。php5提供了Reflection
   API。異常處理是php5中的一個重要特性。