Comment une méthode statique PHP appelle-t-elle une méthode non statique de la classe parent ?
淡淡烟草味
淡淡烟草味 2017-06-08 11:01:40
0
5
1100

1. cela appelle la méthode de la classe parent :

2. Self appelle la méthode de la classe parent :

3. Parent appelle la méthode de classe parent :

难道子类静态方法没有办法调用父类非静态方法吗?

淡淡烟草味
淡淡烟草味

répondre à tous(5)
Ty80

self::get_one_by_sql

为情所困

Assurez-vous d'abord que le get_one_bysql de la classe parent est statique

À propos de l'utilisation de https://stackoverflow.com/que...

迷茫

Ce que vous utilisez est évidemment très irrégulier. Bien sûr, commençons par le point
Pour ajuster la méthode non statique de la classe parent, vous devez d'abord obtenir l'instance de classe
S'il y a un cache, récupérez simplement. directement, sinon, créez-en un

$instance = new self();
$totalCount = $instance->get_one_bysql($sqlstr);
巴扎黑

Ne peut pas être appelé.

Les méthodes non statiques doivent avoir l'objet $this, et cet objet ne peut pas être fourni lors de l'appel à partir de méthodes statiques.

滿天的星座

Ouvrez les commentaires et jouez pour le découvrir

<?php
class a{
    public $ab = NULL;
    public function d(){
        var_dump($this->ab);
    }
    public function c($a,$b){
        var_dump($a+$b);
    }
}

class b extends a{
    public static function t(){
        // $this->d();          //Fatal error: Using $this when not in object context in D:\phpStudy\WWW\index.php on line 14
        // $this->c(1,2);          //Fatal error: Using $this when not in object context in D:\phpStudy\WWW\index.php on line 15
        // self::d();             //Strict Standards: Non-static method a::d() should not be called statically in D:\phpStudy\WWW\index.php on line 16
                                //Fatal error: Using $this when not in object context in D:\phpStudy\WWW\index.php on line 5
        // self::c(1,2);        //Strict Standards: Non-static method a::c() should not be called statically in D:\phpStudy\WWW\index.php on line 18 
                                // int(3)
        // parent::d();            //Strict Standards: Non-static method a::d() should not be called statically in D:\phpStudy\WWW\index.php on line 20
                                // Fatal error: Using $this when not in object context in D:\phpStudy\WWW\index.php on line 5
        // parent::c(1,2);        //Strict Standards: Non-static method a::c() should not be called statically in D:\phpStudy\WWW\index.php on line 22
                                //int(3)
    }
}
b::t();

Résumé : ceci est utilisé pour les appels d'instance. self, parent sont utilisés pour appeler des propriétés ou des méthodes statiques.
Le dernier phénomène étrange est que même si vous obtiendrez une erreur lorsque vous appellerez statiquement la méthode non statique de la classe parent pour traiter les données, int(3) est toujours affiché

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal