作者brianhsu (坟墓)
看板PHP
标题[请益] 取得 static method 实际上的 caller class type.
时间Fri May 11 13:35:24 2007
假设有以下的父类别:
class Father {
public static function temp () {
//印出实际上呼叫这个 static method 的子类别
//echo __CLASS__;
//echo get_class();
}
}
以及以下的子类别:
class Child extends Father{
}
class AnotherChild extends Father {
}
主程式:
Child::temp();
AnotherChild::temp();
我想做的是,想在呼叫 Child::temp() 时会印出 Child,若是呼叫
AnotherChild::temp() 会印出 AnotherChild。
可是目前我所试的方法,都只能印出 Father 而已,不晓得有没有什
麽比较恰当的方法?
BTW,在 temp 是 object method 的时候我已经试出来了,直接用
get_class() 就可以,不过因为在我的实作里,temp 比较偏向
class method 而不是 object method,所以这个方法不是很适用。
--
~
白马带着她一步步地回到中原。白马已经老了,只能慢慢地走,
'v'
Brian Hsu 但终是能回到中原的。江南有杨柳、桃花,有燕子、金鱼……
// \\
( 坟 墓 )
/( )\
但这个美丽的姑娘就像古高昌国人那样固执。 【白马啸西风】
^`~'^
http://bone.twbbs.org.tw/blog 『那都是很好很好的,可我偏不喜欢。』
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.22.18.90
1F:推 foxzgerald:我觉得这边用 static function 有点诡异? 05/11 13:52
2F:推 foxzgerald:我想这边在 sub-class 用 overwriting 的方式比较适合 05/11 14:04
3F:→ foxzgerald: ^^^^^^^^^^^ overriding 05/11 14:07