必威体育Betway必威体育官网
当前位置:首页 > IT技术

【PHP7 面向对象 笔记三】类常量

时间:2019-10-16 17:44:42来源:IT技术作者:seo实验室小编阅读:89次「手机版」
 

常量

一、定义

可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。常量的值必须是一个定值,不能是变量,类属性,数字运算的结果或函数调用。

二、语法

const constant = '常量';

三、调用方法

1) 类内部
// 方法一:
self::常量名;
// 方法二:
类名::常量名;

举例:

// 方法一:self::常量名称
self::WINNER;
// 方法二:类名::常量名
Chu::WINNER;

完整代码

class Animal
{
    // 可以写所需要的代码
}

class Chu extends Animal
{
    // 定义一个常量
    const WINNER = '今天是9月8日';

    public function getDay()
    {
        echo Chu::WINNER; // 可以 return Chu::WINNER;(由于一个方法中只能有一个 return,所以此处用 echo 来测试)
        echo '<hr>';
        return self::WINNER;
    }
}

$obj = new Chu();
var_dump($obj->getDay());

运行结果:

在类中访问

2) 类外部
// 方法一:
类名::常量名;
// 方法二:
对象名::常量名;

举例:

// 方法一:类名::常量名
Chu::WINNER;
// 方法二:对象名::常量名
$obj::WINNER;

完整代码:

class Animal
{
    // 可以写所需要的代码
}

class Chu extends Animal
{
    const WINNER = '今天是9月8日';
}

$obj = new Chu();
echo Chu::WINNER;

运行结果:

在类外访问

四、使用 define 定义类常量

举例1:在类中定义类常量

class Animal
{
    // 代码块
}

class Chu extends Animal
{
    const WINNER = '今天是9月8日';
    define('W', '今天是2018年9月8日');

    public function get()
    {
        echo Chu::W;
        return self::WINNER;
    }
}

$obj = new Chu();
var_dump($obj->get());

运行结果:

无法用define定义类常量

注:无法在类中用 define 直接定义类常量,只能在类的方法中定义,且使用的是定义时的默认值

举例2:在类的方法定义类常量

class Animal
{
    // 代码块
}

class Chu extends Animal
{
    public function get()
    {
        define('W', '今天是2018年9月8日');
        return W;
    }
}

$obj = new Chu();
var_dump($obj->get());

运行结果:

在类的方法中定义类常量

总结:

1)在类中,只能使用 const 来定义类常量;
2) 在类内,使用类常量,用 self::常量名 或者 类名::常量名;
3)在类外,使用类常量,用 类名::常量名 或者 对象名::常量名;
4) self 用来找到当前变量所在的类的名称.

相关阅读

问题:操作数类型冲突: uniqueidentifier 与 int 不兼容

重点内容 操作数类型冲突: uniqueidentifier 与 int 不兼容! 这是遇到的问题

迈尔斯布里格斯类型指标(MBTI)测试

    首页 >> 了解你自己 >> 立即参与MBTI性格测试>> INTJ 专家型——追求能力与独立 报告接收人: 才储成员

双十一预售是什么意思?适合做预售的类目有哪些?

每年的天猫双十一销量再都会刷新纪录,网上就会有人批评淘宝刷单,也有人说双十一的价格比平时还贵。但是很多人却把关注点放在了双十

c++ bool类型

文章目录bool类型bool类型变量默认初始化值bool类型 bool类型是c++基本类型之一 bool类型有2个值true or false,true默认值是1,fal

win10中wpcap.dll丢失的解决办法(解决Proteus中与网络

解决Proteus中与网络类仿真相关的模块报错问题,如ENC28J60。 使用windump时,提示wpcap.dll丢失。 下载win10pcap.msi安装。 网址:htt

分享到:

栏目导航

推荐阅读

热门阅读