前提须知:
- 字符串定义方式:单引号、双引号、heredoc和newdoc
- 三大数据类型(标量、复合、特殊):又细分成八种基本的数据类型
- 浮点数(十进制小数):不能用二进制很准确的表示
- 浮点数:不能运动到运算当中【精确讲是不能运用到相等判断】,因为 计算是交给计算机cpu计算(会转换成二进制计算)
例子1:
【
0.1转二进制不能表示的原因啦:
0.1×2=0.2 .....................0
0.2×2=0.4 ......................0
0.4×2=0.8 .....................0
0.8×2=1.6.......................1
0.6×2=1.2.......................1
0.2×2=0.4.......................0
.....
是无限循环的
】
例子2:
【
$a = 0.1;
$b = 0.7;
if($a + $b == 0.8)
//false = 0.7999...
】
- 单引号、双引号、heredoc和newdoc的区别
- 单引号:不能解析变量、不能解析转义字符(只能解析单引【‘】号和反斜杠【\】本身)
- 双引号:双引号可以解析变量,变量可以使用特殊字符和{}包含、可以解析所有转义字符
- newdoc:类似单引号【<<<'EOT' 内容 EOT;用来处理大文本】
- heredoc:类似双引号【<<<EOT 内容 EOT;用来处理大文本】
- 区别:单引号效率更高
- 三大数据类型(标量、复合、特殊)
- 四种标量类型:
boolean (布尔型):这是最简单的类型,只有两种取值,可以为 TRUE/true 或 FALSE/false ,不区分大小写。
integer (整型):在32 位操作系统中它的有效范围是:-2 147 483 648~+2 147 483 647。整型值可以使用十进制,十六进制或八进制表示,前面可以加上可选的符号(- 或者 +)。八进制表示数字前必须加上 0(零),十六进制表示数字前必须加上 0x。
float (浮点型, 也称作 double):在32 位操作系统中的有效范围为:1.7E-308~1.7E+308。
string (字符串):字符型变量不同于其他编程语言有字符与字符串之分,在PHP 中,统一使用字符型变量来定义字符或者字符串。 - 两种复合类型:
array (数组):数组型变量是一种比较特殊的变量类型,将在后续章节中详细说明。
object (对象):对象也是一种特殊的数据类型。要创建object变量,请使用 new 关键字。详细请查看:PHP对象类型(object) - 两种特殊类型:
resource(资源):源是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。详情请查看:PHP资源类型(resource)
NULL(NULL):表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。 - 注意:
可能还会读到一些关于“双精度(double)”类型的参考。实际上 double 和 float 是相同的,由于一些历史的原因,这两个名称同时存在。
变量的类型通常不是由程序员设定的,是由 PHP 根据该变量使用的上下文在运行时决定的。也就是说,PHP是弱类型的语言,程序员在声明变量时无需声明变量类型,PHP解释器会自动识别。
- FALSE的七种情况
- 0,0.0 ,'','0',false,array(),NULL
- 超全局变量是:
- $GLOBALS(包含后面所有内容)
- $_SERVER
- $_REQUEST(包含$_GET、$_POST,$_COOKIE,不安全,相当于万能钥匙【get,post数据都能够接受到】,尽量少用)
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
NULL:3中情况:【直接赋值为NULL、未定义的变量、unset销毁的变量】
const和define的区别:定义:const、define(const更快,是语言结构,define是函数)
1、const用于类成员变量的定义,一经定义,不可修改。Define不可以用于类成员变量的定义,可用于全局常量。
2、Const可在类中使用,define不能
3、Const不能再条件语句中定义常量
<?php
if (...){
const FOO = 'HEHE'; // 无效的invalid
}
if (...) {
define('FOO', 'HEHE'); // 有效的valid
}
4、const采用普通的常量名称,define可以采用表达式作为名称
<?php
const FOO = 'BAR';
$i = 1;
define('BIT_' . $i, 1 << $i);
?>
5、const只能接受静态的标量,而define可以采用任何表达式
<?php
const BIT_5 = isset($i) ? $i: 0; // 无效的invalid
define('BIT_5', isset($i) ? $i: 0); // 有效的valid
6、const定义的常量时大小写敏感,而define可以通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。
<?php
define('DEMO', 'HEHE', true);
echo DEMO; // HEHE
echo demo; // HEHE
<?php
echo 'PHP常用的预定义常量'.'<br><br>';
echo '当前php的版本为(PHP_VERSION):'.PHP_VERSION.'<br><br>';
echo '当前所使用的操作系统类型(PHP_OS):'.PHP_OS.'<br><br>';
echo 'web服务器与PHP之间的接口为(PHP_SAPI):'.PHP_SAPI.'<br><br><br>';
echo '最大的整型数(PHP_INT_MAX):'.PHP_INT_MAX.'<br><br>';
echo 'php默认的包含路径(DEFAULT_INCLUDE_PATH):'.DEFAULT_INCLUDE_PATH.'<br><br>';
echo 'pear的安装路径(PEAR_INSTALL_DIR):'.PEAR_INSTALL_DIR.'<br><br>';
echo 'pear的扩展路径(PEAR_EXTENSION_DIR):'.PEAR_EXTENSION_DIR.'<br><br>';
echo 'php的执行路径(PHP_BINDIR):'.PHP_BINDIR.'<br><br>';
echo 'php扩展模块的路径为(PHP_LIBDIR):'.PHP_LIBDIR.'<br><br>';
echo '指向最近的错误处(E_ERROR):'.E_ERROR.'<br><br>';
echo '指向最近的警告处(E_WARNING):'.E_WARNING.'<br><br>';
echo '指向最近的注意处(E_NOTICE):'.E_NOTICE.'<br><br>';
echo '自然对数e值(M_E):'.M_E.'<br><br>';
echo '数学上的圆周率的值(M_PI):'.M_PI.'<br><br>';
echo '逻辑真值(TRUE):'.TRUE.'<br><br>';
echo '逻辑假值(FALSE):'.FALSE.'<br><br>';
echo '当前文件行数(__LINE__):'.__LINE__.'<br><br>'; //是两个下划线
echo '当前文件路径名(__FILE__):'.__FILE__.'<br><br>';
echo '<br>'.'当前被调用的函数名(__FUNCTION__):'.__FUNCTION__.'<br><br>';
echo '类名(__CLASS__):'.__CLASS__.'<br><br>';
echo '类的方法名(__METHOD__):'.__METHOD__.'<br><br>';
echo '命名空间(__NAMESPACE__):'.__NAMESPACE__.'<br><br>';
内容是对慕课网视频教程《360大牛带你横扫PHP职场 全面解读PHP面试》的看后总结记录