`

PHP静态变量、成员、方法 学习

阅读更多
1、静态变量是只存在于函数作用域中的变量,注释:执行后这种变量不会丢失(下次调用这个函数时,变量仍会记着原来的值)。
定义静态变量的方法只需要在变量前面加上static关键字即可。
2、静态成员是一种类变量,可以把它看成属于整个类而不是类的某个实例。与一般实例变量不同之处:静态成员只保留一个变量值,而这个变量值对所有的实例是有效的(所有的实例都共享这个成员)。
3静态方法:静态方法的规则和静态变量是相同。使用static关键字可以将方法标记为静态方法,通过类的名称和作用域限定符(::)(paamayim nekudotayim)可以访问到静态方法.
<?php
	var_dump("Hellow word!");
	/**
	 * 测试例子
	*/
	class myObject{
		public static $myStaticVar = 0; //声明一个共用静态的变量myStaticVar赋初始值0
		function myMethod(){
			self::$myStaticVar += 2;
			echo self::$myStaticVar . "\n";
		}
		static function myMethod2(){
			self::$myStaticVar += 2;
			echo self::$myStaticVar . "\n";
		}

	}
	
	class MyOtherObject extends myObject{
		public static $myStaticVar = 0; //重写了myStaticVar
		function myOtherMethod(){
			echo parent::$myStaticVar ."\n";//parent访问夫类
			echo self::$myStaticVar . "\n";//self访问当前类
		}
	}
	
	$instance1 = new myObject(); //实例化myObject
	$instance1->myMethod();
	$instance2 = new myObject();
	$instance2->myMethod();
	$instance3 = new MyOtherObject();
	$instance3->myOtherMethod();
	
	echo myObject::$myMethod2();//
?>
分享到:
评论

相关推荐

    php中静态类与静态变量用法类.zip

    分析了php中静态类与静态变量用法类的区别,创建对象$object = new Class(),然后使用”-&gt;”调用:$object-&gt;attribute/function,前提是该变量/方法可访问。直接调用类方法量:class::attribute/function,无论是静态/...

    静态库和动态库里的全局变量(或类的静态成员变量)共享和独立的问题

    在A中定义有全局变量X(或类的静态成员变量),则在动态库B中访问的X,与可执行程序C中访问的X是同一个变量还是两个不同的变量? 答案:是两个不同的变量。 2. 工程中包含动态库A,动态库B,可执行程序C。C依赖于A和...

    PHP静态成员变量和非静态成员变量详解

    数据成员可以分静态变量、非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态...

    PHP静态成员变量

    可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员. 1、...

    php 静态变量的初始化

    } } 但是php中并没有一个类似java中的静态构造器/静态块的东西,就没有合适的时机对其进行初始化了。 对于共有的成员还有办法解决,例如: class A { static public $child; } A::$child = new B()

    PHP使用函数静态变量实现指定迭代次数的方法

    本文实例讲述了PHP使用函数静态变量实现指定迭代次数的方法。分享给大家供大家参考,具体如下: 在PHP中,除了类的静态成员属性外,在函数中同样可以利用 static 定义静态变量。从而便捷的完成函数迭代。 例1: &lt...

    PHP使用静态方法的几个注意事项

    1. 即使类中的方法并未用static声明,但其未使用到可改变的类成员变量,在外部仍可用操作符::来调用; 2. 以静态方式(用::操作符)调用的方法中$this的取值是由调用时的上下文决定的!而不是定义他的类!! 例如以下的...

    php中类和对象:静态属性、静态方法

    在PHP中,使用关键字 static 修饰成员属性和成员方法被称为静态属性和静态方法。静态属性和静态方法不需要在类被实例化的情况下可以直接使用。 静态属性 与普通的成员属性不同,静态属性属于类本身而不属于类的任何...

    PHP单例模式数据库连接类与页面静态化实现方法

    本文实例讲述了PHP单例模式数据库连接类与... //数据库连接静态变量 static public $_connectSource; //连接数据库配置,由于前几天学习了PDO,这里就使用PDO private $_dbConfig = array( 'host' =&gt; 'localhost',

    PHP面向对象之旅:深入理解static变量与方法

    static关键字可以用来修饰变量、方法。 不经过实例化,就可以直接访问类中static的属性和static的方法。 static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法。因为静态属性和方法被...

    PHP的变量类型和作用域详解

    局部静态函数变量(函数中声明的static变量),局部静态成员变量(类中声明的 static 属性,被所有类实例共享)局部静态变量只有脚本运行结束才会被自动释放 超全局变量:在一个脚本的任何作用域里都可以被访问,这些都是...

    PHP高级程序设计-模式-框架-测试

    ” ——Amazon.com 目录第一部分 OOP和模式 第1章 抽象类、接口和契约式编程 第2章 静态变量、成员和方法 第3章 单例模式和工厂模式 第4章 异常 第5章 PHP 6中的新特性第二部分 测试和文档编写 第6章 ...

    PHP中Static(静态)关键字功能与用法实例分析

    但在PHP中用 static 关键字来定义静态方法和属性, 也可用于定义静态变量以及后期静态绑定。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈...

    PHP高级程序设计_模式、框架与测试 PDF及源码

    第一部分 OOP和模式 第1章 抽象类、接口和契约式编程 第2章 静态变量、成员和方法 第3章 单例模式和工厂模式 第4章 异常 第5章 PHP 6中的新特性 第二部分 测试和文档编写 第6章 文档编写和编码规范 第7章 反射API ...

    PHP 5.0对象模型深度探索之类的静态成员

    实际上,除了属于一个固定的类并限制访问方式外,类的静态属性非常类似于函数的全局变量。 我们在下例中使用了一个静态属性Counter::$count。它属于Counter类,而不属于任何Counter的实例。你不能用this来引用它,但...

    PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】

    范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。 当在类定义之外引用到这些项目时,要使用类名。 自 PHP 5.3.0 起,...

    PHP高级程序设计_模式、框架与测试

     第2章 静态变量、成员和方法  第3章 单例模式和工厂模式  第4章 异常  第5章 PHP 6中的新特性 第二部分 测试和文档编写  第6章 文档编写和编码规范  第7章 反射API  第8章 测试、部署和持续集成 第...

Global site tag (gtag.js) - Google Analytics