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

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

怪我咯
怪我咯original
2017-07-05 10:17:481072parcourir

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 df250b2156c434f3390392d09b1c9563 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();

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!

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