Maison >développement back-end >tutoriel php >La différence entre les méthodes statiques et les méthodes non statiques des classes en PHP8.0

La différence entre les méthodes statiques et les méthodes non statiques des classes en PHP8.0

WBOY
WBOYoriginal
2023-05-14 08:13:351342parcourir

Avec le développement continu de la technologie Internet, PHP, en tant que langage de développement largement utilisé, est également constamment mis à jour et itéré. Dans la dernière version de PHP8.0, il y a de nouveaux changements dans la différence entre les méthodes statiques et les méthodes non statiques des classes. Cet article présentera en détail la différence entre les méthodes statiques et les méthodes non statiques des classes en PHP8.0.

1. Méthodes statiques des classes

Les méthodes statiques des classes n'ont pas besoin d'instancier les objets lorsqu'elles sont utilisées. Elles peuvent être appelées directement en utilisant le nom de la classe et le nom de la méthode. Version .0 Dans , la façon dont les méthodes statiques des classes sont définies a également subi quelques changements par rapport à avant. Dans les versions précédentes, définir une méthode statique nécessitait d'ajouter le mot-clé "static" avant le corps de la méthode, mais cela n'est pas obligatoire dans PHP8.0. En d'autres termes, les méthodes statiques des classes en PHP8.0 peuvent être utilisées avec des méthodes non statiques. . Définissez-le de la même manière.

Les méthodes statiques d'une classe peuvent être appelées via les noms de classe et d'objet, mais les membres et méthodes non statiques ne sont pas accessibles. Dans le même temps, étant donné que les méthodes statiques d'une classe ne nécessitent pas d'instanciation d'objets, vous pouvez utiliser des mots-clés tels que self, static et parent pour faire référence aux membres et aux méthodes de la classe.

Ce qui suit est un exemple de code simple qui démontre l'utilisation des méthodes statiques d'une classe :

class Test {
    public static $name = 'PHP8.0';
    
    public static function printName() {
        echo self::$name;
    }
}

// 调用类的静态方法
Test::printName(); // 输出 PHP8.0

2. Méthodes non statiques d'une classe

#🎜 🎜# Les méthodes non statiques d'une classe doivent être appelées en instanciant l'objet, et les membres et méthodes statiques de la classe sont accessibles. Dans PHP8.0, par rapport aux versions précédentes, la façon dont les méthodes non statiques d'une classe sont définies n'a pas changé.

Ce qui suit est un exemple de code simple qui démontre l'utilisation de méthodes non statiques d'une classe :

class Person {
    public $name;
    
    public function setName($name) {
        $this->name = $name;
    }
    
    public function getName() {
        echo $this->name;
    }
}

// 实例化对象
$person = new Person();

// 调用类的非静态方法
$person->setName('Tom');
$person->getName(); // 输出 Tom

3 Attributs statiques d'une classe

#🎜. 🎜# En plus des méthodes statiques et des méthodes non statiques des classes, les attributs statiques des classes sont également introduits dans PHP8.0. Dans les versions précédentes, l'utilisation de propriétés statiques nécessitait une déclaration à l'aide du mot-clé "static" dans la définition de la classe, mais cela n'est pas obligatoire dans PHP8.0. En d'autres termes, elle peut être déclarée de la même manière que les propriétés non statiques. Dans le même temps, étant donné que les propriétés statiques de la classe suivent la classe, elles peuvent être lues et modifiées à n'importe quel endroit sans instancier l'objet.

Ce qui suit est un exemple de code simple qui démontre l'utilisation des propriétés statiques d'une classe :

class User {
    public static $count = 0;
    
    public function __construct() {
        self::$count++;
    }
    
    public static function getCount() {
        echo self::$count;
    }
}

// 创造对象
$newUser1 = new User();
$newUser2 = new User();

// 调用类的静态方法,获取对象数量
User::getCount(); // 输出 2

4. Résumé

En résumé, le La différence entre les méthodes statiques et les méthodes non statiques des classes dans PHP8.0 n'a pas beaucoup changé, seule la manière de définir a changé. Dans le même temps, PHP8.0 a ajouté des attributs statiques de classes pour nous faciliter le stockage et le partage de données sans instancier d'objets. Dans le développement réel, vous devez choisir d'utiliser des méthodes statiques, des méthodes non statiques ou des attributs statiques de classe en fonction de la situation spécifique pour obtenir l'effet optimal.

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