问题:如何 在 父类 中调用 子类 的 静态属性 或 静态方法
自己看代码
<?php
class A
{
private stitac name = "A类";
public static function aaa()
{
//获取静态方法调用的类名
$CalledClass = get_called_class();
//输出子类的静态属性
echo $CalledClass::name;
//调用子类的静态方法
$CalledClass::fun();
}
}
class B extends A
{
public stitac name = "B类";
public static function fun()
{
echo "B类属性";
}
public static function ceshi()
{
self::aaa();
}
}
?>
例子: 现在有
日志管理类 ManageLoges ,
某功能类 DialogManage
每一个功能类都需要生成自己类名的日志,如过 每次生成日志时都传入类名!感觉 太拙劣了! 所以 上代码
ManageLoges 类
<?php
class ManageLoges
{
private static $Log="错误:";
//返回一个日志格式!
public static function Log()
{
//获取静态方法调用的类名
$CalledClass = get_called_class();
$result = property_exists($CalledClass ,"LogPath" );
if($result==true)
{
//存在
self::$Log = $CalledClass::$Log;
}
$log = self::$LogPath.$CalledClass."类中 ,请仔细检查";
return $log;
}
}
?>
DialogManage 类
<?php
require_once("ManageLoges.php");
//社交管理类
class DialogManage extends ManageLoges
{
public static $Log="警告:"; // 你可以尝试把这一行注释掉,看结果有啥不同
public static function ceshi()
{
echo self::Log();
}
}
?>