首頁 > 後端開發 > php教程 > PHP開發入門教程之物件導向_PHP教程

PHP開發入門教程之物件導向_PHP教程

WBOY
發布: 2016-07-21 15:59:20
原創
899 人瀏覽過

PHP是弱变量的脚本语言,也就是说你无需先定义,这一点很灵活。也可以给予很大的自由度,但对于程序来说,自由并非好事。

  因为给予后期维护人员阅读带来很大的麻烦。

  下面来进入我们第一个程序:

  1.php

////////////////////
<?class helloWorld{
 var $hellow_str = "Hello World!";
 function helloWorld(){
  echo $this->hellow_str;
 }
}
$p = new helloWorld;
?>
////////////////////

  很明显,这是一个类,很简单的类,只有一个构造函数。目的就是输出"Hello World";首先我们定义了一个类成员变量,通过一个特殊的$this对象,输出该变量,oop思想我不是很精,仅仅在于php开发方面用到,其他的也只是借鉴,但是我想对于php开发者已经足够了。

  接下来,解释下什么是$this对象,从这点我们先要知道什么是类。

  类,可以解释为一群相同的群体,在类中的成员变量,如上面的$hellow_str可以看作是这个群体的独特的特征,比如,桌子群体是一个
类,桌子都有桌面,桌脚,这些“都有”的东西,就是桌子全体的共有特征,在程序类里面我们就可以定义其为 桌子类的一个成员变量。

////////////
class desktop{
 var $desktop;#桌子面;
 var $baluster;#桌子腿;
}
///////////

  同样,在桌子世界里,他们也有共同的动作,比如移动[也许你现在就在推桌子^^],也可能我们要把桌子的面子放大点,一样,这个就是桌子群提的共有方法了,[和特征近似哦,不过这是动作罢了]。让我们把这个共同特征加到类中去吧。

////////////////
class desktop{
 var $desktop;#桌子面;
 var $baluster;#桌子腿;
 function move(){
  #....
 }
 function largen(){
  #...
 }
}///////////////

  知道了上面的,那么接下来就很好理解什么是$this对象了,没有错,他就是桌子群中的一个特定的对象,如果阁下还不能理解,那么,
我们接着解释。

  如果,我们现在要对一张桌子进行整改,比如,我们想把桌子面积做的更大,那么,我们针对的就不是一群桌子,而是这个要整改的特定的桌子,这是个个体!所以,我们要把这个类进行“实例化”进行精确定位。因为,其他桌子我们不需要整改。

////////////////
class desktop{
 var $desktop;#桌子面;
 var $baluster;#桌子腿;
 function move(){
  #....
 }
 function largen(){
  $this->desktop++;#放大桌子面
 }
}
$d = new desktop;#“实例化,这个时候我们就是针对一个特定的桌子拉!
$d->largen();#哈哈,把这个特定桌子面放大点。其实$d = $this;明白吗,$d就是那个特定的桌子,$d->largen就是用那个特定桌子[桌子群大家都有的变大方法]把特定桌子面放大了点。
///////////////


  原来,$this就是指一个特定桌子呀,哈哈,明白了,原来类是大家都有的属性,方法的集合,而一个特定的对象,就是这个群体中的一个个体,既然是他们当中的个体,当然拥有群体所拥有的共同特征和方法拉。

  成员变量,成员方法[成员函数],实例化,大家都知道了。

  但是我桌子虽然想变大,可是我还不知道桌子开始有多大啊,这可能吗,怎么办呢?

  接下来,我们隆重推出 构造函数 来拉。要说到构造函数啊,话多啊,就不多说了,他就是给我们桌子面和桌子腿确定大小的。

////////////////
class desktop{
 var $desktop;#桌子面;
 var $baluster;#桌子腿;
 function desktop(){
  $this->desktop = 100;
  $this->baluster = 100;
 }
 function move(){
  #....
 }
 function largen(){
  $this->desktop++;#放大桌子面
 }
}
////////////
看到了吧,我把桌子定义了大小和长度哦
//////////

  聪明的你,一定想立即实例化了吧,如果我开始在定义成员变量里就给值了,那不是说所有桌子都一样大吗?

//////////////
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();
////////////////////

  可是結果卻是:Call to a member function desktop() on a non-object in

  倒霉,肯定是作者在騙點擊,bs這小樣,TT.


function desktop(){
 $this->desktop = 100;
 $this->baluster = 100;
}
  什麼構造函數,呢哎呀,原來建構函數是類別特有的函數,在類別被實例化後,類別會第一步自動執行建構函數,它在為類別開闢記憶體單元嘛。

  為了驗證是不是它一開始就執行,大家請把目光放到本教程第一個代碼上去,嘎嘎,您看到了把,一個和類名一樣的方法,一個構造函數,在我們實例化後就已經輸出程式碼了吧,這證明我還沒說錯。

  好了,回到我們的桌子世界裡,你發現了,我們這個時候所有桌子麵和腿都是100了。

  2.php

  執行程式碼


//////////////
<?
class desktop{
 var $desktop;#桌子麵;
 var $baluster;#桌子腿;
 function desktop(){
  $this->desktop = 100;
  $this->baluster = 100;
  echo "我們面子家族命令我把桌子放在我身上" $this->desktop."大小!<br />";
 }
 function move(){
  #....
 }
  #....
 }
 『 $this->desktop ;#放大桌子麵
  echo "7~,小桌子我今天改造了,不鳥你們拉,哈哈, 我現在面子可比你們大,我有".$this->desktop."嘎嘎";
 }
}
$d = new desktop;
$d->largen();
?>

 小桌子,逃離了桌子家族,小桌子因為,我們的臉沒小桌這nb大了。桌子老長老看不下去了,小樣,看我的。

//////////////
<?
class desktop{
 var $desktop;#桌子麵;
 var $baluster;#桌子腿;
 function desktop($desktop){
  $this->desktop = $desktop;
  $this->baluster = 100;
  $this->baluster = 100;
  echo在".$this->desktop."大小! <br />";
 }
 function move(){
  #....  $this->desktop ;#放大桌子麵
  echo "7~,小桌子我今天改造了,不鳥你們拉,哈哈, 我現在面子可比你們大,我有".$this-> desktop."嘎嘎";
 }
}
$d = new desktop;
$d->largen();
?>
  小桌子,左轉轉,右轉轉看了半天,逛累了,覺得自己現在也進化了,該看看新同類了於是;桌子變身執行後,發現......


/////
$d = new desktop(101);
////
  我tmd還是一張小桌子。

http://www.bkjia.com/PHPjc/317374.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/317374.htmlTechArticlePHP是弱變數的腳本語言,也就是說你不需要先定義,這點很靈活。也可以給予很大的自由度,但對程式來說,自由並非好事。 因為給予後...
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板