复习PHP-语言参考-常量

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

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、虚拟主机、营销软件、网站建设、顺义网站维护、网站推广。

2.语法

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

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

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

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

如:

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

?>

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

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

如:

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可以返回对象的类名


网页名称:复习PHP-语言参考-常量
分享地址:http://hbruida.cn/article/pogpjp.html