源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

php 静态属性和静态方法区别详解

  • 时间:2020-08-19 10:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php 静态属性和静态方法区别详解
[b]静态[/b] public、private、protected [b]静态属性[/b]     在属性或方法前加static关键字,即为静态属性     在实际工作中会有一个类的多个对象,可能会共享一份数据。 解决办法: 1:类常量,不能更改。 示例: [img]http://files.jb51.net/file_images/article/201704/201704092017271.png[/img] 2:有时在共享一份数据后,还要所有的共享此数据的对象还允许更改。 所以就有static 语法: [img]http://files.jb51.net/file_images/article/201704/201704092017272.png[/img] 示例: [img]http://files.jb51.net/file_images/article/201704/201704092017273.png[/img] 提示:静态属性与类常量相似(相同),唯一的区分是类常量不可以更改,静态属性可以更改。访问方法是一样的。 ::        只能访问类常量、静态属性、静态方法     静态属性需要加$,常量名前没有$,所以访问类常量时根本不需要加。 ->        后面不需要加$ [b]静态方法[/b] 方法前加static,即为静态方法 [img]http://files.jb51.net/file_images/article/201704/201704092017274.png[/img] 静态成员的访问:静态属性的访问 公共静态属性在类外访问: 语法:     类名::静态属性名 [img]http://files.jb51.net/file_images/article/201704/201704092017275.png[/img] 类内访问所有的静态属性 [img]http://files.jb51.net/file_images/article/201704/201704092017276.png[/img] [img]http://files.jb51.net/file_images/article/201704/201704092017277.png[/img] [img]http://files.jb51.net/file_images/article/201704/201704092017278.png[/img] [b]静态方法的访问[/b] 类外访问 语法:     静态方法,存在类空间。 类名::方法名();         [img]http://files.jb51.net/file_images/article/201704/201704092017279.png[/img] 类内访问: 语法:     self::方法名(); [img]http://files.jb51.net/file_images/article/201704/2017040920172810.png[/img] [b]静态与非静态的区别:[/b]
静态属性保存在类空间,非静态属性保存在对象空间
静态属性的访问,通过类访问(::),非静态属性的访问通过对象(->)
静态方法的访问,通过类访问(::),
如果一个方法内部不操作属于对象空间的属性,那么将封装成静态方法,通过类来调用,此种方法效率会快很多。
静态方法中不能出现$this
[b]*******[/b] [b]重要提示:[/b]属于类的使用类名或self::,如果属于对象的使用对象名或$this->。(普通方法除外==>虽然普通方法属于类空间,但还是需要使用$this或对象名访问) 魔术方法 php输出语句: echo        一种语法结构     只能输出标量数据类型,对于布尔值false没有输出 print        函数     只能输出标量数据类型,对于布尔值false没有输出 print_r()    不但能输出标量数据类型,还能输出数据,对于布尔值false没有输出 var_dump($v1,$v2);        输出变量更多的信息,主要是给程序员调试程序使用 __tostring();     在对一个对象进行echo时,意味着,将一个结构,转换成字符串。     __tostring()魔术方法,是在由于某种操作欲将一个对象转换为字符串时,由PHP自动执行机制,来调用此方法。     此方法就是为了捕获错误(Fatal Erorr 致命错误),输出一个提示信息 示例: [img]http://files.jb51.net/file_images/article/201704/2017040920172811.png[/img] __clone();     clone();        克隆函数 [img]http://files.jb51.net/file_images/article/201704/2017040920172812.png[/img] [img]http://files.jb51.net/file_images/article/201704/2017040920172813.png[/img] [img]http://files.jb51.net/file_images/article/201704/2017040920172814.png[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部