例如: php
在父類中含有靜態方法a,b,子類中含有靜態方法a spa
父類的b方法調用自身的a方法,這時候當子類調用父類的b方法時, code
self::a()是調用父類自身的a方法呢,仍是調用子類本身的a方法 io
答案:self調用的是父類的a方法 function
父類中又增長一個靜態方法c,用static::a(),這時候調用的是父類的仍是子類的a方法呢? class
答案:static調用的是子類的a方法 test
<?php class Test { public static function a() { echo '父類的a方法<br/>'; } public static function b() { self::a(); echo '父類的b方法<br/>'; } public static function c() { static::a();// 子類沒有c方法,用static::a(),則調用子類的a()方法 } } class child_test extends Test { public static function a() { echo '子類的a方法<br/>'; } } child_test::b(); child_test::c(); ?>