[PHP从小白到大牛]-008 PHP常量

什么是常量?

  • 值一旦定义, 就不能够改变的量

如何定义常量?

  • 使用define函数
define("GREETING", "Welcome to yunhe!");
echo GREETING;
复制代码
  • 注意, 常量一旦声明, 不可改变值
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
define("GREETING", "Welcome to yunhe!");
echo GREETING;
复制代码

常量和变量的区别

试着解释, 常量和变量都有哪些区别, 请举例说明...

定义形式不一样;

  • 常量使用define或者const, 变量使用$符号

使用形式不一样(常量不须要 $ 符号);

  • 常量能够直接使用, 变量须要使用$符号

可变程度不一样(常量的值不可改变或者销毁);

  • 常量不可变, 变量的值可变

做用范围不一样(常量具备超全局做用域(函数内外均可直接使用));

  • 常量函数内外均可以使用, 变量函数外的变量, 函数内不能用, 函数内的变量, 函数外不能用

可用类型不一样(常量只能存储标量类型:int,float,string,bool; 和数组)

  • 变量有8中数据类型, 常量支持5种, 4个标量加上数组

常量的分类

  • 系统常量
  • 自定义常量
  • 魔术常量

系统常量

  • php自带的常量
  • PHP_VERSION, 查看PHP版本
echo PHP_VERSION; // 7.3.6
复制代码

试举例说明, 系统常量都有哪些, 值是多少?(5个便可)

  • PHP_VERSION当前使用的PHP版本号
  • PHP_OS当前PHP环境的运行操做系统
  • TRUE与true同样
  • FALSE与false同样
  • M_PI圆周率常量值
  • M_E科学常数e
  • M_LOG2E表明log2
  • e,以2为底e的对数
  • M_LOG10E表明lg
  • e,以10为底e的对数
  • M_LN22的天然对数
  • M_LN1010的天然对数
  • E_ERROR最近的错误之处
  • E_WARNING最近的警告之处
  • E_PARSE剖析语法有潜在问题之处
  • METHOD表示类方法名,好比B::test

自定义常量

  • 用户本身定义的常量
  • 可使用define,也可使用const
  • 使用define的方法
define("GREETING", "Welcome to yunhe!");
echo GREETING;
复制代码
  • 使用const的方法
  • 显示常量值, 有两种方式
const HELLO = "hello world";

echo HELLO;

echo constant('HELLO');
复制代码
  • 常量区分大小写吗?php

  • 既然常量值一经定义, 不能改变, 那我怎么知道之前有没有声明过...数组

  • defined函数能够判断是否声明过常量浏览器

const HELLO = "hello world";

var_dump(defined('HELLO'));
var_dump(defined('WORLD'));
复制代码

魔术常量

  • 值会根据环境和上下文发生改变的量, 就像变魔术...
echo __LINE__;
复制代码

试举例说明, 魔术常量都有哪些, 值是多少?(5个便可)

常量名称 含义
__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。
__DIR__ 文件所在的目录
__FUNCTION__ 函数名称
__CLASS__ 类的名称
__TRAIT__ Trait 的名字
__METHOD__ 类的方法名
__NAMESPACE__ 当前命名空间的名称

小练习

单选题函数

下列定义常量的方法错误的是()(选择一项)spa

A define('YUNHE','PHP');

B define('_A','a');

C define('$a','$a');

D define('yunhe','php');
复制代码

多选题操作系统

下列选项中,关于系统常量解释正确的是()(选择三项)code

A PHP_OS PHP的运行系统

B E_ERROR 最近的错误之处

C PHP_VERSION PHP的版本

D define(‘TEST’,’hello’); 定义常量TEST
复制代码

如何查看已经定义的常量?

  • get_defined_constants()返回的是包含系统常量和自定义常量的数组
print_r(get_defined_constants())
复制代码

print_rvar_dump的区别

试举例说明, print_r和var_dump的区别

常量总结

小练习

多选题cdn

关于常量的定义方式正确的是()(选择两项)blog

A const('TEST','test');

B define('TEST','test');

C const TEST='test';

D define test='test';
复制代码

多选题作用域

常量区分大小写,在脚本define_con.php中定义常量const NAME= 'yunhe',下列说法正确的是()(选择两项)

A defined(‘NAME’) 返回true

B 在题示脚本中从新定义常量:const  NAME=’http://yunhe’;echo NAME;浏览器中输出值为 ‘yunhe’

C constanted(‘NAME’) 该函数能够检测NAME常量是否认义

D echo name; 输出结果为‘yunhe'
复制代码

单选题

如下选项中,说法错误的是()(选择一项)

A __FILE__ 获得当前文件的完整绝对路径和文件名

B __METHOD__ 获得当前数据提交的方法名

C __FUNCTION__ 获得当前函数名称

D __CLASS__ 获得当前类的类名
复制代码

单选题

下列选项中,哪一项的结果可能为“\phpStudy\WWW\myfiles”()(选择一项)

A __DIR__

B __FILE__

C __LINE__

D __CLASS__
复制代码
相关文章
相关标签/搜索