PHP中静态变量与静态变量的差异分析

PHP中静态变量与静态变量的差异分析
本文分析了PHP中静态变量与静态变量的区别,供大家参考,具体分析如下:

静态是静态对象或静态变量、实例变量或静态定义的方法的定义。

1。$ =新类(创建一个对象),然后使用- >调用:对象属性,前提是变量/可访问的方法。

2。直接调用类方法变量:类/属性,既静态又非静态,但有前提条件。

如果它是一个变量,它需要访问变量。

如果它是一种方法,除了可以访问的方法之外,还需要满足它。

(1)如果是静态方法,则没有特殊条件。

其次,如果它是非静态方法,则需要在不使用$的情况下更改该方法,也就是说,不调用静态变量或方法。当然,调用静态变量/方法是没有问题的。

然后让我们看一下对象的用法……然后使用类:……有什么区别:

1。使用对象>……你需要执行构造函数来创建一个对象。

2。使用类::……调用静态方法变量,不需要执行构造函数来创建对象。

三.使用类::……调用一个非静态方法变量,也不需要执行构造函数来创建一个对象。

然后这个奇怪的地方出来了,既然2和3是一样的,静态方法变量的存在有什么意义呢

一个静态变量:声明类成员或方法是静态的,它可以无需实例化的类直接访问,而无法访问静态成员(除了静态方法)通过对象。静态成员属于类,不属于任何对象实例,但可以共享类的对象实例。

例如,代码如下所示:

复制代码代码如下:< PHP

类人{

定义静态成员属性

公共静态$国=中国;

静态成员方法的定义

我国公共静态函数(){

内部访问静态成员属性

回声:我是。人;

}

}

班级学生延伸人{

函数研究(){

回声我。家长:$国家。人;

}

}

输出成员属性值

答:$国家;

新的人();

回声国家;错误的方式

访问静态成员方法

Person:: (myCountry); / / output: I am Chinese

静态方法也可以通过对象访问:

$ P1 ->国家();
输出属性值类成员

回声学生::$国家;

新学生();

($ t1)研究;输出:我是中国人

>

运行这个示例,输出:

中国

我是中国人

我是中国人

中国

我是中国人

摘要:访问静态成员属性或方法在类中,使用自::(注意不是自美元),代码如下:

复制代码如下:自::$国

自::我国()

使用父级:(注意不是父类)访问父类静态成员属性或方法,代码如下所示:

复制代码如下:父:$ $

家长::我国()

外部访问静态成员属性和方法是类名name子类名称:

复制代码如下:人::$国家

人::我的国家()

学生:$国家

但是静态方法也可以由普通对象访问。

作为一个例子,静态变量被声明,代码如下所示:

复制代码代码如下:< PHP

函数(){

静态$ int = 0; /更正

静态$ = 1 + 2; /错误(因为它是一个表达式)

静态变量int = sqrt(121); / /错误的(因为它是一个表达过)

元+ +;

返回值;

}

>

例如,使用静态变量的示例,代码如下所示:

复制代码代码如下:< PHP

功能测试()

{

静态w3sky = 0美元;

echo $ w3sky;

w3sky美元+ +;

}

>

现在,每次调用测试()函数将输出的w3sky美元价值和添加一个。

静态变量也提供了一种处理函数的递归的方法,递归函数是一个函数调用本身,一定要写一个递归函数,因为无限递归的可能性仍在继续,我们必须确保有足够的停止递归的方法,简单的递归函数数到10,使用静态变量确定当$计数停止。

例如静态变量和递归函数,代码如下所示:

复制代码代码如下:< PHP

功能测试()

{

静态$ = 0;
数+;

回波计数;

如果(计数为10){

测试();

}

数美元--;

}

>

注意:静态变量可以在上面的例子中声明,如果它们被赋值为声明中表达式的结果,它会导致解析错误。

希望本文能对大家的PHP程序设计有所帮助。

tag:静态变量差异电脑软件php

相关内容