1、在linux下使用php的方式:
vi test
編輯test的內容
<?php
echo "hello world";
?>
保存后運行 php test
即得到hello world字符串。這種形式使用只合適學習php的語法,php在網絡方面的功能就發揮不出來了。
2、php和javascript一樣是弱類型語言。其賦值形式為
$money = 1000.89;
php支持Integer,String,Float,Boolean,Array和Object.
3、php獲取表單數據的方式:
$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不會發生改變。
如果使用引用操作符&
$b = &$a; $a = 7;
那么$b也就同時等于7。因為$a和$b都指向了相同的內存地址。
8、錯誤抑制操作符
錯誤抑制操作符@可以在任何表達式前面使用,即任何有值的或者可以計算出值的表達式之前
如:$a = @(57/0);
如果沒有@操作符,這一行代碼將產生一個除0警告,使用這個操作符,這個警告就會被抑制住。
9、執行操作符
執行操作符是一對操作符,它是一對反向單引號(``)。php將試著將反向單引號之間的命令當做
服務器端的命令來執行。表達式的值就是命令的執行結果。如:
$out = `ls -al`;
echo $out;
10、結束一個循環或者程序
支持break、continue和exit,exit會跳出整個腳本程序。
11、php對文件的操作和c語言中的文件操作是一樣的。
12、php中對數組是可以隨意增長的,這點和javascript一樣。
arry[i] = value的方式就可以將數組的size加1
初始化方式1: $products = array("Tires","Oil","Spark");
2:products[0]="Tires",products[1]="Oil",products[2]="Spark";
13、數組的循環
可以使用for循環,也可以使用foreach
foreach($products as $current)
echo $current.' ';
foreach是專門為數組而設計的。
14、相關數組(相當于hashmap)
$prices = array('Tiers'=>100, 'Oil'=>10, 'Spark'=>4);以產品作為關鍵字,以價格作為
值的相關數組。
讀取方法:
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、數組排序
sort、asort和ksort。asort是按照相關數組的value進行排序,而ksort是按照key進行排序。
以上是按照升序進行排序的,如果需要按照降序進行排序那么為rsort,arsort和krsort。也可以
自定義排序,如多維數組,使用usort($products,compair),compair是一個函數,需要用戶自定義。
16、file函數返回一個數組,文件中的每一行是數組的一個元素
$orders = file("orders.txt");
17、explode函數用于處理字符串的分隔符
$line = explode("\t", $orders[i]);返回的line就是一個數組,這個功能類似于Java的
StringTokenizer類的功能。
18、統計數組元素個數:count、sizeof和array_count_values,其中最后一個是返回一個相關函數
key為數組元素,value為這個數組元素出現的次數。
19、require和include函數,用于加載文件,如果此文件是.php文件則執行,如果不是則當成
普通文件加載進來。如果里面包含<?php command ?>也會執行。
這兩個函數的區別只是如果加載失敗require會報錯,而include只是會警告
20、php的錯誤提示:通常,php給出的錯誤信息是非常有用的。它可以告訴你錯誤出現在哪個文件
中,錯誤在文件的哪一行等。
21、如果希望值發生改變,就采用引用傳遞參數
function increment(&$value, $amount =1)
{
$value = $value + $amount;
}
使用:
$a = 10;
echo $a.'<br />';
increment($a);
echo $a.'<br />';
當然如果不采用引用傳遞還希望$a發生改變可以將其變成全局變量。
22、php5引入了全新的、功能更為強大的面向對象實現,它使得類和對象更用用。
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關鍵字用于類和函數,同Java一樣,防止繼承和重載的。php同樣是只能繼承一個父類,但是
可以實現多個接口。繼承的關鍵詞是extends,實現的關鍵字是implements.
27、php4之前的對象是按照值傳遞的,而php5是按照引用傳遞的,這點和Java一樣了。
28、使用Per-class常量
class Math {
const pi = 3.14159;
}
使用: echo Math::pi;
29、靜態方法:使用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實現方法的重載(注意重載是指方法名相同而參數不同,overload,而override
是子類覆蓋父類的方法)。因為php使用靈活的類型和(容易實現的)可選的函數參數
如:
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()方法必須帶有兩個參數,一個包含被調用的方法名稱,第二個參數包含傳遞給
該方法的參數數組。使用:
$ov = new overload;
$ov->display(array(1,2,3)); //調用displayArray函數
$ov->display('cat'); //調用displayScalar函數
34、php5有_toString(),同Java,如果實現則可以自定義打印類實例對象。php5提供了Reflection
API。異常處理是php5中的一個重要特性。
vi test
編輯test的內容
<?php
echo "hello world";
?>
保存后運行 php test
即得到hello world字符串。這種形式使用只合適學習php的語法,php在網絡方面的功能就發揮不出來了。
2、php和javascript一樣是弱類型語言。其賦值形式為
$money = 1000.89;
php支持Integer,String,Float,Boolean,Array和Object.
3、php獲取表單數據的方式:
$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不會發生改變。
如果使用引用操作符&
$b = &$a; $a = 7;
那么$b也就同時等于7。因為$a和$b都指向了相同的內存地址。
8、錯誤抑制操作符
錯誤抑制操作符@可以在任何表達式前面使用,即任何有值的或者可以計算出值的表達式之前
如:$a = @(57/0);
如果沒有@操作符,這一行代碼將產生一個除0警告,使用這個操作符,這個警告就會被抑制住。
9、執行操作符
執行操作符是一對操作符,它是一對反向單引號(``)。php將試著將反向單引號之間的命令當做
服務器端的命令來執行。表達式的值就是命令的執行結果。如:
$out = `ls -al`;
echo $out;
10、結束一個循環或者程序
支持break、continue和exit,exit會跳出整個腳本程序。
11、php對文件的操作和c語言中的文件操作是一樣的。
12、php中對數組是可以隨意增長的,這點和javascript一樣。
arry[i] = value的方式就可以將數組的size加1
初始化方式1: $products = array("Tires","Oil","Spark");
2:products[0]="Tires",products[1]="Oil",products[2]="Spark";
13、數組的循環
可以使用for循環,也可以使用foreach
foreach($products as $current)
echo $current.' ';
foreach是專門為數組而設計的。
14、相關數組(相當于hashmap)
$prices = array('Tiers'=>100, 'Oil'=>10, 'Spark'=>4);以產品作為關鍵字,以價格作為
值的相關數組。
讀取方法:
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、數組排序
sort、asort和ksort。asort是按照相關數組的value進行排序,而ksort是按照key進行排序。
以上是按照升序進行排序的,如果需要按照降序進行排序那么為rsort,arsort和krsort。也可以
自定義排序,如多維數組,使用usort($products,compair),compair是一個函數,需要用戶自定義。
16、file函數返回一個數組,文件中的每一行是數組的一個元素
$orders = file("orders.txt");
17、explode函數用于處理字符串的分隔符
$line = explode("\t", $orders[i]);返回的line就是一個數組,這個功能類似于Java的
StringTokenizer類的功能。
18、統計數組元素個數:count、sizeof和array_count_values,其中最后一個是返回一個相關函數
key為數組元素,value為這個數組元素出現的次數。
19、require和include函數,用于加載文件,如果此文件是.php文件則執行,如果不是則當成
普通文件加載進來。如果里面包含<?php command ?>也會執行。
這兩個函數的區別只是如果加載失敗require會報錯,而include只是會警告
20、php的錯誤提示:通常,php給出的錯誤信息是非常有用的。它可以告訴你錯誤出現在哪個文件
中,錯誤在文件的哪一行等。
21、如果希望值發生改變,就采用引用傳遞參數
function increment(&$value, $amount =1)
{
$value = $value + $amount;
}
使用:
$a = 10;
echo $a.'<br />';
increment($a);
echo $a.'<br />';
當然如果不采用引用傳遞還希望$a發生改變可以將其變成全局變量。
22、php5引入了全新的、功能更為強大的面向對象實現,它使得類和對象更用用。
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關鍵字用于類和函數,同Java一樣,防止繼承和重載的。php同樣是只能繼承一個父類,但是
可以實現多個接口。繼承的關鍵詞是extends,實現的關鍵字是implements.
27、php4之前的對象是按照值傳遞的,而php5是按照引用傳遞的,這點和Java一樣了。
28、使用Per-class常量
class Math {
const pi = 3.14159;
}
使用: echo Math::pi;
29、靜態方法:使用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實現方法的重載(注意重載是指方法名相同而參數不同,overload,而override
是子類覆蓋父類的方法)。因為php使用靈活的類型和(容易實現的)可選的函數參數
如:
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()方法必須帶有兩個參數,一個包含被調用的方法名稱,第二個參數包含傳遞給
該方法的參數數組。使用:
$ov = new overload;
$ov->display(array(1,2,3)); //調用displayArray函數
$ov->display('cat'); //調用displayScalar函數
34、php5有_toString(),同Java,如果實現則可以自定義打印類實例對象。php5提供了Reflection
API。異常處理是php5中的一個重要特性。