资源描述:
《php中静态类与静态变量用法的区别分析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解php中静态类与静态变量用法的区别分析 static是定义一个静态对象或静态变量,关于static定义的变量或类方法有什么特性我们看完本文章的相关实例后就见分晓了. 1.创建对象$object=newClass(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问. 2.直接调用类方法/变量:class::attribute/functi
2、on,无论是静态/非静态都可以,但是有前提条件. A.如果是变量,需要该变量可访问. B.如果是方法,除了该方法可访问外,还需要满足. ①如果是静态方法,没有特殊条件. ②如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题. 然后我们再看一下使用$object->…和使用class::…都有什么区别: 1.使用$object->…,需要执行构造函数创建对象. 2.使用class::…调用静态方法/变量,不需要执行构造函数创建对象. 3.使用class::…
3、对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解调用非静态方法/变量,也不需要执行构造函数创建对象. 然后奇怪的地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢? 静态static:声明类成员或方法为static,就可以不实例化类而直接访问,不能通过一个对象来访问其中的静态成员(静态方法除外),静态
4、成员属于类,不属于任何对象实例,但类的对象实例都能共享. 例子,代码如下: 代码如下: ClassPerson{ //定义静态成员属性 publicstatic$country="中国"; //定义静态成员方法 publicstaticfunctionmyCountry(){ //内部访问静态成员属性 echo"我是".self::$country."人"; } } classStudentextendsPerson{ functionstudy(){对党的认识也有了进一步的提高。才真正体会到了中国共
5、产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 echo"我是".parent::$country."人"; } } //输出成员属性值 echoPerson::$country."";//输出:中国 $p1=newPerson(); //echo$p1->country;//错误写法 //访问静态成员方法 Person::myCountry();/
6、/输出:我是中国人 //静态方法也可通过对象访问: $p1->myCountry(); //子类中输出成员属性值 echoStudent::$country."";//输出:中国 $t1=newStudent(); $t1->study();//输出:我是中国人 ?> 运行该例子,输出: 中国 我是中国人对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历
7、程,对党的性质、宗旨、任务等基本知识有了进一步的了解 我是中国人 中国 我是中国人 小结:在类内部访问静态成员属性或者方法,使用self::(注意不是$slef),代码如下: 代码如下: slef::$country slef::myCountry() 在子类访问父类静态成员属性或方法,使用parent::(注意不是$parent),代码如下: 代码如下: parent::$country parent::myCountry() 外部访问静态成员属性和方法为类名/子类名::,代码如下
8、:对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,