12)PHP,常量和魔术常量

义:用于存储一个不会变化也不希望变化的数据的标示符。

常量命名规则,同变量,但习惯说,常常将常量的名称使用“全大写”形式。

定义形式

  • 使用define()函数定义
    • 使用形式:define(“常量名”, 常量值);
    • 推荐常用名使用全大写形

   

  • 使用const语法定义

     

    • 使用形式: const  常量名 = 常量值;
    • 但const语法只能在“最顶层”的代码域中使用(不能在大括号中)
    • 也即,const语法不能在函数中或条件语句中或其他表示一个“范围”的语句中使用

使用形式:

      (1)直接使用名字

          (2)或使用constant()函数:constant(“常量名”)

变量和常量的区别:

      

  • 定义形式不同:
  • 使用形式不同:常量无需$符号
  • 可变程度不同:常量的值不可以改变,常量也不可以销毁
  • 作用范围不同:常量具有超全局作用域 (函数内外都可以直接使用)
  • 可用类型不同:常量只能存储标量类型:int,float,string,bool

判断常量是否存在:defined()

        判断的结果为布尔值。

        常用形式:if ( defined (某常量名) == false ){ .....这里可以去定义该常量;}

        实际上,可以这样:

        $result = defined (某常量名);    //结果是true或false

使用一个未定义的常量(特殊情况):

        使用一个未定义的常量会报一个错误(notice错误)——跟使用一个未定义的变量一样——当然不推荐。

          但是:

          php,此时会得到一个意想不到的结果:似乎该常量存在,并该常量的值就是该名字。

魔术常量:

  魔术常量其实是一种值会随着一定的条件(环境)而变化的常量,形式和使用上是常量,但实际上,其值会改变。

  • 比如:__DIR__(当前网页文件的所在目录),__FILE__(当前网页文件),__LINE__(当前这一行)
  • 魔术常量其实类似变量,其值随着不同代码而变化,不区分大小写
  • 参考手册〉语言参考〉常量〉魔术常量

结果展示:

时间: 2024-11-11 14:16:15

12)PHP,常量和魔术常量的相关文章

php常量,提前定义常量,魔术常量及基本数据类型

常量 定义: 形式一 // define("PI",常量值); define("PI",3.14); define("school","讲理"); 形式二 // 定义形式二 const cc1 = 1234; const cc2 = "abcd"; 使用: 形式一 // 直接使用常量名 echo "PI的值:".PI; 形式二 // 通过constant函数,灵活性体现-->常量名

PHP之魔术常量

1 <?php 2 3 4 /* 5 魔术常量: 6 在面向对象中使用的:__CLASS__ __METHOD__ 7 self: 和 __CLASS__的区别 8 self 是一个结构 ... 9 __CLASS__ 是一个类名 10 11 常用的魔术常量: __DIR__ __FUNCTION__ __LINE__ __FILE__ 12 13 */ 14 15 class Student{ 16 public function getMagicConst(){ 17 echo "__

PHP魔术函数、魔术常量、预定义常量

一.魔术函数(13个) 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一个对象或对象操作终止时被调用. 3.__call() 对象调用某个方法, 若方法存在,则直接调用:若不存在,则会去调用__call函数. 4.__get() 读取一个对象的属性时,若属性存在,则直接返回属性值: 若不存在,则会调用__get函数. 5.__set() 设置一个

详解PHP魔术函数、魔术常量、预定义常量

一.魔术函数(13个) 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一个对象或对象操作终止时被调用. 3.__call() 对象调用某个方法, 若方法存在,则直接调用:若不存在,则会去调用__call函数. 4.__get() 读取一个对象的属性时,若属性存在,则直接返回属性值: 若不存在,则会调用__get函数. 5.__set() 设置一个

利用魔术常量的特性定义绝对地址!

1.为什么我们要选择这个特性去定义绝对地址呢?   因为一般来说,在选择载入文件的时候都是选择绝对路径来加载的,可是,这种定义的绝对路径有一个致命的缺点是:当我们移动该文件的时候,他在每一部计算机上的绝对路径是不一样的,那么如何解决这个问题呢?? 那么我们先来看一下在两部不同的计算机上的同一个文件的加载路径. 1 A: D:/AMP/apache/htdocs/text/lianxi.php 2 B: e:/amp/fuwuqi/apache/htdocs/text/lianxi.php 其实我

PHP系统常量&amp;&amp;魔术常量

系统常量: PHP_OS:操作系统信息 PHP_VERSION: PHP版本 PHP_SAPI:运行环境 魔术常量: __FILE__:当前文件的物理路径 __LINE__: 当前行号 __FUNCTION__:当前的函数名 __CLASS__:当前类名称 __METHOD__:当前的方法名

魔术常量对文件引入、function handling、递归和迭代【分治】、匿名函数、数组和数组指针内容

1.注意魔术常量被引入的问题a.php中载入b.php[其中b.php中输出魔术常量__FILE__输出的是b.php的路径]魔术常量被编译的顺序要在a中代码进行处理之前[可以理解为魔术常量在引入前的编译过程中就已经被预编译]魔术常量相当于占位符[而不是一个引入文件中的变量][注意魔术常量的处理方式]对文件载入过程的理解进一步[就是文件载入语句在文件中执行时,对被载入文件进行编译和复制(这样保证载入的问题的解决)][另外载入文件的作用域问题:载入文件的作用域取决于被载入的位置(例子就是在func

20150110--魔术方法魔术常量+面向对象-01

回顾 面向对象编程:类,对象和实例化 类成员:属性,方法和类常量,访问修饰限定符(public,protected和private) 对象访问属性和方法:对象->属性/方法(实参列表); 内部访问:$this,代表当前进入到类内部的对象 魔术方法:构造方法和析构方法 对象传值,对象比较 面向对象 类的加载 因为要得到一个类的对象,必须先保证类结构已经在内存中(代码段). 自动加载 在需要用到类的时候,系统会根据指定好的路径去找对应的类文件(文件名为基础),然后根据用户指定的操作,对文件进行处理(

php魔术方法与魔术常量

当我们学习 对象的时候,经常会听到老师们说世界万物皆对象,那么也一定会听到魔术方法和魔术常量等概念,那我们在学习温习的时候自己随手总结的: php中常见的魔术方法有哪些呢? 1)魔术方法都以 __双下划线开头! 例如: __construct(); __destruct(); __clone(); __sleep(); __wakeup(); __get() __set(); __isset(); __unset(); __call(); __callStatic() 注意:也许你也许会说__开