亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php之面向對象(1)

2020-03-24 18:53:38
字體:
來源:轉載
供稿:網友
  •   講到html' target='_blank'>面向對象 先回顧下以前的編程思路,所謂編程思路就是根據知識本質原理通過邏輯推理程序的過程,編程思路,講究的是先明確要做的事情是怎么。離開代碼的情況下,自己也要能明白這一件事情怎么做。而不是把代碼背一遍。跟據要做的事情,去確認各種已知條件,沒有條件的要自己創造條件。也就是:知道條件,知道結果,求過程。 在實際程序中 我們往往要做很多的準備工作 去創造滿足條件,比如要輸出mysql的一段數據我們需要準備分頁計算,才知道要從哪里輸出到哪里,往往一個程序中。一個功能,一個流程,不能滿足整個功能的需要。需要好幾個流程配合才能完成,比如,當網頁打開的時候做什么,當表單提交的時候做什么,沒有提交做什么,數據庫連不上的時候做什么連上的時候做什么。當沒有表單提交來的時候($_POST 為空的時候),我們就顯示表單。有數據提交來的時候,我們就連接數據庫,整理SQL語句,寫入數據庫。然后給用戶一個提示性的頁面??偨Y下來 ,我們整個程序在思考的時候 就會這么想 程序運行到這里的時候程序需要做什么,怎么做,才能滿足下一個流程的需求,這幾個流程組合起來,才能滿足整個功能的需求,這種思考方式,我們稱之為面向過程,面向過程 總結下來 思考模式有一個共通的特點:什么時候做什么,怎么做,每一個流程 每一步。這就是面向過程。

      其實在我們寫代碼的時候 九成以上都是面向過程,而相對的面向對象 只是一種思考方式的名字,很多的時候我們也會使用面向對象的方式思考 只是自己不知道罷了,以下代碼是一個簡單的例子:

    $file = 'test.txt';//指定打開的文件$fp = fopen($file, 'r');//打開文件$data = fread($fp, 1024);//讀取數據賦值fclose($fp);//關閉文件echo $data;//輸出

    一段代碼對應了一個過程

      我們在讀取數據庫的時候現在很多人應該是這么思考的了。//連接數據庫//查詢數據庫//顯示結果,

      如果是身份驗證。還多一個流程。//連接數據庫//查詢數據庫//對比用戶名和密碼//顯示結果。這個注釋其實就是思路的描述,當我們寫代碼熟練到一定程度的時候,就已經沒必要去一行一行的想了。往往想到一個流程,就是幾行代碼,但是,代碼實際的功能,必須和思考的過程吻合。

    還是上面的一段代碼

    $fp = fopen($file, 'r');$data = fread($fp, 1024);fclose($fp);//整體注釋就是:讀取“文件”的“內容”//如果我換成另一個同樣功能函數
      $file='test.txt';
      $data=file_get_contents($file);

    這個寫法,更符合我們剛才的描述:讀取文件內容。在這里,$file 我們思考的時候,把它看成了一個文件。

      又比如 對于圖形處理過程我們可以理解為:創建一張圖像,往圖像里寫字,往圖像里畫線,輸出圖像,把這個資源量看成這張圖像本身。

      所謂的面向對象就是思考模式的描述,在這種思考模式下我們把要處理的各個東西想象成一個個實體,讀取文件 處理數據 寫入文件 。。創建圖像 在圖像上繪畫 在圖像上寫字 輸出圖像 雖然從代碼本質上來解讀的話它們還是一個個的各種量,這一點自己潛意識清楚就可以了。在思考和描述的時候,要是也一個個這么想。會給思考帶來一定的困難。而用上面的這種思考和描述方式。就簡單得多了,這種思考方式就是面向對象,類似上面面向過程那樣的一句話就是:什么時候 誰 做什么。

      面向過程是:什么時候,做什么,怎么做
      面向對象是:什么時候,什么東西,做什么。在面向對象的時候少了一個怎么做 那是因為面向對象的前提是你已經知道怎么做了,這也是我們為什么總是先學習面向過程 如果我們一件事情 怎么做都不知道,就談不上什么思考模式了。其實對于 圖像處理函數就是基于面向對象思考模式開發的 從頭到尾都是對這張圖片做什么,思考模式,并不局限于書寫方式,并不是說這么寫就是面向對象 那樣寫 就是面向過程,在我們精通了各種功能的實現手法以后。我們往往會通過封裝來重復使用代碼。那怎么封裝更合理呢。這個時候,看思考方式,之前說過。思路描述,要能和代碼吻合。那么封裝就不是隨意的封裝了,封裝好的函數和類, 用起來的時候最好能和思考描述的一樣,是書寫格式。。和思路描述。。盡可能的吻合。

    比如,我把剛才讀取文件的過程。封裝成一個函數
    function read($file) {}//讀取文件$data = read($file);

    符合度百分之百,當然前提你得知道怎么封裝這樣一個函數,在此由于$file是文件名 將它視為文件有點牽強,但我們可以理解為文件的路徑path,所以 最好使用類去封裝。

      用我們日常生活的常識來理解對象的話 對象時一個個實體,那么它對應的就應該有一些特性,比如說文件名是什么,路徑是多少,文件大小多少,比如說我們人 有身高體重名字性別,但是,在我們平時的制作手法里面。我們要知道一個文件大小。就必須用 filesize 函數去取得。這就像我問你身高是多少,你每次都要重新量一下。這和我們常識中的對象,存在一定的差距,使得我們在思考描述代碼的時候。代碼的符合度不夠。 但是類可以暫時記住這些特征值,我們稱之為對象的屬性,屬性,一定是一個準確的值,而過程在類里面稱為方法,類里面 可以聲明一些特殊的變量,這些變量外部不能直接訪問到,這些就是類的屬性,要想訪問一個類的屬性和方法一樣使用-> 但是不需要寫$,假如我們有一個file類 有一個屬性

    $file = new file();echo $file->size;

    用這種方式來訪問一個對象變量的屬性 怎么定義它 我們先不急 慢慢道來 ,我們先回到思路上,今天我們封裝一個文件讀寫類 我們的代碼在需要文件讀寫的時候我們這樣思考:讀取文件 處理數據 寫入文件 ,這個思路正是文件型計數器的思路。

    那么,我們最好的寫法是

    $data = read($file);$data +=1;write($file, $data);
        function read($file) {        $fp = fopen($file, 'r');        $data = fread($fp, filesize($file));        fclose($fp);        return $data;    }        function write($file, $data) {        $fp = fopen($file, 'w');        $rs = fwrite($fp, $data);        fclose($fp);        return $rs;    }

    這兩個函數。都是同屬于文件操作的。我們把它封裝成為類

    class fileclass {        function read($file) {        $fp = fopen($file, 'r');        $data = fread($fp, filesize($file));        fclose($fp);        return $data;    }        function write($file, $data) {        $fp = fopen($file, 'w');        $rs = fwrite($fp, $data);        fclose($fp);        return $rs;    }}

    調用這個類的時候。代碼是這么寫的。

    $fc = new fileclass();//讀取文件$data = $fc->read($file);$data +=1;//寫入文件$fc->write($file, $data);
    然而這里有個和思路不符的地方,上下的兩個$file可以是兩個不同的文件,也就是說我可以從文件A讀取內容寫入到文件B中,但是這樣一來就是兩個文件,就是兩個對象,這個和思路不符,在這個代碼中,我們沒辦法準確的描述出。哪一個量??梢砸暈檫@個文件。 盡管使用了類從思維上還是面向的過程,之前說過 作為對象應該有自己的屬性,對象 應該知道自己的屬性,我們希望 用一個實例化的量 來表示這個對象,一個對象 一旦出現就知道自己的屬性,就如我們都知道的姓名和性別,要做到這幾點,我們需要修改類的結構,一開始就知道。。就是說。一開始就得知道文件名。而且一開始就要讀取文件大小。 畢竟,沒有這些過程 不可能憑空得到。在類里面。構造函數可以幫我們做到這一點。構造函數。會在類實例化的時候立即執行。我們可以在構造函數里讀取文件的大小,要讀取文件大小,同樣需要知道文件名。這就需要一個條件??梢酝ㄟ^函數參數傳入。
       public function __construct($file) {        $size = filesize($file);    }
    我們都知道,自定義函數內部變量和外部變量。不是同一個世界的。也就是說。在這里給$size賦值。屬性size是得不到的。 在這里在類的方法里面,要想訪問類的屬性和其他方法。需要用關鍵字 $this->
    <?phpclass fileclass {        public $size = 0;     public $name = '';        public function __construct($file) {        $size = filesize($file);        $this->size = $size;         $this->name = $file;    }    function read($file) {        $fp = fopen($file, 'r');        $data = fread($fp, filesize($file));        fclose($fp);        return $data;    }        function write($file, $data) {        $fp = fopen($file, 'w');        $rs = fwrite($fp, $data);        fclose($fp);        return $rs;    }}$fc = new fileclass('test.txt');echo '文件名:' . $fc->name;echo '文件大小:' . $fc->size;?>

    現在回到read方法 既然他已經有屬性 知道自己名字和大小了 那在這里就不用再傳文件名進去了,

        function read() {        $fp = fopen($this->name, 'r');        $data = fread($fp, filesize($this->size));        fclose($fp);        return $data;    }    
    同樣的。寫入的時候。也不需要再通知文件名了。
    class fileclass {        public $size = 0;    public $name = '';        public function __construct($file) {        $size = filesize($file);        $this->size = $size;        $this->name = $file;    }    function read() {        $fp = fopen($this->name, 'r');        $data = fread($fp, filesize($this->name));        fclose($fp);        return $data;    }        function write($data) {        $fp = fopen($this->name, 'w');        $rs = fwrite($fp, $data);        fclose($fp);        return $rs;    }}
    現在,整個類就變成了這個樣子?;氐絼偛诺挠嫈灯鞔a。
    $fc = new fileclass('test.txt');//讀取文件$data = $fc->read();$data +=1;echo $data;//寫入文件$fc->write($data);
    由于讀取是一個過程,也就是一個方法。從哪讀取的? $fc $fc此時,可以完全的理解為。就是文件本身了。   總結下:面向對象這種思維方式。講究的是:什么時候,什么東西,做什么 。為了能讓代碼書寫的時候,更符合這種描述方式,我們需要把過程封裝起來。而類。只不過是為了能更準確的符合這種思考描述方式而做的準備性封裝,不是說用類就是在用 面向對象 編程了。一個類寫出來以后。如果在使用的過程中。不符合面向對象的思維方式。。那也只是普通的類,面向對象思維方式。。一定要有準確的對象。。可以把某個量。視為一個實體的東西。也就是“對象” 。歸根到底其實是先有思路才有類的。

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    国产日韩在线看| 国产成人精品一区| 精品国产依人香蕉在线精品| 日韩精品免费一线在线观看| 亚洲国产精品99| 亚洲在线第一页| 亚洲自拍偷拍网址| 97超级碰碰碰久久久| 久久久成人精品视频| 欧美专区在线视频| 日韩一区二区三区国产| 久久精品视频网站| 91禁外国网站| 久久久亚洲欧洲日产国码aⅴ| 国产一区二区三区日韩欧美| 夜夜嗨av色一区二区不卡| 亚洲视频综合网| 欧美主播福利视频| 九九久久久久99精品| 欧美激情一区二区三区在线视频观看| 成人精品久久av网站| 91久久久久久久一区二区| 亚洲天堂精品在线| 亚洲国产97在线精品一区| 亚洲综合最新在线| 在线国产精品视频| 亚洲欧美福利视频| 欧美日韩激情网| 在线一区二区日韩| 成人黄色午夜影院| 久久久久久中文字幕| 欧美性猛交xxxx富婆| 亚洲欧美日韩第一区| 欧美最顶级丰满的aⅴ艳星| 国产精品久久不能| 精品日本美女福利在线观看| 66m—66摸成人免费视频| 欧美日韩中文在线观看| 狠狠躁夜夜躁人人爽天天天天97| 亚洲新中文字幕| 色偷偷88888欧美精品久久久| 亚洲国产高清福利视频| 国产精品视频yy9099| 欧美国产精品人人做人人爱| 国产一区二区三区直播精品电影| 精品久久久久久电影| 亚洲高清久久网| 久久99久久99精品免观看粉嫩| 久久久久久999| 亚洲成人a**站| 久久天天躁狠狠躁老女人| 久久九九全国免费精品观看| 91沈先生作品| 日韩专区在线播放| 国产精品国产福利国产秒拍| 久久久成人的性感天堂| 国产精品免费观看在线| 亚洲免费中文字幕| 亚洲激情中文字幕| 亚洲精品98久久久久久中文字幕| 成人免费网视频| 日韩中文理论片| 成人精品福利视频| 国产69久久精品成人| 亚洲剧情一区二区| 成人精品视频99在线观看免费| 日韩专区在线观看| 亚洲国产高清高潮精品美女| 欧美极品少妇全裸体| 久久久久久网址| 91国产视频在线播放| 亚洲精品不卡在线| 欧美不卡视频一区发布| 色阁综合伊人av| 国语自产精品视频在免费| 精品国产乱码久久久久久天美| 亚洲人午夜精品免费| 久久久久免费精品国产| 成人午夜高潮视频| 欧美性生活大片免费观看网址| 精品福利视频导航| 91国产视频在线| 97在线视频精品| 欧美巨乳美女视频| 日本电影亚洲天堂| 最新亚洲国产精品| 奇米影视亚洲狠狠色| 欧美性视频精品| 亚洲国产婷婷香蕉久久久久久| 亚洲精品98久久久久久中文字幕| 欧美日韩成人在线视频| 国语自产精品视频在线看| 最新日韩中文字幕| 奇米影视亚洲狠狠色| 国产成人精彩在线视频九色| 91超碰caoporn97人人| 国产精品美乳在线观看| 国产成人精品一区| 国产成人精品a视频一区www| 国产不卡av在线免费观看| 欧美富婆性猛交| 欧美日韩国产影院| 欧美整片在线观看| 91网在线免费观看| 久久99国产精品自在自在app| 国产精品欧美日韩久久| 亚洲精品久久久一区二区三区| 久久网福利资源网站| 亚洲影影院av| 国产mv久久久| 欧美精品18videos性欧| 91久久综合亚洲鲁鲁五月天| 日韩欧美在线中文字幕| 日韩在线视频线视频免费网站| 在线观看日韩www视频免费| 国产精品久久久久久五月尺| 欧美激情国产高清| 国产精品视频免费在线| 国产精品久久久久秋霞鲁丝| 日韩第一页在线| 国产精品大片wwwwww| 国产一区二区在线播放| 欧美天天综合色影久久精品| 亚洲天天在线日亚洲洲精| 中文字幕日韩av综合精品| 亚洲第一精品久久忘忧草社区| 国产香蕉精品视频一区二区三区| 福利一区视频在线观看| 日韩av在线电影网| 国产99视频在线观看| 欧美成人免费在线视频| 奇米影视亚洲狠狠色| 亚洲精品黄网在线观看| 高跟丝袜欧美一区| 国产一区二区三区日韩欧美| 热99精品只有里视频精品| 91在线色戒在线| 亚洲国产精品va在看黑人| 欧美日韩在线免费| 欧美有码在线视频| 色偷偷88888欧美精品久久久| 中文字幕亚洲在线| 538国产精品一区二区免费视频| 亚洲女成人图区| 国产在线播放91| 精品人伦一区二区三区蜜桃网站| 亚洲国产欧美日韩精品| 在线观看视频99| 精品中文字幕在线2019| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩在线观看免费全集电视剧网站| 欧美中文在线免费| 亚洲最新视频在线| 97在线视频免费观看| 亚洲综合色激情五月| 欧美一级大片在线观看| 欧美精品在线看| 久久综合国产精品台湾中文娱乐网| 欧美理论电影在线播放| 久久久成人精品视频| 国产69精品99久久久久久宅男| 狠狠躁夜夜躁久久躁别揉| 亚洲精品综合久久中文字幕| 高清欧美一区二区三区|