中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

php面向對象教程之自定義類
來源:易賢網 閱讀:971 次 日期:2014-10-08 13:52:13
溫馨提示:易賢網小編為您整理了“php面向對象教程之自定義類”,方便廣大網友查閱!

那怎么開始設計一個合格的類呢,一開始就寫class{}的都錯了,正確的是什么都不寫,而是假設這個類已經存在,這個對象已經存在,各種屬性方法都已經有了,在這個完全的假設下想象下這個對象應該怎么用,例如我們制作一個縮略圖的類,我們希望封裝成一個類,方便下次使用,我們首先需要明確對象是什么它會做什么,要制作縮略圖本質操作是縮小圖片并輸出,這里被操作的是圖片,那么對象就是圖片,由于網站上的圖片不是唯一的我們得告訴這是那張圖片,這就可以假設下這個類已經存在,一開始就得聲明是那張圖片,例如$simg = new simg(1.jpg);那么,一張圖片應該有哪些屬性? 在制作縮略圖的時候,我們最關心的應該是 寬,高,類型,而且這三項對一張圖片而言是肯定的,這意味著這個對象一定有這些屬性,$simg->width,$simg->height,$simg->type,并且這些屬性一開始就可以讀取的到的,

代碼如下:

1 $simg = new simg(1.jpg);

2 echo $simg->width;

3 echo $simg->height;

4 echo $simg->type;

5 //這個對象,應該可以這樣操作。

  根據oop的思想的原則,如果對象的屬性被改變,對象應當也會發生相應的改變,這就意味著我們可以給它賦值,取得對象的寬度,高度,計算后(比如按比例縮小),重新賦值回去。我們本質是要制作一張圖片的縮略圖,也就是生成一張新的圖片,改變它之后,接下來要做的事情就應該是把這個改變過的圖片存起來了,存起來是一個過程,所以它會是一個方法。 例如 $simg->save(),考慮到要換一個地方存。至少要改一個名字吧, 也就是說在使用的時候,這個對象應該是這樣描述的,圖片 保存到 …… 這意味著,這個方法,有一個參數,就是保存到哪。

代碼如下:

$simg = new simg(1.jpg);//實例化

$simg->width = 200;//設置寬度

$simg->height = 200;//設置高度

$simg->save(2.jpg);//保存到2.jpg

在使用這個類的時候思維描述和寫出來的代碼應當完全一致,這里的思維描述出現了一個小問題,可能會產生不符合oop思維原則的誤導,這里不符合面向對象的是:對象屬性重新賦值 原圖的大小為什么沒有發生變化,變化的是另存出來的,也就是說這個對象其實是php內存中源對象的復制品,我們改變了復制品的大小并保存了下來,所以圖片被真正改變之前圖片的屬性應當是只讀的,改寫是無效的, 所以,如果以原圖做為對象來描述的話。這樣描述應該更準確:圖片 改變大小后 另存為 。而原圖的大小是沒有發生改變的,改變大小是一個過程,這意味著這也是一個方法,

代碼如下:

//這個類,用起來應該是這樣的。

//實例化一張圖片

$simg = new simg(1.jpg);

//讀取圖片寬高計算比例

$simg->width

$simg->height

//圖片使用指定的寬高另存為……

$simg->size(200,200)->save(2.jpg);

這是以原圖做為對象的角度來描述的,盡管是不存在的一個類,但它的用法必須事先存在,并且符合oop的思想原則,即這是個什么東西,它可以做些什么。如果從另外的角度來思考呢,以即將被輸出的圖片作為對象呢,那么這個對象創建出來的時候它應該是空的,然后它必須以某張原圖為基準,然后調整它的大小,再把它保存下來,

代碼如下:

//按這個思路描述。代碼應該是這個樣子

$simg = new simg(); //一開始是空的

echo $simg->width; //肯定是 0

$simg->load(1.jpg); //以一張圖為基準

echo $simg->width; //沒改過,是原圖大小

//改變大小

$simg->width = 200;

$simg->height = 200;

$simg->save(2.jpg); //保存起來

此時看起來還不太明顯

下面會更好:

代碼如下:

$simg = new simg(2.jpg); //一開始是空的,指定一個文件名

$simg->load(1.jpg); //以一張圖為基準

//改變大小

$simg->width = 200;

$simg->height = 200;

$simg->save(); //保存起來

這樣會更明顯一些,實例化一個縮略圖,但它還不存在,直到保存以后它才存在于硬盤中 。

  在此我們先按照第一種方式以原圖為對象的角度創建這個類,根據上面的分析如下:

代碼如下:

<?php

class simg {

public $width = 0;

public $height = 0;

public function __construct($img) {

}

public function size($width, $height) {

}

public function save($path) {

}

}

之后再根據對每個方法每個屬性的要求,填上里面的代碼,一開始就必須知道文件的高度,寬度,由于php處理不同類型的圖片使用的函數不同,我們在這里不得不知道文件類型是多少。以決定用哪個函數 設計類的時候,才是思考“怎么做”的時候,要在實例化之后,馬上知道寬高。一定是在構造函數里完成的,只有構造函數會在類實例化的時候執行,這里我們可以使用 getimagesize 函數,取得文件的寬度,高度,類型 ,寬度和高度,我們可以在這里,賦值給屬性。這樣一來,實例化圖片,就得到屬性的問題就解決了,那改變大小的過程呢?

代碼如下:

<?php

class simg {

public $width = 0;

public $height = 0;

public function __construct($img) {

$var = getimagesize($img);

$this->width = $var[0];

$this->height = $var[1];

}

public function size($width, $height) {

}

public function save($path) {

}

}

由于網絡上常用的圖片類型有gif jpg png 三種,其他的類型暫時不做考慮,調整大小的方法。在輸出之前是什么也不做的。可以說,我們的代碼,只要知道要輸出的圖片是多大就可以了 但是,不同的方法,內部變量不通用。怎么辦注冊全局變量容易被外部變量干擾和污染,那我們就利用類的屬性來保存。新加兩個屬性這里暫定為w和h,這兩個屬性,嚴格來說不是屬性,只是我們利用屬性來在方法之間傳遞變量而已,為了避免它們在類的外部被訪問和修改我們在定義的時候使用關鍵字私有來進行訪問限制,private $w = 0;private $h = 0;

代碼如下:

public function size($width, $height) {

$this->w = $width;

$this->h = $height;

}

改變大小的方法,只要暫時把要輸出的寬度和高度記下來就可以了。 下面就是保存了,要保存之前,得先把圖片弄小了才行,所以,縮略圖的計算過程,主要在這里完成,需要載入原圖才能縮小,而且,也要知道文件類型才行 ,因為不同類型的圖片載入方式是不同的,文件名和文件類型。在構造函數才知道,此時我們再加入兩個公共屬性,

代碼如下:

public $width = 0;

public $height = 0;

public $path = '';

public $type = 0;

private $w = 0;

private $h = 0;

public function __construct($img) {

$var = getimagesize($img);

$this->width = $var[0];

$this->height = $var[1];

$this->path = $img;

$this->type = $var[2];

}

之后,我們可以在保存的方法里,載入原圖,改變大小,并保存到指定的位置上,至于保存方法的書寫不同的類型調用的函數時不同的可以選擇使用switch ($var[2])進行判斷 在進行新建一個縮略圖然后保存。

代碼如下:

//按這個類的編寫方式。。使用方法應該是這樣

$simg = new simg(1.jpg);

//讀取寬高并計算

$simg->width

//設置大小

$simg->size(200, 200);

//保存到

$simg->save(2.jpg);

和描述有點不一樣 ,因為描述是:使用(這個)大小,另存為(這里)這個描述有點繞口,如果可以這樣寫就沒問題了$simg->size(200, 200)->save(2.jpg);對象的使用必須是這樣的對象->方法()這就要求前面的量里的值必須是一個對象,save前面是size這就要求size的返回值必須是一個對象,但是這個方法沒有什么東西需要返回,而且這個對象肯定是當前對象,才會有save方法,沒有對象不要緊我們自己添加一個,

代碼如下:

public function size($width, $height) {

$this->w = $width;

$this->h = $height;

return $this;

}

返回當前的對象,這樣就可以用圖片 使用(這個)大小,另存為(這里)$simg->size(200, 200)->save(2.jpg);這樣一個符合oop思想的類封裝完成了。

更多信息請查看IT技術專欄

更多信息請查看網絡編程
易賢網手機網站地址:php面向對象教程之自定義類
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美视频日韩| 亚洲一区二区精品视频| 欧美看片网站| 国产精品一区二区久久久久| 国产精品久久久久秋霞鲁丝| 欧美亚男人的天堂| 在线日韩欧美视频| 在线视频一区观看| 久久www免费人成看片高清| 麻豆精品视频在线观看| 国产精品主播| av成人动漫| 久久久久久久久久看片| 欧美午夜精品理论片a级按摩| 亚洲另类一区二区| 性视频1819p久久| 欧美日韩精品免费观看| 亚洲国产精品久久| 另类天堂视频在线观看| 国产亚洲免费的视频看| 亚洲视频免费在线| 欧美啪啪一区| 亚洲精品久久久久久久久久久久久 | 亚洲调教视频在线观看| 免费成人你懂的| 狠狠做深爱婷婷久久综合一区| 亚洲性感美女99在线| 欧美不卡视频| 亚洲国产日韩欧美| 久久精品最新地址| 国内精品久久久久影院薰衣草| 亚洲一区影音先锋| 国产精品嫩草影院一区二区| 制服诱惑一区二区| 国产精品视频xxxx| 欧美一级片一区| 国产一区二区三区观看| 久久国产精品一区二区三区| 国产欧美精品一区| 久久国产欧美| 亚洲大片av| 欧美精品亚洲精品| 在线综合亚洲| 国产精品一区二区欧美| 欧美在线视频一区二区| 狠狠干狠狠久久| 模特精品裸拍一区| 91久久夜色精品国产网站| 欧美激情一区二区三区在线| 亚洲欧洲精品一区二区三区不卡 | 国产精品欧美日韩一区二区| 亚洲国产精品www| 欧美精品一区在线发布| 日韩一级在线| 国产精品你懂的| 中日韩男男gay无套| 欧美日韩色一区| 久久精品视频一| 亚洲精品欧美日韩| 国产精品入口日韩视频大尺度| 蜜桃av一区二区| 国产精品超碰97尤物18| 最新69国产成人精品视频免费| 欧美日韩小视频| 欧美一级理论片| 亚洲高清色综合| 欧美日韩亚洲成人| 欧美一区二区三区免费看 | 亚洲国产精品一区二区第四页av| 久久国产精品久久久久久| 影音先锋中文字幕一区二区| 欧美日韩大片一区二区三区| 性欧美18~19sex高清播放| 在线观看日韩精品| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 国产一区二区三区精品欧美日韩一区二区三区| 午夜精品婷婷| 最新国产成人在线观看| 国产精品午夜视频| 欧美高清视频www夜色资源网| 午夜激情综合网| 亚洲精品视频中文字幕| 伊人夜夜躁av伊人久久| 国产日韩欧美综合一区| 欧美视频网址| 欧美日韩精品不卡| 蜜臀久久99精品久久久久久9| 亚洲女优在线| 在线亚洲一区二区| 亚洲人成小说网站色在线| 国内精品久久久久伊人av| 国产精品色在线| 国产精品久久久久秋霞鲁丝| 欧美色一级片| 欧美三级电影一区| 欧美日韩大陆在线| 欧美福利在线| 免费成人性网站| 免费欧美在线视频| 久热精品视频在线| 欧美va亚洲va国产综合| 免费在线成人av| 蜜臀av性久久久久蜜臀aⅴ| 久久精品视频在线看| 欧美在线免费视频| 欧美一区二区三区久久精品茉莉花| 亚洲一级特黄| 亚洲欧美三级在线| 欧美中文字幕在线| 久久噜噜噜精品国产亚洲综合| 久久黄色小说| 久久久人成影片一区二区三区| 欧美专区第一页| 久久九九热免费视频| 久久免费视频在线| 嫩草国产精品入口| 欧美日韩国产在线看| 欧美日韩国产黄| 欧美午夜精品久久久| 国产精品青草久久久久福利99| 国产伦一区二区三区色一情| 国产午夜精品久久| 亚洲激情在线视频| 亚洲免费一在线| 久久网站免费| 欧美日韩亚洲高清一区二区| 国产精品爽黄69| 亚洲国产mv| 亚洲视频中文字幕| 久久精品国产v日韩v亚洲| 久久久久国产精品一区二区| 欧美高清影院| 国产欧美1区2区3区| 在线精品视频免费观看| 夜夜夜久久久| 久久高清福利视频| 欧美激情一区二区三区在线视频观看 | 欧美另类视频| 国产麻豆精品视频| 亚洲啪啪91| 性欧美在线看片a免费观看| 欧美xxx成人| 国产伦精品免费视频 | 欧美—级a级欧美特级ar全黄| 欧美日韩在线视频首页| 国产视频精品免费播放| 日韩写真在线| 久久尤物视频| 国产精品日韩欧美一区二区| 亚洲国产成人久久综合| 欧美一区国产一区| 国产精品激情av在线播放| 亚洲国产成人精品久久久国产成人一区| 99re8这里有精品热视频免费| 久久国产精品电影| 国产精品入口日韩视频大尺度| 亚洲精品资源美女情侣酒店| 久久久噜噜噜久久人人看| 国产精品家教| 一本色道久久综合狠狠躁篇的优点 | 欧美日韩国产精品| 激情久久久久| 久久国产主播精品| 国产精品―色哟哟| 亚洲欧美日韩另类精品一区二区三区| 欧美承认网站| 亚洲国产精选| 久久综合九色欧美综合狠狠| 国产婷婷色一区二区三区在线| 一本色道久久综合| 欧美日韩不卡一区| 亚洲精品久久久久久久久久久久久| 久久久www成人免费毛片麻豆| 国产精品免费观看在线| 美女免费视频一区| 国产区日韩欧美| 亚洲欧美精品在线观看| 国产精品国产a级| 亚洲精品国产精品国产自| 欧美va天堂| 一区二区亚洲精品国产| 久久成人精品| 国产精品女主播一区二区三区| 日韩午夜激情电影| 欧美激情中文字幕一区二区| 影音先锋中文字幕一区| 欧美本精品男人aⅴ天堂| 在线精品视频在线观看高清| 久久精品欧洲| 国内精品久久久久影院优| 欧美一级午夜免费电影| 国产欧美日韩综合| 久久色中文字幕| 亚洲高清不卡av| 欧美精品在线网站| 亚洲女女女同性video| 国内精品久久久| 欧美巨乳在线观看| 亚洲特色特黄| 好男人免费精品视频|