Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中如何从子类的静态方法调用父类的非静态方法_Php_Class_Static - Fatal编程技术网

PHP中如何从子类的静态方法调用父类的非静态方法

PHP中如何从子类的静态方法调用父类的非静态方法,php,class,static,Php,Class,Static,在PHP中,如何从子类的静态方法调用父类的非静态方法?请帮忙 public static function countryArray(){ $sql = "SELECT `country_id`, `country_name` FROM `dr_tbl_country`"; $resultSet = parent::dBQueryExecute($sql); if(mysql_num_rows($resultSet) > 0){ $country

在PHP中,如何从子类的静态方法调用父类的非静态方法?请帮忙

 public static function countryArray(){
    $sql = "SELECT `country_id`, `country_name` FROM `dr_tbl_country`";
    $resultSet  = parent::dBQueryExecute($sql);
    if(mysql_num_rows($resultSet) > 0){
        $countryArray = array();
        while($result = mysql_fetch_array($resultSet)){
            extract($result);
            $countryArray[$country_id]['country_id'] = $country_id;
            $countryArray[$country_id]['country_name'] = $country_name;
        }
        return $countryArray;       
    }else{
        return false;
    }
}

你不能;静态项与其他静态项一起工作。

您不能;静态项与其他静态项一起工作。

我非常确定您不能从静态方法调用非静态方法(无论是父方法还是子方法)。这是因为没有办法知道应该在哪个实例上调用非静态方法。。。。在静态方法中使用。这对于所有OOP语言都应该是正确的。

我非常确定您不能从静态方法调用非静态方法(无论是父方法还是子方法)。这是因为没有办法知道应该在哪个实例上调用非静态方法。。。。在静态方法中使用。这对于所有OOP语言都应该是正确的。

简而言之,您不能

您无法从子类的
静态
方法调用父类的非
静态
方法


您最好的选择是使方法非静态

简言之,您不能

您无法从子类的
静态
方法调用父类的非
静态
方法


如果确实需要从静态方法中调用非静态方法,那么最好的选择是使该方法成为非静态方法。您可能没有将方法声明为
静态
。你真的不想在这里使用
Static
方法,但是我遇到了一个无法实例化类的对象的情况。好的,我必须找到一种解决方法。是的,放弃Static。你用静电欺骗了自己,这就是为什么我们通常尝试提前警告。一种解决方法是将父实例分配给静态类成员,这样您就有了一个带有单个实例的全局变量。如果您确实需要从静态方法中调用非静态方法。您可能没有将方法声明为
静态
。你真的不想在这里使用
Static
方法,但是我遇到了一个无法实例化类的对象的情况。好的,我必须找到一种解决方法。是的,放弃Static。你用静电欺骗了自己,这就是为什么我们通常尝试提前警告。一种解决方法是将父实例分配给静态类成员,以便获得一个带有单个实例的全局变量。