php常量,提前定义常量,魔术常量及基本数据类型
常量
定义:
形式一
// define("PI",常量值);
define("PI",3.14);
define("school","讲理");形式二
// 定义形式二
const cc1 = 1234;
const cc2 = "abcd";
使用:
形式一
// 直接使用常量名
echo "PI的值:".PI;形式二
// 通过constant函数,灵活性体现-->常量名也能够变
// 利用变量拼凑常量名)
echo "PI的值:".constant("PI");
ps:
- 推断常量是否存在:使用
defined(常量名)函数推断。 - 使用一个没有定义的常量:在php中,当使用一个没有定义的变量和常量的时候都会报错。可是不会输出没有定义变量的值,会输出没有定义常量的值,其值就是常量名。
提前定义常量
定义:系统中预先定义好的一些常量,大约有几百个。我们仅仅须要知道当中几个即可:
- M_PI: 圆周率
- PHP_OS: php执行所在的操作系统
- PHP_VERSION: php版本
- PHP_INT_MAX: php整数的最大值
… 很多其它參考php手冊
魔术常量
定义:事实上仅仅是常量的形式。但没有常量的“恒常”,其值事实上会变化的,仅仅是非常少的几个:
- _FILE_ :代表当前网页文件的完整物理路径
- _DIR_ :代表当前网页文件所在的目录
- _LINE_ :代表当前这个变量名所在的“行号”
数据类型
整体划分:
在php中有8中数据类型
基本类型(标量类型)
- 整数类型:int integer。
- 浮点型类型: float,double,real。
- 字符串类型: string;
- 布尔类型: bool,boolean。
复合类型:
- 数组:array;
- 对象:object。
特殊类型:
- 空类型:null,这样的类型仅仅有一个数据,那就是null。
- 资源类型:resource,如数据库的连接资源。
整数类型
整数类型有4种写法:
$n1 = 123; // 10进制写法
$n2 = 0123; // 8进制写法
$n3= 0x123; // 16进制写法
$n4 = 0b11101 // 二进制写法进行转换:
10进制转其它3种进制:
- decbin(一个10进制数字): 10_>2,返回的是二进制的字符串。
- decoct(一个10进制数字): 10->8,返回的是8进制的字符串。
- dechex(一个10进制数字): 10->16,返回的是16进制的字符串。
其它3种进制转10进制
- bindec(一个二进制字符串): 2->10,返回的是10进制的字符串;
- octdec(一个八进制字符串): 8->10,返回的是10进制的;
- hexdec(一个十六进制字符串): 16->10,,返回的是10进制的。
浮点类型:
浮点数的两种表示形式:
常规写法
v1 = 123.456科学计数法:带一个特殊符号
$v1 = 123.456E2 // 含义为:123.456乘以10的2次方,结果是浮点数
$v2 = 123.456E3; // 含义为:123.456乘以10的3次方,结果是浮点数
$v3 = 123E4; // 含义为:123乘以10的4次方,结果还是浮点数
浮点数使用的细节:
浮点数不应进行大小比較:
- 全部数字,终于的表示形式,都是二进制;
- 浮点数的二进制形式,不能全然表达准确。
- 因此浮点数的比較是不可靠的。
解决的方法:将浮点数转换成整数(乘以10的多次方)再比較
浮点数的小数部分可能无法用二进制精确表示;
当整数的运算结果超出整数的表示范围为的时候。系统自己主动将结果转换成浮点型.
字符串
四种形式:
$str1 = "字符串内容...";
$str2 = '字符串内容...';
$str3 = <<<"标识符A"
字符串内容
标识符A;
$str4 = <<<"标识符B"
字符串内容
标识符B;单引號字符串:
// 单引號字符串。=,须要转义或能够识别的转义符有:\和'
$str1 = 'abcdefg';双引號字符串:
// 双引號字符串,须要转义或能够识别的特殊符号有:\,",\n,\r(回车符),\t(tab符),$。 // 事实上就是取消了其在双引號字符串中的变量的“起始含义”
$str2 = "abcdefg";双引號定界符字符串:
// 双引號定界字符串,须要转义能够识别的特殊符号有:\n,\,
//\r,\t。双引號和单引號能够直接写出
$str4=<<<"ABCD"
abcdef,这里事实上就是字符串的内容
ABCD;注意:
- 上述标识符是我们自己取得一个相似常量名的“名字”,能够任意;
- 该字符串的结束一行,仅仅能出现该标识符本身和一个分号。其它什么都不能够出现,包含空格;
- 上述标识符的双引號能够省略(不推荐);
- 标识符仅仅是一种形式,能够反复出现。
单引號定界字符串:
// 单引號定界字符串,没有须要转义或者能够识别的特殊字符
$str3=<<<'ABCD'
abcdef,这里事实上就是字符串的内容
ABCD;
布尔类型(仅仅有两个数据:true 或 false)
单词:bool,boolean
常见使用形式
对变量直接作推断(參考手冊);
定义一个变量,用作推断标识。
类型转换
自己主动转换:
在不论什么运算中,假设须要某种类型的数据。而给出的数据不是该类型。通常都会发生自己主动类型转换,
比方:octdec(),bindec()…
在php中。算术运算符(包含-,*,/,%),就仅仅是对数值进行计算,如
$sum = "1" + "2"; // sum的值就是3强制类型转换:
自己主动类型转换时由”运算符“运算的时候决定的,而强制类型转换就是显示通过语法转换目标数据类型:
// 形式为:(要转换的数据类型)数据
$i = 10;
$s = (string)$i;通常的转换目标类型有:(int),(float),(string),(bool),(array),(object)
改变原来变量的数据类型:
上述强制类型转换中,并不会改变该变量本身的数据类型。相应,有一个语法是直接改变原来变量的数据类型:
settype($变量名,"目标类型");
类型相关的函数:
- var_dump():用于输出变量的”完整信息“。差点儿仅仅用于调试代码;
- getType($变量名):获取该变量的类型名字,返回一个表示该类型的名字的字符串,比方:”string:,”bool”,”double”。
。。。
- setType($变量名,”目标类型“);
- isset(),empty(),nuset()。
- is_XX类型($变量名):系列函数,推断是否是某种数据类型
- is_int();
- is_string();
- is_bool();
- is_float();
- is_numeric();推断是否是一个数字
- is_scalar();推断是否是一个标量
- is_array();
- is_object();
- is_null();推断是否是空
php常量,提前定义常量,魔术常量及基本数据类型的更多相关文章
- 12)PHP,常量和魔术常量
义:用于存储一个不会变化也不希望变化的数据的标示符. 常量命名规则,同变量,但习惯说,常常将常量的名称使用“全大写”形式. 定义形式 使用define()函数定义 使用形式:define(“常量名”, ...
- php魔术方法和魔术常量
1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一 ...
- PHP面向对象——类常量,魔术常量与延期绑定
普通常量 define('常量名',常量值): 以前说过:define定义的常量,全局有效 无论是页面内,函数内,类内,都可以访问. 例: define('ACC','Deny') class ...
- php5魔术函数、魔术常量
魔术函数 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct ...
- 几个 PHP 的“魔术常量”
PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了. 有八个魔术常量它们的值随着它们在 ...
- php -- 魔术方法、魔术常量 简单介绍
魔术方法:PHP把类中所有以__(两个下划线)开头的方法当成魔术方法,一般建议用户不要将自定义的方法前面加上__作为前缀.魔术方法: 1. __construct() 类的默认构造方法,如果__con ...
- 实例-PHP_SELF、 SCRIPT_NAME、 REQUEST_URI区别-获取前台公用文-dirname-PHP的"魔术常量"-str_replace
Part1:实例 $_SERVER[PHP_SELF], $_SERVER[SCRIPT_NAME], $_SERVER['REQUEST_URI'] 在用法上是非常相似的,他们返回的都是与当前正在使 ...
- PHP的魔术常量(变量)、魔术方法(函数)、超全局变量
https://www.cnblogs.com/ccw869476711/p/9183783.html 一.魔术常量(魔术变量) 概念:所谓的魔术常量就是PHP预定义的一些常量,这些常量会随着所在的位 ...
- 【PHP】- 魔术常量
PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了.有八个魔术常量它们的值随着它们在代 ...
随机推荐
- Linux - 硬件杂讲
先死后活,先记住,再灵活运用. 拍个快照,方便系统坏了,找回. 硬件知识,cpu,内存,i/o总线,电源,机箱. 需求:公司需要做一个内容发布网站,展示公司的信息,你需要选择符合公司要求的Web服务器 ...
- 关于c-string类
特别鸣谢:由张老师整理(原出处未知 一.C++ 字符串 C++ 提供了以下两种类型的字符串表示形式: C 风格字符串 C++ 引入的 string 类类型 1.C 风格字符串 C 风格的字符串起源于 ...
- Eclipse 连接hsqldb数据库
初学Java,在接触数据库根本无从下手,不知如何将程序和数据库连接起来,今天做一个记录. 数据库是:hsqldb_1_8_0_5 附链接百度云盘 链接:https://pan.baidu.com/s/ ...
- Arduino-IIC-Wire.h
前言:Wire.h是Arduino的IIC库. 一.Wire库函数 Wire.begin() Wire.requestFrom() Wire.beginTransmission() Wire.endT ...
- BZOJ 3509 分块FFT
思路: 跟今年WC的题几乎一样 (但是这道题有重 不能用bitset水过去) 正解:分块FFT http://blog.csdn.net/geotcbrl/article/details/506364 ...
- Spark Streaming概念学习系列之Spark Streaming容错
Spark Streaming容错 检查点机制-checkpoint 什么是检查点机制? Spark Streaming 周期性地把应用数据存储到诸如HDFS 或Amazon S3 这样的可靠存储系统 ...
- lua的Metatables和Metamethods
Metatable: lua中的每一个表都有其Metatable,默认情况下Metatable为nil.可通过setmetatable函数设置或者改变一个表的Metatable, 也可以通过getme ...
- JUC集合-BlockingQueue
BlockingQueue 阻塞队列,支持两个附加操作. 1,在队列为空时,获取元素的线程会等待对列变为非空. 2,在队列为满时,存储元素的线程会等待对列可用. 使用场景: 生产者往对列里添加元素 消 ...
- Android 消息队列机制
在非UI线程使用Handler进行线程通信时,一般都需要进行3个步骤: 创建Looper Looper.prepar() 创建Handler 启动消息循环Looper.loop() 通过这3步,基本就 ...
- [转] 利用git钩子,使用python语言获取提交的文件列表
项目有个需求,需要获取push到远程版本库的文件列表,并对文件进行特定分析.很自然的想到,要利用git钩子来触发一个脚本,实现获取文件列表的功能.比较着急使用该功能,就用python配合一些git命令 ...