php round函数输出不对_PHP常量
![](/assets/blank.gif)
一 什么是常量
常量是一个简单值的标识符,该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符),常量在整个脚本中都可以直接使用。
使用常量时,不能在常量名前添加$ 符号,不然会将常量转换成新的未定义变量使用,会导致报错
PHP中(PHP 4及以后)我们可以使用函数define()来定义常量
define ( string $name , mixed $value [, bool $case_insensitive = false ] )
注意:该函数有三个参数
name:必选参数,常量名称,即标志符
value:必选参数,常量的值
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感,默认是大小写敏感的
下面我们来举个栗子:
<?php define('NAME',"PHP是世界上最好的语言"); //定义一个名为PI的常量,区分大小写 echo NAME; //输出:PHP是世界上最好的语言
?>
如果代码写成 define('NAME',"PHP是世界上最好的语言",true)则表示不区分大小写
PHP 5.3.0之后,除了使用函数define()之外,我们还可以使用PHP关键字const来定义常量
<?php //以下代码需在PHP 5.3.0及之后的版本中运行 const PI = 3.14159; //使用const关键字定义一个名为PI的常量 echo PI; //输出:3.14159
?>
define()是函数const是语言结构所以在执行时const要快得多
虽然上述两种方式均可以定义常量,但是它们之间有什么不同之处呢。下面我们来一一讲解PHP中define()函数和const关键字定义常量的区别
一 版本差异
两种定义常量的方式之间存在版本差异,函数define()在PHP4和PHP5中均可使用,关键字const只能在PHP 5.3.0及其后的版本中使用。
二 定义位置的区别
由于函数define()定义的常量是在执行define()函数时定义的,因此可以在函数内、循环内、if语句内等函数能够被调用的任何地方使用define()函数定义常量
与define()不同的是,由于const关键字定义的常量是在编译时定义的,因此const关键字定义常量必须处于最顶端的作用区域。这也就意味着不能在函数内、循环内以及if语句之内用const来定义常量。
<?php
//使用const关键字定义常量必须处于最顶端的作用区域
//也就是可以在编译时直接解析定义的地方const DEMO = 'DEMO';class Person{const MAN = '男';const WOMAN = '女';}interface USB{const VERSION_2 = '2.0';const VERSION_3 = '3.0';}
?>
三 对值的表达式支持的差异
虽然关键字const和define()定义的常量值都只能为null或标量数据(boolean,integer,float和string类型)以及resource类型(不推荐定义resource类型的常量,否则可能出现无法预知的结果)。不过,由于关键字const定义常量是在编译时定义的,因此const关键字定义的常量值的表达式中不支持算术运算符、位运算符、比较运算符等多种运算符,而这些运算符在define()函数定义常量时都是可以直接使用的
<?php
define('DEFINE_VAR1', 1 << 1);
//const CONST_VAR1 = (1 << 1); //const不支持位运算符,PHP会报语法错误define('DEFINE_VAR2', 1 + 1);
//const CONST_VAR2 = 1 + 1 ; //const不支持算术运算符,PHP会报语法错误define('DEFINE_VAR3', 1 == 1);
//const CONST_VAR3 = 1 == 1 ; //const不支持比较运算符,PHP会报语法错误$value = 3;
define('DEFINE_VAR4', $value);
//const CONST_VAR4 = $value ; //const不支持变量形式的值,PHP会报语法错误define('DEFINE_VAR5', true || false);
//const CONST_VAR5 = true || false ; //const不支持逻辑运算符,PHP会报语法错误define('DEFINE_VAR6', 'Hello'.' World!');
//const CONST_VAR6 = 'Hello'.' World!' ; //const不支持字符串运算符,PHP会报语法错误class User{}
$user = new User();define('DEFINE_VAR7', $user instanceof User);
//const CONST_VAR7 = $user instanceof User ; //const不支持类型运算符,PHP会报语法错误
?>
四 对字符大小写敏感的支持差异
函数define()可以接收第3个参数,如果该参数为true,则表示常量名的大小写不敏感。而使用const关键字定义常量却没有提供类似的功能,默认大小写敏感
<?php
// 设置编码为UTF-8,以避免中文乱码
header('Content-Type:text/html;charset=utf-8');// define()的第3个参数为true时,表示大小写不敏感
define('SITE_NAME', 'PHP是世界上最好的语言', true);
echo SITE_NAME; // 输出:PHP是世界上最好的语言
echo site_name; // 输出:PHP是世界上最好的语言
echo SiTe_NamE; // 输出:PHP是世界上最好的语言
const DOMAIN_NAME = 'PHP是世界上最好的语言';
echo DOMAIN_NAME; // 输出:PHP是世界上最好的语言
echo domain_name; // PHP提示常量未定义
echo DomaIN_nAMe; // PHP提示常量未定义
?>
下一期:PHP字符串
php round函数输出不对_PHP常量相关推荐
- php round函数输出不对_Python 四舍五入函数 Round
小数位的四舍五入在项目中经常用到. 你可能有注意到 round 函数不能真正做到四舍五入. round() 函数作用就是,返回浮点数x的四舍五入值. round( x [, n] ) 简单来说就是在浮 ...
- php 年月日 中文,php Date()函数输出中文年月日时分秒_PHP教程
今天我以一个简单的利用date()函数输出中文年月日时分秒引出关于大多数据用户在使用php date()函数的一些问题与date()函数一些参数详解. 当然了,PHP的DATE函数是不可能直接输出中文 ...
- python round函数_python中round函数如何使用
round函数很简单,对浮点数进行近似取值,保留几位小数.比如 >>> round(10.0/3, 2) 3.33 >>> round(20/7) 3 第一个参数是 ...
- python round_Python round() 函数
round() 方法返回浮点数x的四舍五入值. 以下是 round() 方法的语法: round( x [, n] ) x为浮点数,n为保留的小数点位. 以下展示了使用 round() 方法的实例: ...
- java的round函数加点差_【JAVA】Math.Round()函数常见问题“四舍5入”
java.lang.Math.Round()使用时候,处理方式整理,方便以后查找 /** * 测试函数 2014-01-10 */ public class TestMath { pu ...
- php得round,PHP中的round()函数
该round()函数舍入一个浮点数.例如0.90到1.0.35到0等. 语法round(val, precision, mode) 参数val-要取整的值 precision-它设置精度,即要舍入到的 ...
- python round函数_Python round() 函数
这个一直都想写,但是因为这个点比较小,所以一直懒得动手.不过还是补上吧,留着早晚是个祸害. round函数很简单,对浮点数进行近似取值,保留几位小数.比如 >>> round(10. ...
- Python 中关于 round 函数的小坑
这个一直都想写,但是因为这个点比较小,所以一直懒得动手.不过还是补上吧,留着早晚是个祸害. round函数很简单,对浮点数进行近似取值,保留几位小数.比如: >>> round(10 ...
- php中round函数能给整数用吗,PHP四舍五入、取整、round函数使用
这篇文章主要介绍了PHP四舍五入.取整.round函数使用示例,需要的朋友可以参考下 小数例子: PHP保留两位小数并且四舍五入 代码如下:$n=0.1265489; echo sprintf(&qu ...
最新文章
- 中国AI论文普遍水?机器学习教父Tom Mitchell的回答是……
- datetime类型需要指定长度吗_你真的用对数据库了吗?
- [转]线程安全java
- java中Arrays.sort()实现原理
- java中的集合_Java中集合中的基本概念
- [译] APT分析报告:10.Lazarus以ThreatNeedle家族攻击工业事件还原(BMP图片隐藏RAT)
- python selenium下载,在python中通过Selenium Webdriver下载文件
- linux限制组访问权限,linux用户和组管理以及文件权限访问控制ACL策略
- (译)如何优化cocos2d程序的内存使用和程序大小:第一部分
- Spark Streaming实现WordCount
- mybatis plug 只查id_MyBatis Generator的一个问题引发对插件的修改
- 52.网络参数管理者: DHCP
- 高中计算机课程事例,[案例教学法在高中信息技术教学中的应用] 教学案例分析100例...
- sqlserver用sql语句备份数据库
- mySQL首行缩进快捷键_word段首如何缩进两个字符
- WIN7远程桌面连接--“发生身份验证错误。要求的函数不受支持”
- 田野调查手记·浮山摩崖石刻(二)
- 主机开启后,显示器显示NO SIGNAL,无信号
- 图书管理系统 jsp + servlet + mysql (2023)
- storm显微镜成像原理_超分辨率显微镜技术原理概述
热门文章
- python爬斗鱼直播_Python爬取2000万直播数据——看20万游戏主播能否月入100万
- java画虚线_java cansvas 画虚线要怎么设置?
- ubuntu16.04配置py-faster-rcnn
- 修改记录功能--jsp,servlet
- The Suspects//并查集
- 【原】概率论——第一章第1节
- GoogleAppEngine是什么?
- Centos7.2安装zabbix3.0.1简要
- C# WinForm开发系列 - TextBox
- 在android开发中使用multdex的方法-IT蓝豹为你整理