Maison développement back-end tutoriel php php中静态类与静态变量用法的区别分析_php技巧

php中静态类与静态变量用法的区别分析_php技巧

May 16, 2016 pm 08:25 PM
php 区别 变量 用法 statique

本文实例分析了php中静态类与静态变量用法的区别。分享给大家供大家参考。具体分析如下:

static是定义一个静态对象或静态变量,关于static 定义的变量或类方法有什么特性我们看完本文章的相关实例后就见分晓了.

1. 创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问.

2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以,但是有前提条件.

A. 如果是变量,需要该变量可访问.

B. 如果是方法,除了该方法可访问外,还需要满足.

① 如果是静态方法,没有特殊条件.

② 如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题.

然后我们再看一下使用$object->… 和使用class::… 都有什么区别:

1. 使用$object->… ,需要执行构造函数创建对象.

2. 使用class::… 调用静态方法/变量,不需要执行构造函数创建对象.

3. 使用class::… 调用非静态方法/变量,也不需要执行构造函数创建对象.

然后奇怪的地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢?

静态static:声明类成员或方法为 static,就可以不实例化类而直接访问,不能通过一个对象来访问其中的静态成员(静态方法除外),静态成员属于类,不属于任何对象实例,但类的对象实例都能共享.

例子,代码如下:

复制代码 代码如下:
Class Person{
    // 定义静态成员属性
    public static $country = "中国";
    // 定义静态成员方法
    public static function myCountry() {
        // 内部访问静态成员属性
        echo "我是".self::$country."人
";
    }
}
class Student extends Person {
    function study() {
        echo "我是". parent::$country."人
";
    }
}
// 输出成员属性值
echo Person::$country."
";  // 输出:中国
$p1 = new Person();
//echo $p1->country;   // 错误写法
// 访问静态成员方法
Person::myCountry();   // 输出:我是中国人
// 静态方法也可通过对象访问:
$p1->myCountry();
 
// 子类中输出成员属性值
echo Student::$country."
"; // 输出:中国
$t1 = new Student();
$t1->study();    // 输出:我是中国人
?>

运行该例子,输出:
中国
我是中国人
我是中国人
中国
我是中国人

小结:在类内部访问静态成员属性或者方法,使用 self::(注意不是 $slef),代码如下:

复制代码 代码如下:
slef:: $country

slef:: myCountry()

在子类访问父类静态成员属性或方法,使用 parent::(注意不是 $parent),代码如下:

复制代码 代码如下:
parent:: $country

parent:: myCountry()

外部访问静态成员属性和方法为 类名/子类名::,代码如下:

复制代码 代码如下:
Person::$country

Person::myCountry()

Student::$country

但静态方法也可以通过普通对象的方式访问.
例子,声明静态变量,代码如下:

复制代码 代码如下:
   function foo(){
   static $int = 0;// correct
   static $int = 1+2;   // wrong (as it is an expression)
   static $int = sqrt(121); // wrong (as it is an expression too)
   $int++;
   echo $int;
   }
?>

例子,使用静态变量的例子,代码如下:
复制代码 代码如下:
   function Test()
   {
   static $w3sky = 0;
   echo $w3sky;
   $w3sky++;
   }
?>

现在,每次调用 Test() 函数都会输出 $w3sky 的值并加一.

静态变量也提供了一种处理递归函数的方法,递归函数是一种调用自己的函数,写递归函数时要小心,因为可能会无穷递归下去,必须确保有充分的方法来中止递归,一下这个简单的函数递归计数到 10,使用静态变量 $count 来判断何时停止.

例子,静态变量与递归函数,代码如下:

复制代码 代码如下:
   function Test()
   {
   static $count = 0;
   
   $count++;
   echo $count;
   if ($count    Test();
   }
   $count--;
   }
?>

注:静态变量可以按照上面的例子声明,如果在声明中用表达式的结果对其赋值会导致解析错误.

希望本文所述对大家的php程序设计有所帮助。

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Y a-t-il une différence entre le bitcoin sud-coréen et le bitcoin domestique? Y a-t-il une différence entre le bitcoin sud-coréen et le bitcoin domestique? Mar 05, 2025 pm 06:51 PM

Le boom des investissements Bitcoin continue de se réchauffer. Bien que la Chine soit autrefois le plus grand marché du Bitcoin, les impacts politiques ont conduit à des restrictions de transaction. Aujourd'hui, la Corée du Sud est devenue l'un des principaux marchés du Bitcoin au monde, obligeant les investisseurs à remettre en question les différences entre elle et son bitcoin national. Cet article effectuera une analyse approfondie des différences entre les marchés du Bitcoin des deux pays. L'analyse des différences entre les marchés de la Corée du Sud et la Chine. Par exemple, fin octobre 2024, le prix du bitcoin en Corée du Sud était autrefois

Quel échange est Nexo? Quel échange est Nexo? Mar 05, 2025 pm 07:39 PM

Nexo: Non seulement c'est un échange de crypto-monnaie, mais aussi votre directeur financier numérique. Il permet aux utilisateurs d'obtenir des prêts en crypto-monnaie en tant que garantie et fournit des services pour gagner des intérêts. Alors que Nexo propose également des capacités d'achat, de vente et de rédemption de crypto-monnaie, son principal activité est la cryptographie. Cet article explorera le modèle d'exploitation et la sécurité de Nexo en profondeur pour fournir aux investisseurs une compréhension plus complète. Le modèle d'exploitation de Nexo a été fondé en 2018 et a son siège à Zug, en Suisse, et est un pionnier dans le domaine de la finance numérique. Il est différent des autres échanges centralisés et se concentre davantage sur la fourniture de services financiers complets. Les utilisateurs peuvent acheter, vendre, échanger des crypto-monnaies sans vendre des actifs et

La différence entre l'éther et le bitcoin quelle est la différence entre l'éther et le bitcoin La différence entre l'éther et le bitcoin quelle est la différence entre l'éther et le bitcoin Mar 19, 2025 pm 04:54 PM

La différence entre Ethereum et Bitcoin est significative. Techniquement, Bitcoin utilise POW et Ether est passé de Pow à Pos. La vitesse de trading est lente pour le bitcoin et Ethereum est rapide. Dans les scénarios d'application, Bitcoin se concentre sur le stockage des paiements, tandis que Ether prend en charge les contrats intelligents et les DAPP. En termes d'émission, le montant total du bitcoin est de 21 millions et il n'y a pas de montant total fixe de pièces d'éther. Chaque défi de sécurité est disponible. En termes de valeur marchande, le bitcoin se classe en premier et les fluctuations des prix des deux sont importantes, mais en raison de caractéristiques différentes, la tendance des prix d'Ethereum est unique.

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelle est la différence entre le pain aux haricots et la profondeur Quelle est la différence entre le pain aux haricots et la profondeur Mar 12, 2025 pm 01:24 PM

La différence de base entre le pain de haricot et Deepseek est la précision et la complexité de la récupération. 1. Doubao est basé sur la correspondance des mots clés, simple et directe, avec un faible coût, mais une faible précision, et ne convient que pour des données structurées; 2. Deepseek est basé sur l'apprentissage en profondeur, peut comprendre la sémantique, a une précision élevée, mais un coût élevé et convient aux données non structurées. Le choix final dépend du scénario d'application et des limitations de ressources.

La mentalité d'investissement en crypto est très importante! Comment éviter les inquiétudes inutiles et prendre les décisions correctes? La mentalité d'investissement en crypto est très importante! Comment éviter les inquiétudes inutiles et prendre les décisions correctes? Mar 05, 2025 pm 07:24 PM

Peur, incertitude et doute de l'investissement en crypto: comment prendre des décisions éclairées? De nombreux investisseurs de crypto sont confrontés à des craintes de «c'est le dernier cycle», ainsi que des préoccupations concernant la durée du marché haussier, associée à la pression des autres, ce qui conduit ensemble à de mauvaises décisions d'investissement. Cet article explorera comment surmonter ces défis et faire des choix d'investissement plus intelligents. Risque potentiel: distraction: chasser aveuglément les points chauds et ignorer la valeur des actifs centraux. Pessimisme et hésitation: L'incertitude conduit à un manque de confiance, à l'incapacité de tenir longtemps et même à la sortie du marché. Manque de croyance: manque de recherches approfondies sur les projets et ne peut pas faire face à la volatilité du marché. Manque de stratégies de bénéfice: nettoyer les positions tôt en raison de la peur des retraits, manquant des rendements potentiels. Stratégies d'adaptation: 1. Focus sur les zones centrales:

Introduction détaillée à l'heure d'ouverture et de clôture d'Ouyi Okex Introduction détaillée à l'heure d'ouverture et de clôture d'Ouyi Okex Mar 18, 2025 pm 01:06 PM

La plate-forme de trading d'actifs numériques OUYI OKEX est différente du marché traditionnel des valeurs mobilières. Cependant, la plate-forme annoncera à l'avance et ajustera temporairement les délais de négociation ou les règles en cas de mises à niveau de maintenance du système ou d'événements spéciaux sur le marché (tels que des conditions de marché extrêmes provoquant de graves fluctuations du marché), telles que la suspension de négociation ou de modification des règles d'ouverture de la position de trading de contrats. Par conséquent, il est recommandé que les utilisateurs accordent une attention particulière aux annonces de plate-forme et aux tendances du marché, saisissent les opportunités de négociation et font du bon travail dans la gestion des risques. Ce n'est qu'en comprenant que l'heure de négociation et les ajustements de règle d'Okex que vous pouvez être à l'aise sur le marché des montures numériques.

Qu'est-ce que Binance Smart Arbitrage? Binance Smart Arbitrage Beginners 'Utiliser les étapes Qu'est-ce que Binance Smart Arbitrage? Binance Smart Arbitrage Beginners 'Utiliser les étapes Mar 05, 2025 pm 06:42 PM

Binance Smart Arbitrage: un guide pour assouplir le revenu passif américain de l'arbitrage Smart Binance USDT est un outil d'arbitrage automatisé fourni par la plate-forme Binance. Cet article expliquera ses principes de fonctionnement en détail et fournira un guide aux débutants. 1. Qu'est-ce que Binance Smart Arbitrage? Binance Smart Arbitrage appartient au produit "Gending Advanced Gending" de Binance, qui implémente automatiquement la stratégie d'arbitrage à terme et au point. Les utilisateurs n'ont qu'à sélectionner la monnaie et à investir dans l'USDT, et le système achètera automatiquement sur le marché au comptant et vendra des actifs équivalents sur le marché perpétuel des contrats pour les risques de prix de couverture, et le rendement final provient du taux de frais de capital. 2. Explication détaillée du principe des futurs et de l'arbitrage au point. exemple

See all articles