php 类中的常量、静态属性、非静态属性的区别

PHP类中的常量、静态属性和非静态属性是常用的三种类成员变量。它们在类中扮演着不同的角色和承担不同的任务。下面我们来详细了解它们的区别和用法。

PHP类中的常量

常量是一种类成员变量,其值在定义之后不能改变。在PHP中使用 const 关键字定义常量。常量的命名规则与变量相同,但是一般情况下常量名用大写字母表示。常量可以在类定义中直接声明,也可以在类定义之外声明。如果常量在类定义之外声明,则必须使用类名限定符才能访问常量,例如 类名::常量名

示例:

class MyClass {
    const PI = 3.14;
    public function showPi() {
        echo self::PI; // 输出3.14
    }
}

echo MyClass::PI; // 输出3.14

在上面的代码中,我们定义了一个名为 PI 的常量,并在类定义之内和之外分别访问它。在类方法中,通过 self::PI 访问常量,而在类定义外部,通过 类名::PI 访问常量。

PHP类中的静态属性

静态属性是一种类成员变量,其值不随对象的创建而产生变化,而是在整个类中共享。在PHP中使用 static 关键字定义静态属性。静态属性也可以被声明为私有属性,但不能被声明为受保护的或公共的属性。

示例:

class MyClass {
    private static $myVar = 0;
    public function incVar() {
        self::$myVar++; // 修改静态属性
        echo self::$myVar; // 输出当前静态属性值
    }
}

$obj1 = new MyClass();
$obj2 = new MyClass();

$obj1->incVar(); // 输出 1
$obj2->incVar(); // 输出 2

在上面的代码中,我们定义了一个名为 myVar 的静态属性,并在 incVar 方法中修改它的值。然后我们创建了两个 MyClass 类的对象,并对它们分别调用 incVar 方法,可以看到每个对象都共享了相同的静态属性。

PHP类中的非静态属性

非静态属性是属于类对象的成员变量,每个类对象都包含一组实例变量。在PHP中使用 publicprotectedprivate 关键字定义非静态属性。

示例:

class MyClass {
    private $myVar = 0;
    public function incVar() {
        $this->myVar++; // 修改实例变量
        echo $this->myVar; // 输出当前实例变量值
    }
}

$obj1 = new MyClass();
$obj2 = new MyClass();

$obj1->incVar(); // 输出 1
$obj2->incVar(); // 输出 1

在上面的代码中,我们定义了一个名为 myVar 的实例变量,并在 incVar 方法中修改它的值。然后我们创建了两个 MyClass 类的对象,并对它们分别调用 incVar 方法,可以看到每个对象都拥有具有不同值的实例变量。

总的来说,常量、静态属性和非静态属性都是PHP面向对象编程中重要的概念。常量用于定义类的常数,静态属性用于在类之间共享数据,非静态属性则是实例变量,用于存储特定对象的状态。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php 类中的常量、静态属性、非静态属性的区别 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • php输出金字塔的2种实现方法

    下面是“php输出金字塔的2种实现方法”的完整攻略。 1. 方法一:使用for循环实现 利用for循环打印出金字塔的步骤 定义一个变量 $n,代表金字塔的层数; 利用 for 循环使程序输出金字塔结构; for循环中需要再套一个循环,控制每一行中*号和空格的数量; 利用 echo 打印出金字塔的每一行; 完成循环后输出整个金字塔。 代码实现 以下是 PHP …

    PHP 2023年5月26日
    00
  • php后门木马常用命令分析与防范

    PHP后门木马常用命令分析与防范 PHP后门木马是一种危险的网络攻击手段,攻击者通常将恶意代码嵌入到正常的PHP文件中,这些代码常常被命名为“shell”,并使用类似于密码保护的方式隐藏在服务端,攻击者可以通过发送指定的请求激活后门木马,控制服务器并进行各种恶意操作。为了有效防范这种攻击,我们必须了解PHP后门木马的常用命令和防范方法。 常用命令分析 PHP…

    PHP 2023年5月23日
    00
  • php截取中文字符串函数实例

    PHP截取中文字符串函数实例 在PHP中,截取中文字符串与截取英文字符串不同,因为中文占用的字节数不同,所以我们需要针对中文字符进行截取。下面是一些可用的方法。 方法一:substr和mb_substr函数 substr和mb_substr函数都可以用于截取字符串,但是substr函数对于截取含有中文字符的字符串经常会出现乱码问题,而mb_substr函数在…

    PHP 2023年5月26日
    00
  • php格式文件打开的四种方法

    当我们写PHP代码时,需要经常使用到文件操作。文件操作分为读取和写入,本篇攻略主要介绍PHP格式文件的打开方式,常用的有四种方法。 相对路径打开 相对路径指相对于当前文件的路径来打开另一文件。在php中,相对路径指相对于当前文件所在文件夹路径来打开目标文件,以”./”开头。 $file = fopen("./example.txt", &…

    PHP 2023年5月23日
    00
  • php curl发送请求实例方法

    当我们需要向外部API发送HTTP请求时,PHP提供了一个非常有用的扩展库curl,可以让我们轻松地实现各种HTTP请求,比如GET、POST等。在这里,我将为您详细介绍如何使用PHP curl扩展发送请求。 使用前准备 在使用curl之前,需要先确保已在服务器上安装了curl扩展库。可以通过如下命令检查是否已安装curl扩展库: php -i | grep…

    PHP 2023年5月27日
    00
  • php恢复数组的key为数字序列的方法

    当PHP数组中的key不是数字序列时,可以通过以下方法进行恢复: 方法一:使用array_values函数 使用array_values函数可以获取某个数组的所有值,同时重新索引它们并返回一个新的数组。这个新的数组的key就是数字序列。 $assocArr = array(‘foo’ => ‘bar’, ‘baz’ => ‘boom’); $in…

    PHP 2023年5月26日
    00
  • 超常用的PHP正则表达式收集整理

    超常用的PHP正则表达式收集整理 前言 正则表达式是一个十分强大的工具,可以用来处理各种字符串操作,例如匹配、替换、分割等。在PHP开发中,正则表达式也是一种十分常见的技巧。然而,正则表达式语法复杂,需要我们认真学习和练习。本文将整理收集了一些超常用的PHP正则表达式,供大家参考和学习。 常见正则表达式 匹配中文字符 preg_match(‘/^[\x{4e…

    PHP 2023年5月26日
    00
  • php PATH_SEPARATOR判断当前服务器系统类型实例

    在PHP中,PATH_SEPARATOR是系统路径分隔符,Linux和Unix系统上的路径分隔符为“:”,Windows系统上的路径分隔符为“;”。可以通过PATH_SEPARATOR来判断当前运行PHP的服务器系统类型。 具体实现方式是,使用PATH_SEPARATOR常量来拆分路径,如果返回的是一个字符串,就说明运行PHP的服务器系统类型是Windows…

    PHP 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部