PHP學(xué)習(xí)筆記之一
更新時(shí)間:2011年01月17日 23:22:27 作者:
本系列適合有其他編程語言經(jīng)驗(yàn)而PHP經(jīng)驗(yàn)為0的人快速參考入門。
配置PHP以及MySQL的過程略去,如果在Ubuntu下,參考 Ubuntu 10.04 Installation Memo 即可。
1. 基本語法
要在HTML代碼中嵌入PHP腳本的方法是在<?php ?>中書寫代碼。向?yàn)g覽器輸出數(shù)據(jù)采用echo或者print函數(shù)。echo可以接受多個(gè)參數(shù),print 只能接受一個(gè)。echo的形式是
void echo(string arg1,[,…string argn]);
PHP語法允許省略括號(hào)。 例如,
<?php
$my =' my ';
echo 'Hello',$my,'world'
?>
將會(huì)在瀏覽器上輸出 Hello my world
PHP 還支持一個(gè)和C語言很像的printf函數(shù),例如 printf(‘ %d apples',100),將會(huì)輸出 100 apples。sprintf的用法和printf一致,不過它不是輸出到瀏覽器,而是返回一個(gè)字符串。
2.數(shù)據(jù)類型和變量
PHP是弱類型的,一個(gè)變量不需要預(yù)先聲明,也不需要指定類型。PHP中變量是$加上變量名,PHP的變量是區(qū)分大小寫的。 例如上例中的 $my='my'。
PHP支持的變量類型包括:布爾型,整型,浮點(diǎn)型,字符串,數(shù)組和對(duì)象。前四種很常用,也和其他語言類似,不多做介紹。數(shù)組和對(duì)象后文具體介紹。
PHP中有函數(shù)來檢測(cè) 對(duì)象的類型,它們是 getttype。gettype返回一個(gè)string,它的值可以是array,boolean,double,integer,object,resource,string 和 unknow type. PHP也支持顯式的類型轉(zhuǎn)換,語法和C類似。
例如:
<?php
$str ='a string';
$num=15;
$numstr='123.3';
echo gettype($str),'<br/>';
echo gettype($num),'<br/>';
echo gettype($numstr),'<br/>';
$numstr=(float)$numstr;
echo gettype($numstr);
?>
輸出結(jié)果為:
string
integer
string
double
還有函數(shù)可以用來判斷一個(gè)變量是不是某種類型,例如 is_array(),is_bool()等等,用法都類似。
3. 函數(shù)和變量作用域
PHP聲明函數(shù)的方法很簡(jiǎn)單,形式如下:
function functionName(parameters){
function body
}
不需要指定返回類型,括號(hào)中也不需要指定變量類型,只要有變量名就可以。例如:
<?php
function taxedPrice($price,$taxrate){
return $price*(1+$taxrate);
}
echo taxedPrice(100, 0.03);
?>
默認(rèn)情況下,PHP是按值傳遞參數(shù)的,在函數(shù)內(nèi)改變參數(shù)的值并不會(huì)改變函數(shù)外變量的值,但是PHP也支持按引用傳遞,語法和C一致,&$paramName,例如,下面一個(gè)經(jīng)典的例子:
<?php
function swap1($x,$y){
$t=$x;$x=$y;$y=$t;
}
function swap2(&$x,&$y){
$t=$x;$x=$y;$y=$t;
}
$a=3;$b=5;
swap1($a,$b);
printf("a is %d, b is %d <br/>",$a,$b);
swap2($a,$b);
printf("a is %d, b is %d <br/>",$a,$b);
?>
輸出結(jié)果:
a is 3, b is 5
a is 5, b is 3
PHP的函數(shù)還支持參數(shù)的默認(rèn)值,語法和C也是一樣的。例如:
<?php
function taxedPrice($price,$taxrate=0.03){
return $price*(1+$taxrate);
}
echo taxedPrice(100);
?>
下面介紹變量的作用域。PHP的變量作用域和C很類似,有局部變量,函數(shù)參數(shù),全局變量,靜態(tài)變量4種。局部變量就是在函數(shù)內(nèi)聲明的變量,函數(shù)參數(shù)是在函數(shù)首部聲明的變量;不在函數(shù)中聲明的變量是全局變量,全局變量可以在任何地方訪問到,但是和C不同的是,如果在函數(shù)中要修改全局變量的值需要用GLOBAL關(guān)鍵字顯式指定它是全局變量,否則PHP就會(huì)聲明一個(gè)同名的局部變量并且覆蓋它。例如:
<?php
$taxrate=0.03; //global
function change1() {
$taxrate+=1;
}
function change2() {
GLOBAL $taxrate;
$taxrate+=1;
}
change1();
echo $taxrate,'<br/>';
change2();
echo $taxrate,'<br/>';
?>
輸出的結(jié)果是:
0.03
1.03
PHP還有一種超級(jí)全局變量。超級(jí)全局變量是由PHP系統(tǒng)預(yù)定義的,主要用來訪問與環(huán)境有關(guān)的信息,例如當(dāng)前用戶會(huì)話,用戶操作環(huán)境和本地環(huán)境等。超級(jí)全局變量是一個(gè)數(shù)組,例如$_SERVER中存儲(chǔ)了服務(wù)器相關(guān)的信息。$_GET,$_POST,$_FILES,$_COOKIE中分別存儲(chǔ)了客戶端采用get提交,和post的提交的信息,上傳的文件,cookie信息等。這些變量的使用都很簡(jiǎn)單,需要什么信息只需要查找
4 變量的變量
和C一類的靜態(tài)語言不同,PHP的變量名本身可以是一個(gè)變量,這對(duì)于需要?jiǎng)討B(tài)生成很多變量的時(shí)候是很便利的。例如:
<?php
$r="hello";
$$r="I am hello";
echo $hello;
?>
輸出結(jié)果為: I am hello
5.流程控制語句
主要包括,if else, while,for,do while,switch. 這些和C語言都很像,基本是一致的。不多做介紹。有些不同,PHP的 elseif是一個(gè)關(guān)鍵字,是連在一起的,而C語言是else if。
1. 基本語法
要在HTML代碼中嵌入PHP腳本的方法是在<?php ?>中書寫代碼。向?yàn)g覽器輸出數(shù)據(jù)采用echo或者print函數(shù)。echo可以接受多個(gè)參數(shù),print 只能接受一個(gè)。echo的形式是
void echo(string arg1,[,…string argn]);
PHP語法允許省略括號(hào)。 例如,
復(fù)制代碼 代碼如下:
<?php
$my =' my ';
echo 'Hello',$my,'world'
?>
將會(huì)在瀏覽器上輸出 Hello my world
PHP 還支持一個(gè)和C語言很像的printf函數(shù),例如 printf(‘ %d apples',100),將會(huì)輸出 100 apples。sprintf的用法和printf一致,不過它不是輸出到瀏覽器,而是返回一個(gè)字符串。
2.數(shù)據(jù)類型和變量
PHP是弱類型的,一個(gè)變量不需要預(yù)先聲明,也不需要指定類型。PHP中變量是$加上變量名,PHP的變量是區(qū)分大小寫的。 例如上例中的 $my='my'。
PHP支持的變量類型包括:布爾型,整型,浮點(diǎn)型,字符串,數(shù)組和對(duì)象。前四種很常用,也和其他語言類似,不多做介紹。數(shù)組和對(duì)象后文具體介紹。
PHP中有函數(shù)來檢測(cè) 對(duì)象的類型,它們是 getttype。gettype返回一個(gè)string,它的值可以是array,boolean,double,integer,object,resource,string 和 unknow type. PHP也支持顯式的類型轉(zhuǎn)換,語法和C類似。
轉(zhuǎn)換操作符 | 轉(zhuǎn)換為 |
(array) | 數(shù)組 |
(bool) (boolean) | 布爾型 |
(int) (integer) | 整數(shù) |
(object) | 對(duì)象 |
(float),(double),(real) | 浮點(diǎn)數(shù) |
(string) | 字符串 |
復(fù)制代碼 代碼如下:
<?php
$str ='a string';
$num=15;
$numstr='123.3';
echo gettype($str),'<br/>';
echo gettype($num),'<br/>';
echo gettype($numstr),'<br/>';
$numstr=(float)$numstr;
echo gettype($numstr);
?>
輸出結(jié)果為:
string
integer
string
double
還有函數(shù)可以用來判斷一個(gè)變量是不是某種類型,例如 is_array(),is_bool()等等,用法都類似。
3. 函數(shù)和變量作用域
PHP聲明函數(shù)的方法很簡(jiǎn)單,形式如下:
復(fù)制代碼 代碼如下:
function functionName(parameters){
function body
}
不需要指定返回類型,括號(hào)中也不需要指定變量類型,只要有變量名就可以。例如:
復(fù)制代碼 代碼如下:
<?php
function taxedPrice($price,$taxrate){
return $price*(1+$taxrate);
}
echo taxedPrice(100, 0.03);
?>
默認(rèn)情況下,PHP是按值傳遞參數(shù)的,在函數(shù)內(nèi)改變參數(shù)的值并不會(huì)改變函數(shù)外變量的值,但是PHP也支持按引用傳遞,語法和C一致,&$paramName,例如,下面一個(gè)經(jīng)典的例子:
復(fù)制代碼 代碼如下:
<?php
function swap1($x,$y){
$t=$x;$x=$y;$y=$t;
}
function swap2(&$x,&$y){
$t=$x;$x=$y;$y=$t;
}
$a=3;$b=5;
swap1($a,$b);
printf("a is %d, b is %d <br/>",$a,$b);
swap2($a,$b);
printf("a is %d, b is %d <br/>",$a,$b);
?>
輸出結(jié)果:
a is 3, b is 5
a is 5, b is 3
PHP的函數(shù)還支持參數(shù)的默認(rèn)值,語法和C也是一樣的。例如:
復(fù)制代碼 代碼如下:
<?php
function taxedPrice($price,$taxrate=0.03){
return $price*(1+$taxrate);
}
echo taxedPrice(100);
?>
下面介紹變量的作用域。PHP的變量作用域和C很類似,有局部變量,函數(shù)參數(shù),全局變量,靜態(tài)變量4種。局部變量就是在函數(shù)內(nèi)聲明的變量,函數(shù)參數(shù)是在函數(shù)首部聲明的變量;不在函數(shù)中聲明的變量是全局變量,全局變量可以在任何地方訪問到,但是和C不同的是,如果在函數(shù)中要修改全局變量的值需要用GLOBAL關(guān)鍵字顯式指定它是全局變量,否則PHP就會(huì)聲明一個(gè)同名的局部變量并且覆蓋它。例如:
復(fù)制代碼 代碼如下:
<?php
$taxrate=0.03; //global
function change1() {
$taxrate+=1;
}
function change2() {
GLOBAL $taxrate;
$taxrate+=1;
}
change1();
echo $taxrate,'<br/>';
change2();
echo $taxrate,'<br/>';
?>
輸出的結(jié)果是:
0.03
1.03
PHP還有一種超級(jí)全局變量。超級(jí)全局變量是由PHP系統(tǒng)預(yù)定義的,主要用來訪問與環(huán)境有關(guān)的信息,例如當(dāng)前用戶會(huì)話,用戶操作環(huán)境和本地環(huán)境等。超級(jí)全局變量是一個(gè)數(shù)組,例如$_SERVER中存儲(chǔ)了服務(wù)器相關(guān)的信息。$_GET,$_POST,$_FILES,$_COOKIE中分別存儲(chǔ)了客戶端采用get提交,和post的提交的信息,上傳的文件,cookie信息等。這些變量的使用都很簡(jiǎn)單,需要什么信息只需要查找
4 變量的變量
和C一類的靜態(tài)語言不同,PHP的變量名本身可以是一個(gè)變量,這對(duì)于需要?jiǎng)討B(tài)生成很多變量的時(shí)候是很便利的。例如:
復(fù)制代碼 代碼如下:
<?php
$r="hello";
$$r="I am hello";
echo $hello;
?>
輸出結(jié)果為: I am hello
5.流程控制語句
主要包括,if else, while,for,do while,switch. 這些和C語言都很像,基本是一致的。不多做介紹。有些不同,PHP的 elseif是一個(gè)關(guān)鍵字,是連在一起的,而C語言是else if。
相關(guān)文章
PHP __autoload函數(shù)(自動(dòng)載入類文件)的使用方法
在使用PHP的OO模式開發(fā)系統(tǒng)時(shí),通常大家習(xí)慣上將每個(gè)類的實(shí)現(xiàn)都存放在一個(gè)單獨(dú)的文件里,這樣會(huì)很容易實(shí)現(xiàn)對(duì)類進(jìn)行復(fù)用,同時(shí)將來維護(hù)時(shí)也很便利2012-02-02用php代碼限制國(guó)內(nèi)IP訪問我們網(wǎng)站
這篇文章主要介紹了用php代碼限制國(guó)內(nèi)IP訪問我們網(wǎng)站,需要的朋友可以參考下2015-09-09PHP+mysql+ajax輕量級(jí)聊天室實(shí)現(xiàn)方法詳解
這篇文章主要介紹了PHP+mysql+ajax輕量級(jí)聊天室實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了php+mysql實(shí)現(xiàn)實(shí)時(shí)聊天室功能的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-10-10解析VS2010利用VS.PHP插件調(diào)試PHP的方法
以下是對(duì)VS2010利用VS.PHP插件調(diào)試PHP的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-07-07利用PHPExcel實(shí)現(xiàn)Excel文件的寫入和讀取
本篇文章主要介紹了利用PHPExcel實(shí)現(xiàn)Excel文件的寫入和讀取的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-04-04PHP利用func_get_args和func_num_args函數(shù)實(shí)現(xiàn)函數(shù)重載實(shí)例
這篇文章主要介紹了PHP利用func_get_args和func_num_args函數(shù)實(shí)現(xiàn)函數(shù)重載的方法,實(shí)例展示了PHP實(shí)現(xiàn)重載的具體方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-11-11