温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

复习PHP-语言参考-常量

发布时间:2020-08-06 01:45:27 来源:网络 阅读:338 作者:qzd1989 栏目:web开发

1.常量是一个简单值的标识符,在脚本执行期间不可修改,全部大写命名是个好习惯。

2.语法

一般用define定义,defined判断是否存在

5.3以后可以用const定义(const一般用于类内部属性的定义)

常量只能包含标量数据(int,bool,string,float)

当无法确定常量名称时可用constant()获取

如:

<?php

class a
{
    const b = "test";
}
$a = 'b';
echo constant("a::".$a);

?>

注意:居然可以设定空字符串为常量(这是BUG吗)

注意:在添加命名空间后,define和const的访问形式将会不一样

如:

<?php
namespace sub;
define("ABC","DEF");
const DEF="abc";
class foo {
    const BAR = 'Hello World';
}
constant('ABC'); // works
//constant('sub\ABC'); // not works
//constant('DEF'); // not works
constant('sub\DEF'); // works
//constant('foo::BAR'); // not works
constant('sub\foo::BAR'); // works
?>

所以由此可证明:define出来的常量是全局的,而const出来的常量是局部的,这就是它们之间的区别。

get_defined_constants可获取所有常量组成的数组

3.魔术常量

大量魔术常量是随着扩展库而定义的,下面列举一些随代码位置改变而改变的常量:

__LINE__:文件中的当前行号

__FILE__:文件的完整路径(如果用在被包含的文件中,则显示被包含的文件名)

__DIR__:文件所在目录(如果用在被包含的文件中,则显示被包含的目录),等价于dirname(__FILE__),这两个都可以用于绝对路径的判断依据

__FUNCTION__:返回该函数的名称

__CLASS__:返回该类的名称

__TRAIT__:返回Trait的名称(Trait是新的一种继承类似类,目前感觉还没有什么大用处)

__METHOD:返回类的方法名(与__FUNCTION__的区别在于他的形式是类名::方法名)

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

扩展:get_class可以返回对象的类名

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI