迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > PHP >

PHP 中的静态变量

作者:迹忆客 最近更新:2023/03/27 浏览次数:

本文将介绍 PHP 静态变量,解释它们的特性,并演示在面向对象的上下文中访问静态变量的各种方法。


PHP 中的静态变量

程序中的变量用于存储以后可以在程序中使用的数据或值。变量可以存储字符、数值、字符串、内存地址等。

在 PHP 中,我们使用 $ 美元符号后跟变量名称来声明或存储值。

例子:

$name = "John Doe";
$marks = 90;

同样,静态变量是其范围不结束于函数之外的变量。非静态变量的作用域在函数退出后被销毁。

我们可以使用 static 关键字声明一个静态变量。

例子:

static $name = "John Doe";
static $marks = 90;`

让我们通过下面的演示来看看静态变量的属性。

代码示例:

function total_marks () {
    static $marks = 90;
    $marks ++;
    print $marks;
    print "<br />";
}
total_marks();
total_marks();
total_marks();

输出:

91
92
93

上面的代码显示静态变量即使在函数结束后仍保留其值。对函数 total_marks() 有三种不同的调用,但即使在函数退出后 $marks 的值也不会被破坏。

在进行第二次和第三次函数调用时,该值不会重置为 90。随着先前的值被保留,它会继续增加。

让我们将上面的示例应用于非静态变量。

示例代码:

function total_marks () {
    $marks = 90;
    $marks ++;
    print $marks;
    print "<br />";
}
total_marks();
total_marks();
total_marks();

输出:

91
91
91

每次进行函数调用时,$marks 变量的值都会重置为 90。它表明非静态变量不保留其先前的值。


在 PHP 中使用 self 关键字访问类中的静态变量

我们可以使用 self 关键字来访问类中的静态变量。双冒号 :: 用在 self 关键字之后,静态变量紧随其后。

this 关键字不适用于静态变量,因为静态变量不属于对象。

例如,在一个类中,Student 创建一个静态变量 $name 并分配一个值 John Doe。在函数内部,who() 使用带有双冒号的 self 关键字来访问静态变量 $name,最后,使用类的对象调用该函数。

示例代码:

class Student {
    public static $name = "John Doe";
    public function who() {
    echo self::$name;
    }
}
$obj = new Student;
$obj->who();

输出:

John Doe

PHP 中使用类名访问类外的静态变量

可以直接访问静态变量,而无需创建类的实例。要访问类外部的静态变量,我们可以编写类的名称,后跟双冒号(::),后跟静态变量的名称。

例如,在一个类中,Student 像第一个方法一样创建一个静态变量。接下来,在类外写入 Student:$name 以访问静态变量。

示例代码:

class Student {
    public static $name = "John Doe";
}
echo Student::$name;

输出:

John Doe

静态变量 $name 在类外部使用类名访问。


访问静态方法中的静态变量

在第一个示例中,我们了解了如何访问类中的静态变量。在那里,我们访问了非静态方法内部的静态变量。

本节将把静态变量放在静态方法中并对其进行访问。我们可以在函数前写 static 关键字来创建静态方法,在不创建类实例的情况下访问静态函数,并使用类名调用静态方法。

示例代码:

class Student {
    public static $name = "John Doe";
    public static function who() {
    echo self::$name;
    }
}
Student::who();

输出:

John Doe

在这里,我们使用::运算符访问了类 Student 的静态方法 who()。我们使用 self 关键字来访问方法内的静态变量。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 PHP 中获取时间差的分钟数

发布时间:2023/03/29 浏览次数:183 分类:PHP

本文介绍了如何在 PHP 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。

PHP 中的重定向

发布时间:2023/03/29 浏览次数:136 分类:PHP

本教程演示了如何将用户从页面重定向到 PHP 中的其他页面

PHP 分页

发布时间:2023/03/29 浏览次数:66 分类:PHP

本教程介绍如何在 PHP 中对数据库行进行分页

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便