Maison > développement back-end > tutoriel php > Plusieurs notes sur l'utilisation des méthodes statiques en PHP

Plusieurs notes sur l'utilisation des méthodes statiques en PHP

怪我咯
Libérer: 2023-03-12 17:48:02
original
1163 Les gens l'ont consulté

Cet article présente principalement plusieurs précautions pour l'utilisation de la méthode statique en PHP. Il décrit également les techniques d'appel des méthodes statiques PHP et d'analyse des points sujets aux erreurs sous la forme de. exemples. Les amis peuvent se référer à

Cet articleexemples présente plusieurs précautions courantes pour l'utilisation de méthodes statiques en PHP. Partagez-le avec tout le monde pour votre référence. Les méthodes spécifiques sont les suivantes :

1. Même si la méthode dans la classe n'est pas déclarée avec static, mais qu'elle n'utilise pas de variables membres de classe modifiables, elle l'est toujours. disponible en externeOpérateur :: pour appeler ;2

La valeur de $this dans une méthode appelée statiquement (à l'aide de l'opérateur ::) est déterminée par le contexte. quand il s'appelle Déterminé ! Au lieu de définir sa classe

!!Par exemple, le code suivant :

Quel sera le résultat de ce code je le pensais ? serait normal_v de TestClass1
STATIC_V de TestClass1, le test a révélé que j'avais réellement tort, la sortie correcte est :
<?php 
class TestClass1 
{ 
  public $normal_v = &#39;normal_v from TestClass1&#39;; 
  public static $STATIC_V = &#39;STATIC_V from TestClass1&#39;; 
  public function test_func1() 
  { 
    echo $this->normal_v.&#39;<br />&#39;.self::$STATIC_V; 
  } 
} 
class TestClass2 
{ 
  public $normal_v = &#39;normal_v from TestClass2&#39;; 
  public static $STATIC_V = &#39;STATIC_V from TestClass2&#39;; 
  public function test_func2() 
  { 
    TestClass1::test_func1(); 
  } 
} 
$t2 = new TestClass2(); 
$t2->test_func2();
Copier après la connexion

normal_v de TestClass2

STATIC_V de TestClass1


Explication : test_func1() Bien qu'elle soit définie dans TestClass1, elle est appelée dans TestClass2, et sa variable interne $this est déterminée par TestClass2 !

En fait, la relation entre ces deux classes devrait être une "association bidirectionnelle ".

Les amis intéressés peuvent tester et exécuter l'exemple de cet article, je pense qu'il y aura de nouveaux gains !

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal