1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Php面向对象?静态成员

Php面向对象?静态成员

时间:2023-06-26 09:31:20

相关推荐

Php面向对象?静态成员

后端开发|php教程

面向对象,成员,静态,php

后端开发-php教程

Php面向对象?静态成员

获取淘宝订单api 源码,ubuntu多dns设置,tomcat7映射端口,关于爬虫人,php字体乱码,天门计算机seo推广哪家好lzw

静态属性

slg源码,vscode自动关闭文件夹,ubuntu语音包,tomcat创建文件,爬虫404原因,php编码软件,重庆seo关键词优化系统,全屏 网站 代码lzw

使用static关键字声明的属性

蜗牛门户 源码,vscode 配置复杂,ubuntu系统网卡命令,配置不了tomcat,执行sqlite脚本,网页在线播放器插件,前端 vue框架怎么用,月光灯爬虫,php 位数,泰州seo 公司,二手商城网站源码,网页字体大小自动代码,共享商城网站模板,手机网页页面模板html源码下载,电脑行业专用管理系统破解版,虚拟币交易程序免费下载lzw

该静态属性,在逻辑上,是定义在类上面的属性。保证一个类,对应一个属性。

例子:

class Student

{

public $stu_id;

public $stu_name;

public static $stu_count = 0;

public function __constuct($id,$name)

{

$this->stu_id = $id;

$this->stu_name = $name;

}

}

访问静态属性:

通过类来访问:在利用静态访问符号(::)

类::成员

例子:

class Student

{

public $stu_id;

public $stu_name;

public static $stu_count = 0;

public function __constuct($id,$name)

{

$this->stu_id = $id;

$this->stu_name = $name;

Student::$stu_count ++;

}

}

::的访问称之为静态访问,->为非静态访问(对象访问)

在访问静态属性时,如果是在类内访问:则可以使用self当前类

例子:

class Student

{

public $stu_id;

public $stu_name;

public static $stu_count = 0;

public function __constuct($id,$name)

{

$this->stu_id = $id;

$this->stu_name = $name;

self::$stu_count ++;

}

}

注意:$this 和 self 的区别

$this 表示的是这个对象,self表示这个类

静态方法

静态方法的逻辑意义,也是定义再类上的方法。同样,调用形式类::

例子:

class Student

{

public $stu_id;

public $stu_name;

public static $stu_count = 0;

public function __constuct($id,$name)

{

$this->stu_id = $id;

$this->stu_name = $name;

self::$stu_count ++;

}

public static function sayCount()

{

echo “run static ”;

}

}

Student::sayCount();

静态方法和非静态方法,的主要区别,在于是否可以接收一个对象的执行环境。

就是是否可以为方法内的$this是否可以被赋值

只有在对象调用方法时,才能将对象执行环境传递到方法内,$this才可以被赋值。

静态方法中无法使用非静态属性。

一个静态方法,只能处理静态数据(静态属性)

例子:

class Student

{

public $stu_id;

public $stu_name;

public static $stu_count = 0;

public function __constuct($id,$name)

{

$this->stu_id = $id;

$this->stu_name = $name;

self::$stu_count ++;

}

public static function sayCount()

{

echo self::$stu_count;

}

}

Student::sayCount();

Php中特殊的方法访问问题:

强调:静态方法应该类来调用,非静态方法应该对象来调用

class C

{

public function f1()

{

echo‘f1

’;

}

public static function f2()

{

echo‘f2

’;

}

}

$o = new C;

$o->f1();

C::f2();

但是:

1. 无论静态还是非静态方法,都可使用类访问:不过如果类静态调用一个非静态方法,会报告一个语法不标准的错误。

2. 区别就在于$this上

只有再使用对象调用非静态方法时,才可以使用方法内的$this.

class C

{

public function f1()

{

echo‘f1

’;

}

public static function f2()

{

echo‘f2

’;

}

}

C::f1();

C::f2();

总结:类的静态方法和非静态方法,类都只保存一份,只是运行时的运行环境不同。只有再使用对象调用非静态方法时,才可以使用方法内的$this.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。