【1-2】PHP中的常量及数据类型

前提须知:

  1. 字符串定义方式:单引号、双引号、heredoc和newdoc
  2. 三大数据类型(标量、复合、特殊):又细分成八种基本的数据类型
  3. 浮点数(十进制小数):不能用二进制很准确的表示
  4. 浮点数:不能运动到运算当中【精确讲是不能运用到相等判断】,因为 计算是交给计算机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的区别
  1. 单引号:不能解析变量、不能解析转义字符(只能解析单引【‘】号和反斜杠【\】本身) 
  2. 双引号:双引号可以解析变量,变量可以使用特殊字符和{}包含、可以解析所有转义字符
  3. newdoc类似单引号【<<<'EOT'  内容  EOT;用来处理大文本】
  4. heredoc:类似双引号【<<<EOT  内容   EOT;用来处理大文本】
  5. 区别:单引号效率更高
  • 三大数据类型(标量、复合、特殊)
  1. 四种标量类型:
    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 中,统一使用字符型变量来定义字符或者字符串。
  2. 两种复合类型:
    array (数组):数组型变量是一种比较特殊的变量类型,将在后续章节中详细说明。
    object (对象):对象也是一种特殊的数据类型。要创建object变量,请使用 new 关键字。详细请查看:PHP对象类型(object)
  3. 两种特殊类型:
    resource(资源):源是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。详情请查看:PHP资源类型(resource)
    NULL(NULL):表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。
  4.  注意:
    可能还会读到一些关于“双精度(double)”类型的参考。实际上 double 和 float 是相同的,由于一些历史的原因,这两个名称同时存在。
    变量的类型通常不是由程序员设定的,是由 PHP 根据该变量使用的上下文在运行时决定的。也就是说,PHP是弱类型的语言,程序员在声明变量时无需声明变量类型,PHP解释器会自动识别。 
  • FALSE的七种情况
  1. 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面试》的看后总结记录

猜你喜欢

转载自blog.csdn.net/chen19930404/article/details/87931123