狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美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视频
欧美成人性福生活免费看| 国产98色在线|日韩| 国产精品欧美日韩一区| 日韩极品在线观看| 欧美成人激情免费网| 99国产精品99久久久久久粉嫩| 一区二区三区免费观看| 欧美日韩五月天| 91小视频免费观看| 日本一不卡视频| 久久久99久久精品欧美| av动漫一区二区| 欧美大肚乱孕交hd孕妇| 亚洲精品麻豆| 成人黄色片在线观看| 日日摸夜夜添夜夜添亚洲女人| 日韩小视频在线观看专区| 国产一级精品aaaaa看| 不卡的电影网站| 日韩电影在线免费看| 亚洲另类中文字| 亚洲国产精品国自产拍av| 国产美女诱惑一区二区| 久久99最新地址| 视频一区免费在线观看| www国产精品av| 91精品蜜臀在线一区尤物| 香蕉成人久久| 激情欧美一区| 国内精品久久国产| 成人高清免费在线播放| 国产成人精品一区二区三区四区 | 成人av午夜电影| 亚洲视频一区二区在线观看| 欧美一区三区二区| 欧美丰满少妇xxxbbb| 在线视频一区二区三区| 欧美在线免费观看亚洲| 日韩一区二区久久| 久久精品中文| 欧美日韩久久久久久| 91福利小视频| 日本电影亚洲天堂一区| 欧美美女喷水视频| 精品日韩欧美在线| 欧美国产精品一区| 中文字幕不卡在线观看| 亚洲免费在线观看| 一区二区三区视频在线观看 | 一本色道久久综合亚洲aⅴ蜜桃| 亚洲一区激情| 日韩欧美一级精品久久| 国产精品女上位| 蜜臀精品久久久久久蜜臀| 国产精品一品视频| 国产精品乱码| 56国语精品自产拍在线观看| 综合在线观看色| 狠狠狠色丁香婷婷综合激情| 日本三级韩国三级欧美三级| 成人一级视频在线观看| 亚洲高清视频在线观看| 欧美一级黄色大片| 一区二区三区在线免费观看| 午夜欧美电影在线观看| 国产在线视频一区二区| 国产精品成人一区二区网站软件| 亚洲视频综合| 欧美色图免费看| 亚洲天堂中文字幕| 99精品国产一区二区三区不卡| 羞羞视频在线观看欧美| 精品卡一卡二卡三卡四在线| 亚洲国产成人91porn| 欧美一区国产一区| 欧美一级二级三级乱码| 激情欧美一区二区三区在线观看| 亚洲免费黄色| 日韩欧美在线不卡| 福利一区二区在线| 欧美一区二区三级| 国产麻豆视频精品| 91精品91久久久中77777| 亚洲国产aⅴ成人精品无吗| 一本久道久久久| 中文字幕一区二区在线观看| 99久久夜色精品国产网站| 久久国产欧美| 亚洲一级二级在线| 久久国产福利| 久久99九九99精品| 欧美日韩国产另类一区| 国产成人av电影免费在线观看| 日韩欧美精品在线视频| 日韩欧美在线影院| 欧美一区91| 欧美国产视频在线| 欧美国产先锋| 日韩视频一区二区在线观看| 五月婷婷久久丁香| 99久久精品国产毛片| 久久久国际精品| 91蜜桃婷婷狠狠久久综合9色| 久久中文字幕一区二区三区| 麻豆视频观看网址久久| 日韩亚洲欧美综合| 欧美日韩1区| 亚洲综合色视频| 欧美在线观看一二区| 色综合久久综合中文综合网| 亚洲精品成人悠悠色影视| 精品视频一区二区三区免费| 不卡一区二区在线| 中文在线免费一区三区高中清不卡| 国产一区视频观看| 日韩精品久久理论片| 精品国产123| 一本久久a久久精品亚洲| 成人性生交大片免费看视频在线| 国产日韩三级在线| 欧美一区二区三区视频免费 | 久久久另类综合| 久久婷婷麻豆| 成人精品免费看| 天天色天天操综合| 亚洲男人的天堂在线aⅴ视频| 欧美日韩中字一区| 成人黄色电影在线 | 日韩欧美视频一区| 国产a久久麻豆| 中文字幕一区二区三| 精品88久久久久88久久久| 欧美午夜精品电影| 久久av一区二区三区| 一区二区三区偷拍| 亚洲精品1区2区| 国产一区亚洲| 亚洲国产激情| 久久国产福利| 91黄色免费版| 欧美三级中文字幕在线观看| 亚洲综合99| 日韩一级成人av| 久久久久久电影| 久久久久久**毛片大全| 一区二区高清视频在线观看| 日本视频中文字幕一区二区三区| 欧美激情一区二区三区| 亚洲精品免费在线| 国产麻豆成人传媒免费观看| 午夜天堂精品久久久久| 中文字幕一区二区三区在线播放| 久久久久久久综合| 国产在线不卡一卡二卡三卡四卡| 欧美一区二区三区思思人| 欧美日韩一区二区三区在线| 欧美三级三级三级| 欧美午夜电影一区| 欧美一级精品大片| 国产精品久久久久久久久果冻传媒| 国产精品久久久久毛片软件| 亚洲国产一区视频| 国产91精品免费| 91网站最新网址| 国产私拍一区| 欧美激情一区二区三区四区 | 国产成人在线色| 欧美一区二区三区四区夜夜大片| 亚洲作爱视频| 日韩精品一区二区三区在线播放| 亚洲精品一区二区三区精华液| 日韩精品一区二| 亚洲小说春色综合另类电影| 国产成人啪午夜精品网站男同| 91免费精品国自产拍在线不卡| 欧美日韩三级一区二区| 欧美国产日韩a欧美在线观看| 免费成人结看片| 亚洲福利电影| 国产亚洲一本大道中文在线| 精品一区二区三区视频在线观看| 国产精品黄色| 欧美韩国日本不卡| 成人做爰69片免费看网站| 在线精品国精品国产尤物884a| 亚洲欧美在线视频观看| 欧美日本二区| 中文字幕av在线一区二区三区| 丁香天五香天堂综合| 色婷婷综合久久久久中文一区二区 | 国产精品一区二区三区四区| 色999日韩国产欧美一区二区| 久久久久久久综合| 91蜜桃网址入口| 久久尤物电影视频在线观看| 国产iv一区二区三区| 久久久久免费观看| 国模精品娜娜一二三区| **网站欧美大片在线观看| 国产精品免费看|