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__(当前这一行)
- 魔术常量其实类似变量,其值随着不同代码而变化,不区分大小写
- 参考手册〉语言参考〉常量〉魔术常量

结果展示:

12)PHP,常量和魔术常量的更多相关文章
- PHP面向对象——类常量,魔术常量与延期绑定
普通常量 define('常量名',常量值): 以前说过:define定义的常量,全局有效 无论是页面内,函数内,类内,都可以访问. 例: define('ACC','Deny') class ...
- PHP中的预定义常量、类常量和魔术常量的区别
PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了. 对于一些基本的常量是这些常量在 ...
- php常量,提前定义常量,魔术常量及基本数据类型
常量 定义: 形式一 // define("PI",常量值); define("PI",3.14); define("school",&qu ...
- PHP 预定义常量(魔术常量)
显示当前代码在多少行__LINE__ echo __LINE__; 获取当前文件绝对路径 __FILE__ echo __FILE__; //结果为: // D:\xxxx\xxxx\xxxx\ind ...
- php中的几个常用的魔术常量
在php中我们可以自定义常量,同时php中也自定义了一些好用的常量,这些常量会根据其所在的位置而自动变化. 我们称之为魔术常量.魔术常量可以大写也可以小写,是不区分大小写的 __FIL ...
- PHP的八个魔术常量
1. 什么魔术常量 预定义常量:预定义常量就是PHP内置的常量,预先定义好的 PHP有很多预定义常量,比如:PHP_VERSION(版本号).PHP_OS(操作系统). 这些普通的预定义常量在程序中的 ...
- PHP中的那些魔术常量
之前我们已经了解了一些常用的魔术方法,除了魔术方法外,PHP还提供一些魔术常量,相信大家在日常的工作中也都使用过,这里给大家做一个总结. 其实PHP还提供了很多常量但都依赖于各类扩展库,而有几个常量是 ...
- php魔术方法和魔术常量
1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一 ...
- php5魔术函数、魔术常量
魔术函数 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct ...
随机推荐
- Java中多态的实例
public class cf { /** * 实际上这里涉及方法调用的优先问题, * 优先级由高到低依次为:this.show(O).super.show(O).this.show((super)O ...
- dateutil 2.5.0 is the minimum required version python
问题重现 在运行以下代码时出现了该错误: import pandas as pd import numpy as np 原因与解决 原因是dateutil库版本低于2.5.0,卸载重装即可: pip ...
- Postgres psql: 致命错误: 角色 "postgres" 不存在
问题再现 当前环境: postgresql: 11.5 windows 10 企业版LTSC 64位 当运行"C:\Program Files\PostgreSQL\11\scripts\r ...
- Elasticsearch分布式搜索
ElasticSearch之介绍 一 Elasticsearch产生背景 1.1 大规模数据如何检索 如:当系统数据量上了10亿.100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题:1 ...
- Notepad++配置
笔记来源于视频: http://baidu.iqiyi.com/watch/498601896985630918.html?page=videoMultiNeed notepad++ 有个很重要问题, ...
- css中标签总结
cursor CSS属性定义鼠标指针悬浮在元素上方显示的鼠标光标cursor:pointer: 小手 cursor:wait:等待....很多种 <span contenteditable=&q ...
- scala快排
笔记积累,直接看代码吧,sublime上运行的 def quickSort(ls:List[Int]):List[Int]={ if (ls.isEmpty) ls else quickSort(ls ...
- rpm -qa -qc 查询安装过的软件
dpkg -l | grep ssh #Ubuntu rpm -qa |grep ssh #centos 通过ps -e |grep ssh命令查看是否启动.如果只有ssh-ag ...
- 微信官方小程序示例demo 微信开发者工具打开不显示云开发按钮
如果直接打开官方的demo,微信开发者工具上是不显示云开发按钮的. 是因为默认appid是测试号.要换成一个正式appid就会显示云开发按钮了. 分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默 ...
- Django的URL路由基础
一.概述 URL路由在Django项目中的体现就是urls.py文件,这个文件可以有很多个,但绝对不会在同一目录下.实际上Django提倡项目有个根urls.py,各app下分别有自己的一个urls. ...