以下为学习孔祥盛主编的《PHP编程基础与实例教程》(第二版)所做的笔记。

PHP常量分为自定义常量与预定义常量。

1.自定义常量

  在使用前必须先定义,PHP的define()函数专门用于定义自定义常量,define()函数的语法格式为:define(name,value[,boolean case_insensitive])。

  函数功能:定义一个名字为name,值为value的常量。case_insensitive参数的默认值为FALSE,表示常量名name大小写敏感(区分大小写);case_insensitive参数值如果为TRUE,表示常量名name大小写不敏感(不区分大小写)。

  函数说明:常量名name为字符串类型数据,常量值value必须是标量数据类型数据。

( 注意:函数的语法格式中某个参数使用 “ [ ] ”括起来,表示该参数是 “ 可选参数 ” (不是必需的) 。 )

 <?php
//定义DATABASE常量,此时DATABASE常量名大小写敏感
define("DATABASE","student");
//定义USER_NAME常量,此时USER_NAME大小写敏感
define("USER_NAME","root",FALSE);
//定义PASSWORD常量,此时PASSWORD大小写不敏感
define("PASSWORD","root",TRUE); //输出:student
echo DATABASE;
echo"<br/>";
//输出:root
echo USER_NAME;
echo"<br/>";
//输出:root
echo password;
?>

输出:

Deprecated: define(): Declaration of case-insensitive constants is deprecated in D:\phpStorm_Save\first\helloworld.php on line 7
student
root Deprecated: Case-insensitive constants are deprecated. The correct casing for this constant is "PASSWORD" in D:\phpStorm_Save\first\helloworld.php on line 16
root

常量的定义需要注意以下几点:

1.常量必须使用define()函数定义,常量名前面不加前缀美元‘$’符号。

2.常量名由字母或者下画线开头,后面跟上任意数量的字母、数字或者下画线。

3.常量名可以是全部大写、全部小写或者大小写混合,但一般习惯是全部大写。

4.常量的作用域是全局的,不存在使用范围的问题,可以在程序任意位置进行定义和使用。

5.常量一旦被定义,其值不能在程序运行过程中修改,也不能被销毁。例如,程序如下

 1 <?php
2 define("DATABASE","student");
3 //重新定义DATABASE常量,此时将出现Notice信息
4 define("DATABASE","root");
5
6 //输出:student
7 echo DATABASE;
8 ?>

输出:

Notice: Constant DATABASE already defined in D:\phpStorm_Save\first\helloworld.php on line 4
student

从程序运行结果来看,PHP产生Notice信息后,并不会影响程序的继续运行。

2.预定义常量

PHP预定义了许多常量,这些常量无需使用define()函数定义,可直接在程序中使用。下面列举了一些常用的PHP预定义常量。

(1)__FILE__(FILE前后分别是两个下画线):当前正在处理的脚本文件名,若使用在一个被引用的文件中(include或require),那么  它的值就是被引用的文件,而不是引用它的那个文件。

(2)__LINE__(LINE前后分别是两个下画线):正在处理的脚本文件的当前行数。

(3)PHP_VERSION:当前PHP预处理器的版本,如5.4.16。

(4)PHP_OS: PHP所在的操作系统的类型。如Linux。

(5)TRUE:表示逻辑真。FALSE:表示逻辑假。NULL:表示没有值或值不确定。

(6)DIRECTORY_SEPARATOR: 表示目录分隔符,UNIX或Linux操作系统环境时的值为“ / ”, Window操作系统环境时的值为 “ \ ”。

<?php
echo __FILE__;
echo "<br/>";
echo __LINE__;
echo "<br/>";
echo PHP_VERSION;
echo "<br/>";
echo PHP_OS;
echo "<br/>";
echo DIRECTORY_SEPARATOR;
?>

输出:

D:\phpStorm_Save\first\helloworld.php
4
7.3.5
WINNT
\

  

3_PHP表达式_1_常量的更多相关文章

  1. 3_PHP表达式_3_有关变量或常量状态的函数

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 1. 数据类型查看函数 PHP为变量或常量提供了查看数据类型的函数,其中包括gettype()和var_dump( ...

  2. 3_PHP表达式_4_PHP运算符

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 3.4.1 算术运算符 <?php $num1 = -10; $num2 = -4; $num3 = $nu ...

  3. 错误提示:在此上下文中不允许使用名称 "***"。有效表达式包括常量、 常量表达式和变量(在某些上下文中),不允许使用列名。

    出现这种情况的原因,是因为在SQL语句的编写格式不正确. 事例展示: 错误: string sql = "insert into person ([name], sex, salary) v ...

  4. 3_PHP表达式_5_数据类型转换_类型强制转换

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP类型转换分为类型自动转换和类型强制转换. 3.5.2 类型强制转换 类型强制转换允许编程人员手动将变量的数据 ...

  5. 3_PHP表达式_5_数据类型转换_类型自动转换

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP类型转换分为类型自动转换和类型强制转换. 1.布尔型数据参与算数运算时,TRUE被转换为整数1,FALSE被 ...

  6. 3_PHP表达式_2_变量

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP变量可分为自定义变量和预定义变量. 以下所谈到的变量均为自定义变量. 1.变量的基本概念 PHP的变量名遵循 ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第6节 Lambda表达式_1_函数式编程思想概述

    函数式编程和面向对象的区别

  8. C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符. 分类: iOS学习 c语言基础 2015-06-10 21:39 25人阅读 评论(0) 收藏

    二进制:以0b开头,只有0和1两种数字.如0101 十进制:0~9十个数字表示.如25 十六进制:以0~9,A~F表示,以0X开头.如0X2B 十进制转换为X进制:连除倒取余 X进制转换为十进制:按权 ...

  9. C:常量、变量 、 表达式 、运算符、 枚举

    常量 变量 表达式 运算符 枚举 1.布尔类型只有真和假 2运算符 >,<,<=,>=,==,!=.判断两个数是否相等要使用双等号‘==’.逻辑运算符的表达式结果非真即假,&a ...

随机推荐

  1. 021 CSS高级特性

    一:元素的显示与影藏 1.比较常见的单词 dispaly,visibility,overflow 2.display案例 如果影藏了,这个元素就看不见了,然后也不保留位置 <!DOCTYPE h ...

  2. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_37、分布式缓存Redis介绍

    笔记 1.分布式缓存Redis介绍      简介:讲解为什么要用缓存和介绍什么是Redis,新手练习工具          1.redis官网 https://redis.io/download   ...

  3. npm WARN deprecated fsevents windows

    更新下 使用yarn貌似会帮助跳过这个问题: info fsevents@2.1.2: The platform "win32" is incompatible with this ...

  4. shell编程系列9--文本处理三剑客之sed概述及常见用法总结

    shell编程系列9--文本处理三剑客之sed概述及常见用法总结 sed的工作模式:对文本的行数据一行行处理,如下图 sed(stream editor),是流编辑器,依据特定的匹配模式,对文本逐行匹 ...

  5. 【转载】 导入GoogleClusterData到MySQL

    原文地址: https://www.cnblogs.com/instant7/p/4159022.html ---------------------------------------------- ...

  6. 深入学习c++--lambda函数

    1. 简单使用 #include <iostream> #include <functional> using namespace std; struct Print { vo ...

  7. 迅速生成项目-react-scripts

    推荐指数:

  8. Egg.js中使用sequelize事务

    对数据库的操作很多时候需要同时进行几个操作,比如需要同时改动几张表的数据,或者对同一张表中不同行(row)或列(column)做不同操作,比较典型的例子就是用户转账问题(A账户向B账号汇钱): 1 从 ...

  9. c# .net 查找并安装CA根证书

    https CA根证书 用的是证书指纹来查找. 在用 collection.Find 之前 ,X509Store 一定要打开(Open),否则找到的数量(X509Certificate2Collect ...

  10. 基于libuv的TCP设计(二)

    一.本人设想的TCP服务器有如下特性: 1.启动服务,一直监听端口. 2.有新连接(客户端)就通知用户.并把连接接收到的数据回调给用户. 3.客户端连接上后用户可在任意时间发送数据给它. 4.客户端断 ...