一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP5中虛函數的實現方法分享

請看下面的代碼:
復制代碼 代碼如下:
<?php
class A {
public function x() {
echo "A::x() was called./n";
}
public function y() {
self::x();
echo "A::y() was called./n";
}
public function z() {
$this->x();
echo "A::z() was called./n";
}
}
class B extends A {
public function x() {
echo "B::x() was called./n";
}
}
$b = new B();
$b->y();
echo "--/n";
$b->z();
?>

該例中,A::y()調用了A::x(),而B::x()覆蓋了A::x(),那么當調用B::y()時,B::y()應該調用A::x()還是 B::x()呢?在C++中,如果A::x()未被定義為虛函數,那么B::y()(也就是A::y())將調用A::x(),而如果A::x()使用 virtual關鍵字定義成虛函數,那么B::y()將調用B::x()。然而,在php5中,虛函數的功能是由 self 和 $this 關鍵字實現的。如果父類中A::y()中使用 self::x() 的方式調用了 A::x(),那么在子類中不論A::x()是否被覆蓋,A::y()調用的都是A::x();而如果父類中A::y()使用 $this->x() 的方式調用了 A::x(),那么如果在子類中A::x()被B::x()覆蓋,A::y()將會調用B::x()。

上例的運行結果如下:
A::x() was called. A::y() was called. --
B::x() was called. A::z() was called.
virtual-function.php
復制代碼 代碼如下:
<?php
class ParentClass {
static public function say( $str ) {
static::do_print( $str );
}
static public function do_print( $str ) {
echo "<p>Parent says $str</p>";
}
}
class ChildClass extends ParentClass {
static public function do_print( $str ) {
echo "<p>Child says $str</p>";
}
}
class AnotherChildClass extends ParentClass {
static public function do_print( $str ) {
echo "<p>AnotherChild says $str</p>";
}
}
echo phpversion();
$a=new ChildClass();
$a->say( 'Hello' );
$b=new AnotherChildClass();
$b->say( 'Hello' );

php技術PHP5中虛函數的實現方法分享,轉載需保留來源!

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

主站蜘蛛池模板: 婷婷激情六月 | 四虎免费在线观看视频 | 日本欧美一区二区免费视 | 青青草国产精品久久久久 | 狠狠色伊人亚洲综合网站色 | 久久综合九色综合狠狠97 | 亚洲成a人片77777老司机 | 亚洲欧美一区二区三区麻豆 | 中文字幕 国产精品 | 亚洲天堂久久 | 精品国产美女福利在线 | 精品一区二区三区在线观看 | 成人av在线播放 | 国产精品久久久久亚洲 | 国产免费一区二区三区在线观看 | 国产成人精品日本亚洲网站 | 色视频国产 | 欧美视频在线免费 | 韩国一区二区三区 | 手机在线观看亚洲国产精品 | 黄在线观看www免费看 | 国产视频二区在线观看 | 亚洲国产成人精品91久久久 | 国产成人福利免费观看 | 国产区精品福利在线观看精品 | 亚洲图片小说综合 | 91视频综合网| 四虎精品国产一区二区三区 | 黄色色视频 | 一本久道久综合久久鬼色 | 中文字幕精品视频在线观看 | 国产精品视频第一页 | 精品伊人久久大香线蕉网站 | 色噜噜国产在线91蝌蚪 | 午夜在线免费观看视频 | 日韩欧美成人乱码一在线 | 国产视频三区 | 成人年鲁鲁在线观看视频 | 中文字幕一区二区三区5566 | 亚洲欧洲无码一区二区三区 | 四虎影视免费永久在线观看 |