Maison  >  Article  >  développement back-end  >  Notes orientées objet PHP - 123 Illustration des propriétés statiques et des méthodes statiques

Notes orientées objet PHP - 123 Illustration des propriétés statiques et des méthodes statiques

不言
不言original
2018-04-08 15:47:081773parcourir

Le contenu présenté dans cet article est le contenu en PHP orienté objet, 123 diagrammes de propriétés statiques et méthodes statiques, désormais partagés avec tout le monde, les amis dans le besoin peuvent s'y référer

/*
Dans les attributs et
ajoutez une modification statique avant la méthode, cela s'appelle attribut statique/méthode statique.

Attribut statique

L'attribut statique est stocké dans l'espace de classe
1. La déclaration de classe est terminée, l'attribut existe déjà et n'a pas besoin de dépendre de l'objet auquel accéder
2 Il n'y a qu'une seule classe en mémoire, donc il n'y a qu'un seul attribut statique
*/<.>

class Human {
    static public $head = 1;    public function changeHead() {
        Human::$head = 9;
    }    public function getHead() {
        return Human::$head;
    }
}echo Human::$head; //1// 静态属性的访问方法echo &#39;<br >&#39;;// 静态属性只有一个,为所有的对象的共享.$m1 = new Human();$m1->changeHead();$m2 = new Human();$m3 = new Human();echo $m2->getHead(),&#39;<br >&#39;; //9echo $m3->getHead(),&#39;<br >&#39;; //9

Notes orientées objet PHP - 123 Illustration des propriétés statiques et des méthodes statiques

/*

Méthode statique

Méthode ordinaire, stockée dans la classe, une seule copie

Méthode statique, également stockée dans la classe, un seul exemplaire

La différence est :

Les méthodes ordinaires nécessitent des objets pour se mobiliser et doivent lier $this
C'est-à-dire que les méthodes ordinaires doivent avoir des objets et utiliser des objets pour mobiliser

Et les méthodes statiques n'appartiennent pas à la classe, il n'est donc pas nécessaire de lier $this

C'est-à-dire que les méthodes statiques peuvent être mobilisées via le nom de la classe
*/<.>

Notes orientées objet PHP - 123 Illustration des propriétés statiques et des méthodes statiques

class Human2 {
    public $name = &#39;张三&#39;;    static public function cry() {
        echo &#39;5555&#39;;
    }    public function eat() {
        echo &#39;吃饭&#39;;
    }    public function intro() {
        echo $this->name;
    }
}// 此时一个对象都没有Human2::cry();// 下面这个eat是非静态方法,应由对象来调用Human2::eat();/*
报错提示:
Strict standards: Non-static method Human2::eat() should not be called statically
*/echo &#39;<br >&#39;;//Human2::intro();/*
直接报错:
Fatal error: Using $this when not in object context
*/

Notes orientées objet PHP - 123 Illustration des propriétés statiques et des méthodes statiques/*

Résumé :

Comme analysé ci-dessus, en fait, les méthodes non statiques ne peuvent pas être statiquement appelée par les noms de classe
*/

/*
$lisi = new Human2();$lisi->cry(); //5555
Class->Access->La méthode statique peut

Class->Méthode dynamique S'il n'y a pas ceci dans. la méthode, elle n'est sérieusement pas prise en charge. C'est logiquement inexplicable.

Les méthodes dynamiques d'accès aux objets peuvent être

Les méthodes statiques peuvent être

*/
Recommandations associées :

Héritage orienté objet PHP, introduction multiple à l'état et à l'encapsulation

Présentation des principes de conception orientée objet PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn