PHP開發(fā)入門教程之面向?qū)ο?/h1>
更新時(shí)間:2006年12月05日 00:00:00 作者:
PHP是弱變量的腳本語(yǔ)言,也就是說你無(wú)需先定義,這一點(diǎn)很靈活。也可以給予很大的自由度,但對(duì)于程序來(lái)說,自由并非好事。
因?yàn)榻o予后期維護(hù)人員閱讀帶來(lái)很大的麻煩。
下面來(lái)進(jìn)入我們第一個(gè)程序:
1.php
////////////////////
<?class helloWorld{
var $hellow_str = "Hello World!";
function helloWorld(){
echo $this->hellow_str;
}
}
$p = new helloWorld;
?>
////////////////////
很明顯,這是一個(gè)類,很簡(jiǎn)單的類,只有一個(gè)構(gòu)造函數(shù)。目的就是輸出"Hello World";首先我們定義了一個(gè)類成員變量,通過一個(gè)特殊的$this對(duì)象,輸出該變量,oop思想我不是很精,僅僅在于php開發(fā)方面用到,其他的也只是借鑒,但是我想對(duì)于php開發(fā)者已經(jīng)足夠了。
接下來(lái),解釋下什么是$this對(duì)象,從這點(diǎn)我們先要知道什么是類。
類,可以解釋為一群相同的群體,在類中的成員變量,如上面的$hellow_str可以看作是這個(gè)群體的獨(dú)特的特征,比如,桌子群體是一個(gè)
類,桌子都有桌面,桌腳,這些“都有”的東西,就是桌子全體的共有特征,在程序類里面我們就可以定義其為 桌子類的一個(gè)成員變量。
////////////
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
}
///////////
同樣,在桌子世界里,他們也有共同的動(dòng)作,比如移動(dòng)[也許你現(xiàn)在就在推桌子^^],也可能我們要把桌子的面子放大點(diǎn),一樣,這個(gè)就是桌子群提的共有方法了,[和特征近似哦,不過這是動(dòng)作罷了]。讓我們把這個(gè)共同特征加到類中去吧。
////////////////
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function move(){
#....
}
function largen(){
#...
}
}///////////////
知道了上面的,那么接下來(lái)就很好理解什么是$this對(duì)象了,沒有錯(cuò),他就是桌子群中的一個(gè)特定的對(duì)象,如果閣下還不能理解,那么,
我們接著解釋。
如果,我們現(xiàn)在要對(duì)一張桌子進(jìn)行整改,比如,我們想把桌子面積做的更大,那么,我們針對(duì)的就不是一群桌子,而是這個(gè)要整改的特定的桌子,這是個(gè)個(gè)體!所以,我們要把這個(gè)類進(jìn)行“實(shí)例化”進(jìn)行精確定位。因?yàn)?,其他桌子我們不需要整改?br>
////////////////
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
}
}
$d = new desktop;#“實(shí)例化,這個(gè)時(shí)候我們就是針對(duì)一個(gè)特定的桌子拉!
$d->largen();#哈哈,把這個(gè)特定桌子面放大點(diǎn)。其實(shí)$d = $this;明白嗎,$d就是那個(gè)特定的桌子,$d->largen就是用那個(gè)特定桌子[桌子群大家都有的變大方法]把特定桌子面放大了點(diǎn)。
///////////////
原來(lái),$this就是指一個(gè)特定桌子呀,哈哈,明白了,原來(lái)類是大家都有的屬性,方法的集合,而一個(gè)特定的對(duì)象,就是這個(gè)群體中的一個(gè)個(gè)體,既然是他們當(dāng)中的個(gè)體,當(dāng)然擁有群體所擁有的共同特征和方法拉。
成員變量,成員方法[成員函數(shù)],實(shí)例化,大家都知道了。
但是我桌子雖然想變大,可是我還不知道桌子開始有多大啊,這可能嗎,怎么辦呢?
接下來(lái),我們隆重推出 構(gòu)造函數(shù) 來(lái)拉。要說到構(gòu)造函數(shù)啊,話多啊,就不多說了,他就是給我們桌子面和桌子腿確定大小的。
////////////////
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
}
}
////////////
看到了吧,我把桌子定義了大小和長(zhǎng)度哦
//////////
聰明的你,一定想立即實(shí)例化了吧,如果我開始在定義成員變量里就給值了,那不是說所有桌子都一樣大嗎?
//////////////
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
}
}
$d = new desktop;
$d->desktop();
////////////////////
可是結(jié)果卻是:Call to a member function desktop() on a non-object in
倒霉,肯定是作者在騙點(diǎn)擊,bs這小樣,TT.
其實(shí)是我錯(cuò)了,我知道錯(cuò)了。原來(lái) 我們剛才添加的函數(shù)
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
}
是個(gè)構(gòu)造函數(shù),什么是構(gòu)造函數(shù)呢,哎呀,原來(lái)構(gòu)造函數(shù)是類特有的函數(shù),在類被實(shí)例化后,類會(huì)第一步自動(dòng)執(zhí)行構(gòu)造函數(shù),它在為類開辟內(nèi)存單元嘛。
為了驗(yàn)證是不是它一開始就執(zhí)行,大家請(qǐng)把目光放到本教程第一個(gè)代碼上去,嘎嘎,您看到了把,一個(gè)和類名一樣的方法,一個(gè)構(gòu)造函數(shù),在我們實(shí)例化后就已經(jīng)輸出代碼了吧,這就證明我還沒有說錯(cuò)呢。
好了,回到我們的桌子世界里,你發(fā)現(xiàn)了,我們這個(gè)時(shí)候所有桌子面和腿都是100了。
2.php
執(zhí)行代碼
//////////////
<?
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
echo "我們桌子家族命令大家把桌子面子都給我統(tǒng)一在".$this->desktop."大?。。糱r />";
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
echo "7~,小桌子我今天改造了,不鳥你們拉,哈哈, 我現(xiàn)在面子可比你們大,我有".$this->desktop."嘎嘎";
}
}
$d = new desktop;
$d->largen();
?>
小桌子,逃離了桌子家族,因?yàn)?,我們的面子沒小桌子這nb大了。桌子老長(zhǎng)老看不下去了,小樣,看我的。
//////////////
<?
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop($desktop){
$this->desktop = $desktop;
$this->baluster = 100;
echo "我們桌子家族命令大家把桌子面子都給我統(tǒng)一在".$this->desktop."大?。。糱r />";
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
echo "7~,小桌子我今天改造了,不鳥你們拉,哈哈, 我現(xiàn)在面子可比你們大,我有".$this->desktop."嘎嘎";
}
}
$d = new desktop;
$d->largen();
?>
小桌子,左轉(zhuǎn)轉(zhuǎn),右轉(zhuǎn)轉(zhuǎn) 看了半天,逛累了,覺得自己現(xiàn)在也進(jìn)化了,該看看新同類了 于是;桌子變身執(zhí)行后,發(fā)現(xiàn)......
/////
$d = new desktop(101);
////
我tmd還是一張小桌子。
相關(guān)文章
-
PHP7擴(kuò)展開發(fā)之hello word實(shí)現(xiàn)方法詳解
這篇文章主要介紹了PHP7擴(kuò)展開發(fā)之hello word實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了php7擴(kuò)展開發(fā)的具體步驟與相關(guān)操作技巧,涉及針對(duì)php底層源碼的修改與編譯,需要的朋友可以參考下 2018-01-01
-
支持生僻字且自動(dòng)識(shí)別utf-8編碼的php漢字轉(zhuǎn)拼音類
這篇文章主要介紹了支持生僻字且自動(dòng)識(shí)別utf-8編碼的php漢字轉(zhuǎn)拼音類,非常實(shí)用!需要的朋友可以參考下 2014-06-06
-
php中將數(shù)組轉(zhuǎn)成字符串并保存到數(shù)據(jù)庫(kù)中的函數(shù)代碼
為了方便可以把php的數(shù)組轉(zhuǎn)換為 字符串保存到數(shù)據(jù)庫(kù)中。當(dāng)需要用時(shí)就可以取出字符串再轉(zhuǎn)成數(shù)組即可。下為為php數(shù)組與字符串相互轉(zhuǎn)換的自定義函數(shù) 2013-09-09
-
隱藏Nginx或Apache以及PHP的版本號(hào)的方法
這篇文章主要介紹了隱藏Nginx或Apache以及PHP的版本號(hào)的方法,主要用來(lái)防止針對(duì)性的漏洞攻擊,需要的朋友可以參考下 2016-01-01
-
Linux平臺(tái)php命令行程序處理管道數(shù)據(jù)的方法
這篇文章主要介紹了Linux平臺(tái)php命令行程序處理管道數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了Linux平臺(tái)管道提示符的功能及php使用命令行處理管道數(shù)據(jù)的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下 2016-11-11
-
php檢測(cè)數(shù)組長(zhǎng)度函數(shù)sizeof與count用法
這篇文章主要介紹了php檢測(cè)數(shù)組長(zhǎng)度函數(shù)sizeof與count用法,實(shí)例分析了count的用法,并對(duì)sizeof函數(shù)進(jìn)行了詳盡的分析說明,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下 2014-11-11
-
WordPress中用于檢索模版的相關(guān)PHP函數(shù)使用解析
這篇文章主要介紹了WordPress中用于檢索模版的相關(guān)PHP函數(shù)使用解析,包括索模板的函數(shù)的使用,要的朋友可以參考下 2015-12-12
-
PHP實(shí)現(xiàn)的簡(jiǎn)單路由和類自動(dòng)加載功能
這篇文章主要介紹了PHP實(shí)現(xiàn)的簡(jiǎn)單路由和類自動(dòng)加載功能,結(jié)合實(shí)例形式分析了php路由及類自動(dòng)加載的原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下 2018-03-03
最新評(píng)論
因?yàn)榻o予后期維護(hù)人員閱讀帶來(lái)很大的麻煩。
下面來(lái)進(jìn)入我們第一個(gè)程序:
1.php
<?class helloWorld{
var $hellow_str = "Hello World!";
function helloWorld(){
echo $this->hellow_str;
}
}
$p = new helloWorld;
?>
////////////////////
很明顯,這是一個(gè)類,很簡(jiǎn)單的類,只有一個(gè)構(gòu)造函數(shù)。目的就是輸出"Hello World";首先我們定義了一個(gè)類成員變量,通過一個(gè)特殊的$this對(duì)象,輸出該變量,oop思想我不是很精,僅僅在于php開發(fā)方面用到,其他的也只是借鑒,但是我想對(duì)于php開發(fā)者已經(jīng)足夠了。
接下來(lái),解釋下什么是$this對(duì)象,從這點(diǎn)我們先要知道什么是類。
類,可以解釋為一群相同的群體,在類中的成員變量,如上面的$hellow_str可以看作是這個(gè)群體的獨(dú)特的特征,比如,桌子群體是一個(gè)
類,桌子都有桌面,桌腳,這些“都有”的東西,就是桌子全體的共有特征,在程序類里面我們就可以定義其為 桌子類的一個(gè)成員變量。
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
}
///////////
同樣,在桌子世界里,他們也有共同的動(dòng)作,比如移動(dòng)[也許你現(xiàn)在就在推桌子^^],也可能我們要把桌子的面子放大點(diǎn),一樣,這個(gè)就是桌子群提的共有方法了,[和特征近似哦,不過這是動(dòng)作罷了]。讓我們把這個(gè)共同特征加到類中去吧。
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function move(){
#....
}
function largen(){
#...
}
}///////////////
知道了上面的,那么接下來(lái)就很好理解什么是$this對(duì)象了,沒有錯(cuò),他就是桌子群中的一個(gè)特定的對(duì)象,如果閣下還不能理解,那么,
我們接著解釋。
如果,我們現(xiàn)在要對(duì)一張桌子進(jìn)行整改,比如,我們想把桌子面積做的更大,那么,我們針對(duì)的就不是一群桌子,而是這個(gè)要整改的特定的桌子,這是個(gè)個(gè)體!所以,我們要把這個(gè)類進(jìn)行“實(shí)例化”進(jìn)行精確定位。因?yàn)?,其他桌子我們不需要整改?br>
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
}
}
$d = new desktop;#“實(shí)例化,這個(gè)時(shí)候我們就是針對(duì)一個(gè)特定的桌子拉!
$d->largen();#哈哈,把這個(gè)特定桌子面放大點(diǎn)。其實(shí)$d = $this;明白嗎,$d就是那個(gè)特定的桌子,$d->largen就是用那個(gè)特定桌子[桌子群大家都有的變大方法]把特定桌子面放大了點(diǎn)。
///////////////
原來(lái),$this就是指一個(gè)特定桌子呀,哈哈,明白了,原來(lái)類是大家都有的屬性,方法的集合,而一個(gè)特定的對(duì)象,就是這個(gè)群體中的一個(gè)個(gè)體,既然是他們當(dāng)中的個(gè)體,當(dāng)然擁有群體所擁有的共同特征和方法拉。
成員變量,成員方法[成員函數(shù)],實(shí)例化,大家都知道了。
但是我桌子雖然想變大,可是我還不知道桌子開始有多大啊,這可能嗎,怎么辦呢?
接下來(lái),我們隆重推出 構(gòu)造函數(shù) 來(lái)拉。要說到構(gòu)造函數(shù)啊,話多啊,就不多說了,他就是給我們桌子面和桌子腿確定大小的。
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
}
}
////////////
看到了吧,我把桌子定義了大小和長(zhǎng)度哦
//////////
聰明的你,一定想立即實(shí)例化了吧,如果我開始在定義成員變量里就給值了,那不是說所有桌子都一樣大嗎?
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
}
}
$d = new desktop;
$d->desktop();
////////////////////
可是結(jié)果卻是:Call to a member function desktop() on a non-object in
倒霉,肯定是作者在騙點(diǎn)擊,bs這小樣,TT.
其實(shí)是我錯(cuò)了,我知道錯(cuò)了。原來(lái) 我們剛才添加的函數(shù)
$this->desktop = 100;
$this->baluster = 100;
}
是個(gè)構(gòu)造函數(shù),什么是構(gòu)造函數(shù)呢,哎呀,原來(lái)構(gòu)造函數(shù)是類特有的函數(shù),在類被實(shí)例化后,類會(huì)第一步自動(dòng)執(zhí)行構(gòu)造函數(shù),它在為類開辟內(nèi)存單元嘛。
為了驗(yàn)證是不是它一開始就執(zhí)行,大家請(qǐng)把目光放到本教程第一個(gè)代碼上去,嘎嘎,您看到了把,一個(gè)和類名一樣的方法,一個(gè)構(gòu)造函數(shù),在我們實(shí)例化后就已經(jīng)輸出代碼了吧,這就證明我還沒有說錯(cuò)呢。
好了,回到我們的桌子世界里,你發(fā)現(xiàn)了,我們這個(gè)時(shí)候所有桌子面和腿都是100了。
2.php
執(zhí)行代碼
<?
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop(){
$this->desktop = 100;
$this->baluster = 100;
echo "我們桌子家族命令大家把桌子面子都給我統(tǒng)一在".$this->desktop."大?。。糱r />";
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
echo "7~,小桌子我今天改造了,不鳥你們拉,哈哈, 我現(xiàn)在面子可比你們大,我有".$this->desktop."嘎嘎";
}
}
$d = new desktop;
$d->largen();
?>
小桌子,逃離了桌子家族,因?yàn)?,我們的面子沒小桌子這nb大了。桌子老長(zhǎng)老看不下去了,小樣,看我的。
<?
class desktop{
var $desktop;#桌子面;
var $baluster;#桌子腿;
function desktop($desktop){
$this->desktop = $desktop;
$this->baluster = 100;
echo "我們桌子家族命令大家把桌子面子都給我統(tǒng)一在".$this->desktop."大?。。糱r />";
}
function move(){
#....
}
function largen(){
$this->desktop++;#放大桌子面
echo "7~,小桌子我今天改造了,不鳥你們拉,哈哈, 我現(xiàn)在面子可比你們大,我有".$this->desktop."嘎嘎";
}
}
$d = new desktop;
$d->largen();
?>
小桌子,左轉(zhuǎn)轉(zhuǎn),右轉(zhuǎn)轉(zhuǎn) 看了半天,逛累了,覺得自己現(xiàn)在也進(jìn)化了,該看看新同類了 于是;桌子變身執(zhí)行后,發(fā)現(xiàn)......
$d = new desktop(101);
////
我tmd還是一張小桌子。
相關(guān)文章
PHP7擴(kuò)展開發(fā)之hello word實(shí)現(xiàn)方法詳解
這篇文章主要介紹了PHP7擴(kuò)展開發(fā)之hello word實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了php7擴(kuò)展開發(fā)的具體步驟與相關(guān)操作技巧,涉及針對(duì)php底層源碼的修改與編譯,需要的朋友可以參考下2018-01-01支持生僻字且自動(dòng)識(shí)別utf-8編碼的php漢字轉(zhuǎn)拼音類
這篇文章主要介紹了支持生僻字且自動(dòng)識(shí)別utf-8編碼的php漢字轉(zhuǎn)拼音類,非常實(shí)用!需要的朋友可以參考下2014-06-06php中將數(shù)組轉(zhuǎn)成字符串并保存到數(shù)據(jù)庫(kù)中的函數(shù)代碼
為了方便可以把php的數(shù)組轉(zhuǎn)換為 字符串保存到數(shù)據(jù)庫(kù)中。當(dāng)需要用時(shí)就可以取出字符串再轉(zhuǎn)成數(shù)組即可。下為為php數(shù)組與字符串相互轉(zhuǎn)換的自定義函數(shù)2013-09-09隱藏Nginx或Apache以及PHP的版本號(hào)的方法
這篇文章主要介紹了隱藏Nginx或Apache以及PHP的版本號(hào)的方法,主要用來(lái)防止針對(duì)性的漏洞攻擊,需要的朋友可以參考下2016-01-01Linux平臺(tái)php命令行程序處理管道數(shù)據(jù)的方法
這篇文章主要介紹了Linux平臺(tái)php命令行程序處理管道數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了Linux平臺(tái)管道提示符的功能及php使用命令行處理管道數(shù)據(jù)的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-11-11php檢測(cè)數(shù)組長(zhǎng)度函數(shù)sizeof與count用法
這篇文章主要介紹了php檢測(cè)數(shù)組長(zhǎng)度函數(shù)sizeof與count用法,實(shí)例分析了count的用法,并對(duì)sizeof函數(shù)進(jìn)行了詳盡的分析說明,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11WordPress中用于檢索模版的相關(guān)PHP函數(shù)使用解析
這篇文章主要介紹了WordPress中用于檢索模版的相關(guān)PHP函數(shù)使用解析,包括索模板的函數(shù)的使用,要的朋友可以參考下2015-12-12PHP實(shí)現(xiàn)的簡(jiǎn)單路由和類自動(dòng)加載功能
這篇文章主要介紹了PHP實(shí)現(xiàn)的簡(jiǎn)單路由和類自動(dòng)加載功能,結(jié)合實(shí)例形式分析了php路由及類自動(dòng)加載的原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-03-03