"), opérateur d'analyse de plage (c'est-à-dire double deux-points "::"), mais je pense que c'est la même chose que OO en langage C#."/> "), opérateur d'analyse de plage (c'est-à-dire double deux-points "::"), mais je pense que c'est la même chose que OO en langage C#.">

Maison  >  Article  >  développement back-end  >  Explication détaillée des mots-clés statiques phpOO et des exemples de constantes de classe

Explication détaillée des mots-clés statiques phpOO et des exemples de constantes de classe

伊谢尔伦
伊谢尔伦original
2017-06-29 09:18:581085parcourir

Quand je n'avais rien à faire, j'ai juste cherché des informations sur OO en PHP Modificateurs de contrôle d'accès, self, parent, const, static sont la clé. mots. mots, flèche opérateur (également appelé ainsi dans le livre... c'est-à-dire "->"), opérateur d'analyse de plage (c'est-à-dire double deux-points "::"), mais Je pense que c'est un peu la même chose que OO en langage C#, et c'est facile à comprendre, mais il vaut mieux y jeter un œil et clarifier les idées OO en PHP.

--------------------------------------------- ---------------------------------------------
Déclarer statique membres et méthodes de classe, de sorte qu'il ne nécessite pas d'instance de la classe. Une déclaration d'un membre statique n'est pas accessible via une instance d'un objet de classe (bien qu'une méthode statique le puisse).
Les déclarations statiques doivent venir après les déclarations de visibilité. Pour des raisons de compatibilité avec PHP 4, si aucune visibilité n'est déclarée, alors les membres et méthodes seront traités comme s'ils avaient été déclarés publics.
Puisque les méthodes statiques peuvent appeler des instances non-objets, la pseudo variable $this ne peut pas être utilisée dans les méthodes déclarées comme statiques.
En fait, le formulaire d'appel de la méthode statique est déterminé au moment de la compilation. Lorsque vous utilisez un nom de classe qui doit être déclaré, la méthode est une identification complète et aucune règle d'héritage ne s'applique. Cette approche est pleinement valable lors de l'utilisation de noms de classe qui doivent être déclarés, et il n'existe aucune règle pour l'utilisation de l'héritage.
Si self a été déclaré, alors self est interprété par la classe à laquelle il appartient actuellement. Les règles de succession ne s'appliquent pas non plus. Les propriétés statiques ne sont pas accessibles à partir de méthodes non statiques via l'opérateur fléché ->., ce qui générera un avertissement de niveau E_STRICT.

Le code est le suivant :

<?php
class Foo
{   public static $my_static=&#39;foo&#39;;
    public function staticValue(){   return self::$my_static;   }
}
class Bar 
extends
 Foo
{   public function fooStatic(){   return parent::$my_static;   }
}
print Foo::$my_static."/n";
$foo = new Foo();
print $foo->staticValue()."/n";
print $foo->my_static."/n";// Undefined "Property" my_static 
// $foo::my_static is not possible
print Bar::$my_static."/n";
$bar = new Bar();
print $bar->fooStatic()."/n";
?>

Le code est le suivant :

//静态方法实例(Static method example) 
<?php
class Foo
{   public static function aStaticMethod() {    }
}
Foo::aStaticMethod();
?>

peut être défini dans chaque classe de base. La constante la maintient constante. Une constante est différente d'une variable ordinaire dans le sens où vous n'utilisez pas le symbole $ pour la déclarer ou l'utiliser. Tout comme les membres statiques, une valeur constante n'est pas accessible via une instance d'un objet (utilisez plutôt $object::constant. La valeur constante doit être une constanteexpression, pas une variable, un membre d'un). classe, Le résultat d’une expression mathématique ou d’un appel de fonction.

<?php
class MyClass
{   const constant = &#39;constant value&#39;;
    function showConstant() {   echo  self::constant."/n";   }
}
echo MyClass::constant."/n";
$class = new MyClass();
$class->showConstant();// echo $class::constant; is not allowed
?>

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