Day7 PHP常量

常量(Constant)听起来与变量相似,但就容易混淆。
变量的值会改变而称为变量,那相对於变量的常量,则表示是恒常不变的值,因而称作常量,常量类似於变量,但是常量一旦被定义就无法更改或撤销定义,那麽问题是在 PHP 中如何定义常量呢?

常量

常量是一个简单值的识别符号(名字)。在指令码执行期间该值不能被修改和删除,常量可以不用理会变量范围的规则而在任何地方定义和访问。
常量预设为大小写敏感,有分别。

  • 常量命名规则:
  1. 常量命名的前面没有符号 $
  2. 通常以大写字母表示
  3. 由字母、数字、下划线组成,不能以数字开头
  4. 复杂的常量名可使用下划线分隔表示
  5. 必须用函式define()定义
  6. 定义完後其值不能再改变了
  • 系统常量
    在系统中有些东西程序员会使用到,但不允许被改变,系统常量就是PHP已经定义好的常量,我们可以直接拿来使用。

PHP_VERSION:PHP版本号,当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。

PHP_OS:执行当前PHP版本的操作系统名称。

  • 魔术常量(Magic constant)
    PHP定义了 8 个 魔术常量,他们的值随着他们在程序码中的位置改变而改变的
    系统有一些东西是在变化的,但不允许随意变化,魔术常量随着环境变化而变化,但这种变化是程序员不能控制的

魔术常量以双下划线开始、以双下划线结束

LINE:当前所在行数
DIR:当前文件所在路径(绝对路径)
FILE:当前文件所在路径(绝对路径,包含文件名称)
FUNCTION:函数内部使用,所处函数名,区分大小写,包含函数的名字
CLASS:类内部使用,表示类名
NAMESPACE:命名空间内部使用,表示当前所属命名空间
METHOD:类内部方法使用,表示当前方法名字
TRAIT :代码覆用的一个方法,称为traits

PHP 实现了代码复用的一个方法,称为traits。

Trait 包括其被声明的作用区域,从基类继承的成员被插入的winnie,Trait 中的Hellowinnie 方法所覆盖,与Hellowinnie 类中定义的方法一致,优先顺序是当前类中的方法会覆盖trait 方法,而trait 方法又覆盖了基类中的方法。

<?php
namespace MyProject;

echo __LINE__;
echo '<hr>';
echo __DIR__;
echo '<hr>';
echo __FILE__;
echo '<hr>';
echo __NAMESPACE__;
echo '<hr>';

// __CLASS__  __FUNCTION__ __METHOD__
class test {
    function hello() {
        echo '类名:'  . __CLASS__ . "<br>";
        echo  '函数名:' . __FUNCTION__. "<br>" ;
        echo '方法名:'.__METHOD__. "<br>";
    }
}
$t1 = new test();
$t1->hello();

echo '<hr>';

// __TRAIT__ 
class Base {
    public function Hello() {
        echo 'Hello ';
    }
}
 
trait winnie {
    public function Hello() {
        parent::Hello();
        echo 'winnie!';
    }
}

class Hellowinnie extends Base {
    use winnie;
}

$test = new Hellowinnie();
$test->Hello();

Day7 Winnie的聊天室

今天介绍常量,包含语法、命名规则和魔术常量,变量的好处是可以随时根据需求改变变量所代表的数据,常量则是一开始定义并赋值後,在整个脚本中不允许改变的量,这是两个蛮大的差别唷!
今天就到这里~~ 明天见><


<<:  #6-无限文字Logo跑马灯 (不用JS! CSS Animation)

>>:  Day 10 阿里云架设网站-资料库搬迁上云

[13th][Day17] tamplete range

range golang 的 template 支援 range 循环来遍历 map、slice 内...

Web基础篇

先宣传一下我的新书,终於出来惹,感动到无法言语>"< 还请大家多多支持! We...

JSON介绍

今天要先介绍JSON的写法,明天的实作会取用今天建置好的JSON档介绍Methods和Compute...

Day17:今天来谈一下Microsoft 365 的威胁防护简介

威胁是攻击者可以用来渗透组织的潜在弱点,攻击者会跨越多个网域 (例如电子邮件、身分识别、端点和应用程...

Day 19 Onchange v.s. readonly

Odoo 的onchange 有些特别要注意的地方, 像是onchange会影响到的栏位都要写入XM...