我有这门课。在createNew
函数中,我引用了$reftbArr = tc_group::$tblFields;
。
我有很多类与这个类很相似。它们具有相同的方法和变量,但当然类名不同。
函数createNew
中访问tc_group::$tblFields;
但没有硬编码类名称的最佳方法是什么?
<?php
class tc_group {
public $id;
public $password;
private static $tableName = "tc_group";
public static $tblFields = array(
':id' => array('value' => '','required' => 0),
':password' => array('value' => '','required' => 0)
);
public static function createNew($link , $tblfields){
$reftbArr = tc_group::$tblFields;
}
}
?>
答案 0 :(得分:2)
您可以使用自我,例如:self::$variable
您可以使用静态,例如:static::$variable
区别在于self将访问它所使用的当前类(忽略继承),static将服从继承。
扩展答案
我有同样的课这几次。他们有相同的方法和变量,但当然类名不同。
这听起来像需要重构。在这种情况下,创建一个“抽象类”,它定义了其他类定义的所有属性和方法,并将它们从其他类中删除(因为它们现在位于抽象类中)。然后扩展抽象类以根据需要创建单独的类,其中只包含其中的任何更改。
答案 1 :(得分:1)
您可以使用静态关键字self
。
public static function createNew($link , $tblfields){
$reftbArr = self::$tblFields;
}
答案 2 :(得分:1)
$ tableFields = self :: $ tblFields;
的print_r($ tableFields);