PHP的魔术常量都是由不同的扩展库定义的,只有在加载了这些扩展时才会出现,或者动态加载后

有八个魔术常量他们的值随着他们在代码中的位置改变而改变。

__LINE__  文件中的当前行号。

实列:

<?php

echo __LINE__;

?>

__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,择返回被包含的文件名。

<?php

echo __FILE__;

?>

__DIR__文件所在目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

他等价于dirname(__FILE__).除非是根目录,否者目录中名不包括末尾的斜杠

<?php

echo __DIR__;

?>

__FUNCTION__  函数名称 在函数中返回该函数被定义时的名字(区分大小写)。

<?php

function test() {

echo '该函数为:'.__FUNCTION__;

}

?>

__CLASS__  类的名称,返回该类被定义时的名字(区分大小写);

<?php

class test{

function _print(){

echo __CLASS__;

echo __FUNCTION__;

}

}

$t = new test();

$t->_print();

?>

输出结果为:

类名为:test

函数名为:_print

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

trait 名包括其被声明的作用区域,列如(Foo\Bar)

从基类继承的成员被插入的SayWorld Trait 中的 MyHelloWorld方法所覆盖。其行为为MyHelloWord类中定义的方法一致。

优先顺序是当前类中的方法会覆盖trait方法,而tarit方法又覆盖了基类中的方法。

<?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();

?>

__NAMESPACE__ 当前命名空间的名称 (区分大小写)。

<?PHP

namespace MyProject;

echo __NAMESPACE__;

?>

PHP的魔术常量(常用八大常量)的更多相关文章

  1. struts2常用的常量constant

    常用的常量配置  struts.serve.static.browserCache 该属性设置浏览器是否缓存静态内容.当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为fa ...

  2. Struts2 常用的常量配置

    在struts2-core-2.1.8.1.jar的org.apache.struts2包下面的default.properties资源文件里可以查到常用的常量配置,这些不用刻意的记住:忘记的时候可以 ...

  3. struts2常用的常量constant(转)

    原文地址:http://blog.csdn.net/wfcaven/article/details/5937548 常用的常量配置  struts.serve.static.browserCache  ...

  4. PHP中的预定义常量、类常量和魔术常量的区别

    PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了. 对于一些基本的常量是这些常量在 ...

  5. php 常用的常量

    /* php 常用的常量 */ 1.系统常量 * FILE 当前PHP文件的相对路径 * LINE 当前PHP文件中所在的行号 * FUNCTION 当前函数名,只对函数内调用起作用 * CLASS ...

  6. C++常量(C++数值常量、字符串常量、符号常量)

    http://see.xidian.edu.cn/cpp/biancheng/view/104.html 字符串常量 用双撇号括起来的部分就是字符串常量,如"abc"," ...

  7. C#静态常量和动态常量的区别

    C#拥有两种不同的常量:静态常量(compile-time constants)和动态常量(runtime  constants).它们有不同的特性,错误的使用不仅会损失效率,还可能造成错误.相比之下 ...

  8. 常量函数、常量引用参数、常量引用返回值[C++]

    1. 关于常量引用正像在C语言中使用指针一样,C++中通常使用引用 有一个函数... foo()并且这个函数返回一个引用...... & foo()...., 一个指向位图(Bitmap)的引 ...

  9. C++常量指针与常量数据

    常量指针即指针是常量的,一但声明指向某个数据后不能被更改,但是指向的数据可以被更改.声明格式如下: ; int * const p = &demo; 常量数据是指数据是常量的,一但被初始化后不 ...

随机推荐

  1. idea,2018版破解方法

    1.准备安装文件 2.安装 ideaIU-2018.3.5.exe ,如这里是安装到IDEA这个文件夹: 3.复制JetbrainsIdesCrack-4.2-releasexxx.jar放到IDEA ...

  2. s检验|k-S检验|适应性检验|独立性检验|Cintinuity correction |Fisher‘s Exact Test|Likelihood Ratio|Person Chi-Square|φ系数|Cramer’s V|列联系数

    应用统计学: s检验是检验否符合正态,而k-S检验是检验否符合一种分布. 已知分布便知道参数,知道参数不知道分布. 适应性检验 多项式分布的情况如下例: 二项分布是多项式分布一种情况,所以就是上式中只 ...

  3. 【Java集合】试读ArrayList源码

    ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, ...

  4. 推送至远程仓库使用git push -u的原因

    第一次把本地仓库推送至远端时,为了以后方便一定要使用 git push -u origin master [此处是把本地的master分支推送至远程的master分支]

  5. Web前端性能

    6.1前端性能示例 性能测试工具: Apache Benchmark(ab)得到的响应时间仅为从请求发出开始到接收到HTML的最后一个字节所消耗的全部时间.ab命令行如下: ab -c [并发用户数] ...

  6. python 添加字符串的七种方法

    #使用{}的方法 s1 = 'Hello {}! My name is {}.'.format('World', 'Python猫') print(s1) s2 = 'Hello {0} My nam ...

  7. 吴裕雄--天生自然 R语言开发学习:方差分析(续二)

    #-------------------------------------------------------------------# # R in Action (2nd ed): Chapte ...

  8. cookie和session实现登录验证

    回话技术,比如在做登录功能的时候,需要配合是用存储在客户端的cookie信息,以及存储在服务端的session来实现登录功能.在cookie中保存了用户的信息,特别是一个特殊的令牌信息,当用户拿着这个 ...

  9. Image图片

    # View more python tutorials on my Youtube and Youku channel!!! # Youtube video tutorial: https://ww ...

  10. sms短信服务

    短信服务是app,电商类应用的基础功能.典型场景有: 用户注册,发送验证码 用户找回验证,发送验证码 用户账户异常,发送提示 用户账户变化,通知用户 短信服务开发有几个注意点: 供应商选型 短信模板 ...