php类中的$this,static,final,const,self这几个关键字使用方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-06-29 21:51:11 浏览: 评论:0
php类中的$this,static,final,const,self这几个关键字在项目中经常会用的到,通过本文给大家分享this,static,final,const,self这几个关键字使用方法,对此感兴趣的朋友一起学习吧。
本篇文章主要分项了一下关于php类中的$this,static,final,const,self这几个关键字使用方法。
$this
$this表示当前实例,在类的内部方法访问未声明为const及static的属性时,使用$this->value='phpernote';的形式。常见用法如:
$this->属性
$this->方法
举例如下:
- <?php
- class MyClass{
- private $name;
- public function __construct($name){
- $this->name=$name;
- }
- public function getname(){
- return $this->name;
- }
- public function printName(){
- echo $this->getname();
- }
- }
- $myclass= new MyClass("I Like www.jb51.net");
- $myclass->printName();//输出:I Like www.jb51.net
- ?>
在类里面调用当前类的属性和方法有三种方法,分别是self、parent、$this,这三个关键字的区别是:self用来指向当前的类;parent用于指向当前类的父类,可以使用该关键字调用父类的属性和方法;$this用来在类体内调用自身的属性和方法。
static
关键字可以是self(在类内部调用静态成员时所使用)静态成员所在的类名(在类外调用类内部的静态成员时所使用)
声明一个静态变量如下:
static $val='';
只存在于函数作用域的变量,函数执行之后变量的值不会丢失,只会初始化一次,初始化静态变量不能使用表达式,不用全局变量代替是因为全局变量会被所有函数访问容易造成维护不宜。
在类中使用static有两种主要用途、定义静态成员和定义静态方法。静态成员只保留一个变量的值,这个值对所有实例都是有效的,如下:
- <?php
- class MyObject{
- public static $myStaticVar=0;
- function myMethod(){
- self::$myStaticVar+=2;
- echo self::$myStaticVar;
- }
- }
- $instance1=new MyObject();
- $instance1->myMethod();
- $instance2=new MyObject();
- $instance2->myMethod();
结果将分别打印2、4,代码如下
- <?php
- class Book{
- static $num=0;
- public function showMe(){
- echo"您是滴".self::$num."位访客";
- self::$num++;
- }
- }
- $book1=new Book();
- $book1->showMe();
- echo"<br>";
- $book2=new Book();
- $book2->showMe();
- echo"<br>";
- echo"您是滴".Book::$num."位访客";
- ?>
结果将是:
您是滴0位访客
您是滴1位访客
您是滴2位访客
另外需要注意的是如果类的方法是static的,他所访问的属性也必须是static的。
final
PHP final关键字可以修饰类同样可以修改类中的方法,但它们的作用是差不多的,即如果你使用了final关键字来修饰了,那么这个被修饰的类或者方法将不能被扩展或者继承。你只能老老实实去引用它。如果你在类前面使用了final,这就是说明这个类不能使用继承;如果你在方法前使用了PHP final关键字,这就是说明这个方法不能被覆盖。道理就是这么简单,让我们也看个简单的示例吧。
最终的类和方法,不能继承,该关键字修饰的方法不能被重写。一般用法如下:
- final class MyClass{//此类将不允许被继承
- final function fun1(){......}//此方法将不允许被重写
- }
例:
- <?PHP
- final class BaseClass {
- public function test() {
- echo "BaseClass::test() calledn";
- }
- final public function moreTesting() {
- echo "BaseClass::moreTesting() calledn";
- }
- }
- class ChildClass extends BaseClass {
- public function moreTesting() {
- echo "ChildClass::moreTesting() calledn";
- }
- }
- // Results in Fatal error: Cannot override final method BaseClass::moreTesting()
- ?>
const
在类的内部方法访问已经声明为const及static的属性时,需要使用self::$name的形式调用。举例如下:
- <?php
- class clss_a{
- private static $name="static class_a";
- const PI=3.14;
- public $value;
- public static function getName(){
- return self::$name;
- }
- //这种写法有误,静态方法不能访问非静态属性
- public static function getName2(){
- return self::$value;
- }
- public function getPI(){
- return self::PI;
- }
- }
注意const属性的申明格式是const PI=3.14,而不是const $PI=3.14。
self
self表示类本身,指向当前的类。通常用来访问类的静态成员、方法和常量。
Tags: $this static final const self
- 上一篇:PHP异常处理Exception类
- 下一篇:php生成curl命令行的方法
相关文章
- ·PHP中$this和$that指针使用实例(2021-05-05)
- ·PHP static 静态变量和属性方法使用说明(2014-07-15)
- ·php中static静态类与static 静态变量用法区别(2014-08-29)
- ·php静态变量define,static,const(2014-09-18)
- ·PHP Static延迟静态绑定用法分析(2019-11-17)
- ·PHP static局部静态变量和全局静态变量总结(2020-09-27)
- ·PHP Static延迟静态绑定用法分析(2021-07-14)
- ·详解php用static方法的原因(2021-10-29)
- ·PHP中Static(静态)关键字功能与用法实例分析(2021-11-15)
- ·php示例详解Constructor Prototype Pattern 原型模式(2021-06-20)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)