php基础知识总结大全,php基础知识回顾 —— 常量

本文介绍了PHP中的常量概念,如何使用define()和const定义及区别,并详细讲解了魔术常量的作用和使用示例,如__LINE__,__FILE__,__DIR__,__FUNCTION__,__CLASS__,__TRAIT__,__METHOD__,__NAMESPACE__等。
摘要由CSDN通过智能技术生成

您现在的位置是:网站首页>>PHP>>php

php基础知识回顾 —— 常量

发布时间:2019-01-23 17:23:08作者:wangjian浏览量:489点赞量:0

在PHP中有这样一类变量,当变量值被定义之后,它的值就不可更改,这类变量我们称之为常量,常量分为我们自己定义的常量(常量)以及PHP自己预定义常量(魔术常量)两类

一:常量

常量是一个简单值的标识符。该值在脚本中不能改变。

一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

注意: 常量在整个脚本中都可以使用

在PHP中我们使用define()来定义常量,在php5.3之后,我们可以使用const关键字在类定义的外部定义常量

定义常量

define()定义常量基本语法define ( string $name , mixed $value [, bool $case_insensitive = false ] )

参数说明:

name:必选参数,常量名称,即标志符。

value:必选参数,常量的值。

case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。

例:<?php

// 区分大小写的常量名

define("TEST", "测试常量");

echo TEST;    // 输出 "测试常量"

const定义常量<?php

const TEST = '测试常量';

echo '测试常量';

const和define的区别:

1:使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时要比define快很多。

2:const用于类成员变量的定义,一经定义,不可修改。define不可以用于类成员变量的定义,可用于全局常量。

3:const可在类中使用,define不能

4:const不能再条件语句中定义常量

常量在定义后,默认是全局变量,可以在整个运行的php脚本的任何地方使用

二:魔术常量

php有八个魔术常量,分别为:__LINE__,__FILE__,__DIR__,__FUNCTION__,__CLASS__,__TRAIT__,__METHOD__,__NAMESPACE__

1:__LINE__(返回文件中当前的行号)

2:__FILE__(文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名)

3:__DIR__(文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录,等价于dirname(__FILE__))

4:__FUNCTION__(返回该函数被定义时的名字)

5:__CLASS__(返回该类被定义时的名字)

6:__TRAIT__:

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

例:

从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法<?php

class Base {

public function sayHello() {

echo 'Hello ';

}

}

trait SayWorld {

public function sayHello() {

parent::sayHello();

echo 'World!';

}

}

class MyHelloWorld extends Base {

use SayWorld;

}

$o = new MyHelloWorld();

$o->sayHello();

7:__METHOD__(返回该方法被定义时的名字)

8:__NAMESPACE__(返回当前命名空间的名称)

下面对于__TRAIT__进行额外说明

当有多个trait时,通过逗号分隔,在 use 声明列出多个 trait,可以都插入到一个类中

例:<?php

trait Hello {

public function sayHello() {

echo 'Hello ';

}

}

trait World {

public function sayWorld() {

echo 'World';

}

}

class MyHelloWorld {

use Hello, World;

public function sayExclamationMark() {

echo '!';

}

}

$o = new MyHelloWorld();

$o->sayHello();

$o->sayWorld();

$o->sayExclamationMark();

根据上面的魔术方法,可以获取当前脚本的文件名称substr(__FILE__,strlen(__DIR__)-strlen(__FILE__)+1)

272a2ff497ff398701eef161070cd122.png

0

+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值