狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

初探 PHP5 (二)

初探 PHP5 (二)

更新時間:2024-04-11 文章作者:未知 信息來源:網絡 閱讀次數:

抽象類

抽象類不能被實例化。
抽象類與其它類一樣,允許定義變量及方法。
抽象類同樣可以定義一個抽象的方法,抽象類的方法不會被執行,不過將有可能會在其派生類中執行。

例六:抽象類

<?php
abstract class foo {
protected $x;
abstract function display();
function setX($x) {
$this->x = $x;
}
}
class foo2 extends foo {
function display() {
// Code
}
}
?>

__call

PHP5 的對象新增了一個專用方法 __call(),這個方法用來監視一個對象中的其它方法。如果你試著調用一個對象中不存在的方法,__call 方法將會被自動調用。

例七:__call

<?php
class foo {
function __call($name,$arguments) {
print("Did you call me? I'm $name!");
}
} $x = new foo();
$x->doStuff();
$x->fancy_stuff();
?>
這個特殊的方法可以被用來實現“過載(overloading)”的動作,這樣你就可以檢查你的參數并且通過調用一個私有的方法來傳遞參數。

例八:使用 __call 實現“過載”動作

<?php
class Magic {
function __call($name,$arguments) {
if($name=='foo') {
if(is_int($arguments[0])) $this->foo_for_int($arguments[0]);
if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);
}
} private function foo_for_int($x) {
print("oh an int!");
} private function foo_for_string($x) {
print("oh a string!");
}
} $x = new Magic();
$x->foo(3);
$x->foo("3");
?>

__set 和 __get

這是一個很棒的方法,__set 和 __get 方法可以用來捕獲一個對象中不存在的變量和方法。

例九: __set 和 __get

<?php
class foo {
function __set($name,$val) {
print("Hello, you tried to put $val in $name");
}
function __get($name) {
print("Hey you asked for $name");
}
}
$x = new foo();
$x->bar = 3;
print($x->winky_winky);
?>

類型指示

在 PHP5 中,你可以在對象的方法中指明其參數必須為另一個對象的實例。

例十:類型指示

<?php
class foo {
// code ...
}
class bar {
public function process_a_foo(foo $foo) {
// Some code
}
}
$b = new bar();
$f = new foo();
$b->process_a_foo($f);
?>
可以看出,我們可以顯性的在參數前指明一個對象的名稱,PHP5 會識別出這個參數將會要是一個對象實例。


靜態成員

靜態成員和靜態方法在面象對象編程的術語中被稱作 “對象方法(class methods)” 和 “對象變量(class variables)”。
“對象方法” 在一個對象沒有實例化前允許被調用。同樣,“對象變量” 在一個對象沒有實例化前可以被獨立操作控制(不需要用一個對象的方法來控制)。

例十一:對象方法和對象變量

<?php
class calculator {
static public $pi = 3.14151692;
static public function add($x,$y) {
return $x + $y;
}
}
$s = calculator::$pi;
$result = calculator::add(3,7);
print("$result");
?>

異常處理

異常處理是公認的處理程序錯誤的理想方法,在 Java 及 C++ 中都有這個概念,我們欣喜的看到,在 PHP5 已經加入了這方面的應用。你可以嘗試使用 “try” 和 “catch” 來控制程序的錯誤。

例十二:異常處理

<?php
class foo {
function divide($x,$y) {
if($y==0) throw new Exception("cannot divide by zero");
return $x/$y;
}
}
$x = new foo();
try {
$x->divide(3,0);
} catch (Exception $e) {
echo $e->getMessage();
echo "n<br />n";
// Some catastrophic measure here
}
?>
上例中,我們使用了 “try” 來執行花括號中的語句,當有錯誤發生的時候,代碼會把錯誤交給 “catch” 子句來處理,在 “catch” 子句中,你需要指明要把錯誤交給某個對象處理,這樣做可以使代碼結構看起來更清晰,因為現在我們可以把所有的錯誤信息交給一個對象來處理。


自定義錯誤處理

你可以很方便的用自定義的處理錯誤的代碼來控制你的程序中的意外。你僅僅需要從異常類中派生出一個自己的錯誤控制類,在你自己的錯誤控制類中,你需要有一個構造函數和一個 getMessage 方法,以下是一個例子。

例十三:自定義錯誤處理

<?php
class WeirdProblem extends Exception {
private $data;
function WeirdProblem($data) {
parent::exception();
$this->data = $data;
}
function getMessage() {
return $this->data . " caused a weird exception!";
}
}
?>
現在我們可以使用 “throw new WeirdProblem($foo)” 來拋出一個錯誤句柄,如果錯誤在 “try” 的代碼塊中發生,PHP5 會自動把錯誤交給 “catch” 部分來處理。


名稱空間

名稱空間對類的分組或函數分組很有用。它可以把一些相關的類或函數給組合到一起,方便以后調用。

例十四:名稱空間

<?php
namespace Math {
class Complex {
//...code...
function __construct() {
print("hey");
}
}
} $m = new Math::Complex();
?>
注意你需要在何種情況下使用名稱空間,在實際運用中,你可能會需要聲明兩個或多個名稱一樣的對象來做不同的事情,那么你就可以把他們分別放到不同的名稱空間中去(但接口是要相同的)。

譯者注:本篇文章來自 PHPbuilder,從以上文字中我們高興的看到 PHP5 中新增加的一些優秀的功能。我們還可以看到一些 Java 和 C++ 的影子,現在的 PHP5 還沒有正式發布,等到真正發布那一天,希望能再帶給所有的 PHP 愛好者更多的驚喜。對這方面比較感興趣的朋友可以登錄 PHP 官方新聞組去了解更新情況。新聞組地址為 news://news.php.net ,也可以登錄WEB界面 http://news.php.net 來訪問。讓我們一起來期待新版本的發布吧。:)(超越PHP Avenger)


注:本文章為原創文章,版權歸文章作者與超越PHP網站所有,未經本站同意,禁止任何商業轉載。非盈利網站及個人網站轉載請注明出處,謝謝合作!

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
精品美女一区二区| 国产欧美日韩| 欧美电影免费观看高清完整版 | 亚洲综合网站在线观看| caoporn国产一区二区| 欧美视频在线观看一区| 天天色天天操综合| 色婷婷激情综合| 日韩成人dvd| 日本精品裸体写真集在线观看 | 欧美精品一区在线| 久久久久久一级片| 91亚洲男人天堂| 国产日韩v精品一区二区| 欧美在线3区| 一区二区三区日韩| 亚洲一区二区三区午夜| 亚洲五码中文字幕| 亚洲精品欧美精品| 天天色图综合网| 欧美色精品在线视频| 国产福利一区在线| 国产欧美精品在线观看| 亚洲激情不卡| 青青草97国产精品免费观看| 欧美系列一区二区| 国产不卡视频在线观看| 国产精品亲子伦对白| 国产九区一区在线| 激情丁香综合五月| 国产女主播一区| 色狠狠av一区二区三区| 成人污视频在线观看| 亚洲色欲色欲www| 精品视频一区三区九区| 欧美人成网站| 日韩精品欧美精品| 日韩女优av电影| 亚洲人成高清| 99视频精品免费视频| 亚洲一区二区三区四区五区中文 | 欧美日韩精品免费观看视一区二区| 亚洲天堂av一区| 日韩一区二区三区免费看| 亚洲国产午夜| 成人禁用看黄a在线| 奇米影视7777精品一区二区| 欧美激情在线一区二区三区| 欧美色电影在线| 国产精品美女| 国产拍揄自揄精品视频麻豆| 欧美熟乱第一页| 久久久7777| 一区二区国产精品| 黄色成人av网站| 99国产一区二区三精品乱码| 国产一区二区三区四区五区入口 | 日韩欧美高清dvd碟片| 91成人免费在线| 麻豆成人精品| 国产精品腿扒开做爽爽爽挤奶网站| www.久久精品| 国产精品影音先锋| 亚洲成a人片综合在线| 亚洲同性gay激情无套| 中文字幕av资源一区| 一本久道久久综合中文字幕| 精品动漫一区| 亚洲激情欧美| 亚洲国产精选| 国产精品日韩精品欧美精品| 亚洲区第一页| 色综合久久精品| 欧美最新大片在线看| 欧美日韩国产精品成人| 日韩视频一区二区在线观看| 欧美成人乱码一区二区三区| 精品国一区二区三区| 蜜桃伊人久久| 欧美性猛片aaaaaaa做受| 欧美精品在欧美一区二区少妇| 欧美性色黄大片| 91精品婷婷国产综合久久性色| 91麻豆精品国产91久久久久久| 欧美一区二区视频在线观看2020| 制服视频三区第一页精品| 日韩欧美一区二区三区在线| 国产蜜臀av在线一区二区三区| 国产精品麻豆欧美日韩ww| 亚洲成人www| 99av国产精品欲麻豆| 欧美在线黄色| 欧美日韩另类综合| 欧美一区免费视频| 91免费精品国自产拍在线不卡| 麻豆精品在线观看| 日韩精品一二三| 亚洲一区二区三区精品动漫| 一本大道av一区二区在线播放| 制服丝袜激情欧洲亚洲| 中文幕一区二区三区久久蜜桃| 亚洲国产综合91精品麻豆| 国产精品正在播放| 国产欧美日韩综合一区在线观看| 正在播放亚洲一区| 亚洲精品一二三四区| 成人av在线资源| 在线视频一区二区三| 精品免费视频一区二区| 久久久久久日产精品| 洋洋av久久久久久久一区| 成人99免费视频| 欧美午夜免费电影| 亚洲成av人在线观看| 成人app软件下载大全免费| 日本高清免费不卡视频| 亚洲女与黑人做爰| 欧美日韩成人| 国产亚洲综合在线| 成人一区二区三区在线观看| 精品视频免费在线| 亚洲午夜羞羞片| 午夜在线a亚洲v天堂网2018| 亚洲色图欧美在线| 尤物在线精品| 亚洲精品日韩综合观看成人91| 国产一区高清视频| 中文一区二区在线观看| 欧美日韩精品一区| 亚洲国产高清在线观看视频| 欧美 日韩 国产 一区| 国产欧美日韩中文久久| 欧美不卡在线| 亚洲欧美日本韩国| 国产精品普通话对白| 丝袜美腿亚洲综合| 欧美顶级少妇做爰| 国产成人精品三级麻豆| 国产亚洲午夜高清国产拍精品| www.成人在线| 一区二区三区在线观看动漫| 亚洲女人av| 国内偷窥港台综合视频在线播放| 欧美一区二区三区成人| 99re66热这里只有精品3直播| 中文字幕精品一区二区精品绿巨人| 欧美国产先锋| 日本在线不卡视频| 欧美va亚洲va| 黄色av一区| 国产中文字幕一区| 国产精品天干天干在观线| 亚洲毛片网站| 国产精品自拍三区| 国产精品久久久久毛片软件| 免费视频一区| av高清不卡在线| 青青草精品视频| 欧美精彩视频一区二区三区| 色狠狠一区二区| 午夜国产精品视频| 国内精品伊人久久久久av影院| 欧美韩国一区二区| 欧美日韩国产综合一区二区三区| 色综合色狠狠综合色| 免费成人在线观看| 亚洲欧美一区二区不卡| 欧美视频一区二区在线观看| 国产精品地址| 91浏览器入口在线观看| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 精品国产凹凸成av人导航| 一区二区自拍| 国产精品系列在线观看| 一区二区中文字幕在线| 色狠狠综合天天综合综合| 亚洲婷婷在线| 成人性生交大片免费看在线播放| 亚洲最新视频在线播放| 久久久蜜臀国产一区二区| 欧美做爰猛烈大尺度电影无法无天| 成人午夜私人影院| 国产在线日韩欧美| 午夜精品久久久久久久久久久| 欧美一区在线视频| 欧美做爰猛烈大尺度电影无法无天| 99久久精品国产一区| 国产99精品国产| 国产福利精品导航| 亚洲日本韩国一区| 亚洲国产成人一区二区三区| 欧美一区二区视频在线观看2022| 欧美老肥妇做.爰bbww| 欧美三级视频在线| 久久人人九九| 在线亚洲人成电影网站色www| 国产欧美一区二区三区另类精品| 欧美日韩国产一区精品一区| 国产剧情在线观看一区二区| 日韩主播视频在线|