浅析PHP静态方法与非静态方法的区别 浏览:346

在PHP编程中,static关键字声明与类相关的属性或方法,而不是与类的特定实例相关联。因此,这些属性或方法也称为类属性或类方法。

如果允许访问控制权限,则不必创建类对象,并直接使用带有两个冒号名称的类名:调用。

静态关键字可以用来修改变量和方法。

如果没有实例化,您可以直接访问类中静态属性和静态方法。

静态的属性和方法只能访问静态的属性和方法,不能访问非静态属性和方法。

静态的属性,内存中只有一个副本,所有实例都是共享的。

使用::访问当前类静态成员的关键字。

类的所有实例,公共类中的静态属性。

即使内存中有多个实例,也只有一个静态属性。

例如,设置计数器计数器属性,设置私有和静态修饰符。

这样,外部世界不直接访问$计数属性。程序的结果也看到多个实例使用相同的静态计数属性。


< PHP
类用户
{
私有静态值= 0;所有用户的日志记录。
公共功能__construct(){
自我::$ = =:1;
}
公共职能getCount(){
返回自我;
}
公共功能__destruct(){
自:$ = =:$ 1;
}
}
新用户user1 = $();
$ user2 =新用户();
用户2美元=新用户();
回声现在这里有。$ user1 -> getCount()。用户;

unset($ user3);
回声现在这里有。$ user1 -> getCount()。用户;
>


二、静态属性直接调用

静态属性可以直接使用,而不必实例化,并且可以在没有创建类时直接使用。

使用方式:

类名::静态属性名


< PHP
数学课堂
{
公共静态$ = 3.14;
}
半径为3 /花园区域。
$ r=3;
半径的区域是$ ;
回声数学;

我认为3.14/这里不够准确,我把它定得更准确了。
数学::$ = 3.141592653589793;
半径的区域是$ ;
回声数学;
>


静态属性可以在没有创建类的情况下直接使用。静态属性是什么时候在内存中创建的

PHP中没有看到相关信息。

指在java的概念来解释,它也应该是通用的。静态属性和方法时所创建的类称为。

三,静态方法

静态方法不需要实例化类,可以直接使用。

使用的方法是类名::静态方法名

继续编写数学计算的数学类。

设计一个方法来计算它的最大值,因为它是一个数学运算,所以不需要实例化这个类。如果使用这种方法,就会更方便。

这是一个用来演示静态方法的类,max()函数在PHP中给出比较值。


< PHP
数学课堂
{
公共静态函数max($ num1,num2美元){
返回num1 >美元美元美元num2 num1:num2;
}
}
$ = 99;
$ = 88;
显示最大值为$和$ ;

回声数学::马克斯($ A,B);



$ = 99;
$ = 100;
显示最大值为$和$ ;

回声数学::马克斯($ A,B);
>


静态方法如何调用静态方法

在第一个例子中,当静态方法调用其他静态方法时,使用自::




< PHP
以实现最大的 / 数学。
数学课堂
{
公共静态函数max($ num1,num2美元){
返回num1 >美元美元美元num2 num1:num2;
}
公共静态函数MAX3(美元美元美元num1,num2,小键盘数字3){
num1 =自我::马克斯美元($ num1,num2美元);
num2 =自我::马克斯美元($ num2,小键盘数字3美元);
num1 =自我::马克斯美元($ num1,num2美元);
返回num1;
}
}
$ = 99;
$ = 77;
$=88;
显示$ A中的最大值;

回波数学::MAX3($,$,$ C);
>


静态方法调用静态属性。

使用::调用这个类的静态属性。




< PHP

类圆
{
公共静态$ = 3.14;
公共静态函数circleacreage(r){
返回:自己:$ PI;
}
}
$ r=3;
半径为r的圆的面积为。圈::circleacreage(r);
>


静态方法不能调用非静态属性.不能使用:非静态属性被称为。




< PHP
这是错误的方法。
类圆
{
公共$ pi = 3.14;
公共静态函数circleacreage(r){
返回:;
}
}
$ r=3;
半径为r的圆的面积为。圈::circleacreage(r);
>


也可以不使用$来获取非静态属性的值。

静态方法调用非静态方法

在PHP5中,非静态方法不能使用美元的身份在一个静态方法调用。


< PHP
以实现最大的 / 数学。
数学课堂
{
公共函数max($ num1,num2美元){
回声坏;
返回num1 >美元美元美元num2 num1:num2;
}
公共静态函数MAX3(美元美元美元num1,num2,小键盘数字3){
美元美元-> num1 = max($ num1,num2美元);
美元美元-> num2 =最大($ num2,小键盘数字3美元);
美元美元-> num1 = max($ num1,num2美元);
返回num1;
}
}
$ = 99;
$ = 77;
$=188;
显示$ A中的最大值;

回波数学::MAX3($,$,$ C); / /同样的错误
>


当类中的非静态方法由自己调用时:系统自动将方法转换为静态方法。




< PHP
以实现最大的 / 数学。
数学课堂
{
公共函数max($ num1,num2美元){
返回num1 >美元美元美元num2 num1:num2;
}
公共静态函数MAX3(美元美元美元num1,num2,小键盘数字3){
num1 =自我::马克斯美元($ num1,num2美元);
num2 =自我::马克斯美元($ num2,小键盘数字3美元);
num1 =自我::马克斯美元($ num1,num2美元);
返回num1;
}
}
$ = 99;
$ = 77;
$=188;
显示$ A中的最大值;

回波数学::MAX3($,$,$ C);
>


以上分析是PHP静态方法与非静态方法的区别。这是萧边对你分享的全部内容。我希望能给你一个参考,希望你能支持它。

标签: 电脑应用

推荐文章1
广告