Heim > Backend-Entwicklung > PHP-Tutorial > [Object-Oriented Bootcamp] 7-Statics-and-Constants

[Object-Oriented Bootcamp] 7-Statics-and-Constants

WBOY
Freigeben: 2016-06-23 09:15:08
Original
910 Leute haben es durchsucht

你可能会在网络上看到一些文章,它提到静态是有害的。他们是什么意思呢?这是真的么?好,这节让我们来谈谈这个。

通过例子学习

改造前,动态调用如下:

<?php class Math{  public function add(){    return array_sum(func_get_args());  }} $math = new Math; var_dump($math->add(1, 2, 3)); //结果int(6) 
Nach dem Login kopieren

从原始动态改造后,静态调用如下:

<?php class Math{  public static function add(...$nums){ //静态方法    return array_sum($nums);  }} var_dump(Math::add(1, 2, 3, 4)); //结果int(10) 
Nach dem Login kopieren

改造为静态方法后,直接用类名调用即可。

再来个例子

静态变量的使用:

<?php class Person {   public static $age = 1;   public function haveBirthday(){    static::$age += 1;  }} $joe = new Person();$joe->haveBirthday();$joe->haveBirthday(); $jane = new Person();$jane->haveBirthday(); echoPerson::$age; //非2,结果为4。$age变量为静态,共享。 
Nach dem Login kopieren

const 标识符:

<?php class BankAccount {  // const标识不改变的值,用大写字符表示 ;类似 private static  const TAX = 0.09; } echoBankAccount::TAX; 
Nach dem Login kopieren

Laravel中使用

Illuminate\Support 中 Str 类大量使用了 static 静态变量和静态方法,例如:

echoStr::lower("FOOBAR"); //结果:foobarechoStr::camel(); 
Nach dem Login kopieren

参考链接:

* PHP5: const vs static

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage