php常量,预定义常量,魔术常量及基本数据类型

来源:互联网 发布:网络终端 编辑:程序博客网 时间:2024/05/10 07:03

常量

  • 定义:

    • 形式一

      // 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中,当使用一个未定义的变量和常量的时候都会报错,但是不会输出未定义变量的值,会输出未定义常量的值,其值就是常量名。

预定义常量

  • 定义:系统中预先定义好的一些常量,大约有几百个,我们只需要知道其中几个就行:

    1. M_PI:        圆周率
    2. PHP_OS:      php运行所在的操作系统
    3. PHP_VERSION:   php版本号
    4. PHP_INT_MAX:   php整数的最大值
      … 更多参考php手册

魔术常量

  • 定义:其实只是常量的形式,但没有常量的“恒常”,其值其实会变化的,只是很少的几个:

    1. _FILE_ :代表当前网页文件的完整物理路径
    2. _DIR_ :代表当前网页文件所在的文件夹
    3. _LINE_ :代表当前这个变量名所在的“行号”

数据类型

  • 总体划分:

    在php中有8中数据类型

  • 基本类型(标量类型)

    1. 整数类型:int integer;
    2. 浮点型类型: float,double,real;
    3. 字符串类型: string;
    4. 布尔类型: bool,boolean。
  • 复合类型:

    1. 数组:array;
    2. 对象:object。
  • 特殊类型:

    1. 空类型:null,这种类型只有一个数据,那就是null;
    2. 资源类型:resource,如数据库的连接资源。

整数类型

  • 整数类型有4种写法:

    $n1 = 123; // 10进制写法$n2 = 0123; // 8进制写法$n3= 0x123; // 16进制写法$n4 = 0b11101 // 二进制写法
  • 进行转换:

    • 10进制转其他3种进制:

      1. decbin(一个10进制数字): 10_>2,返回的是二进制的字符串;
      2. decoct(一个10进制数字): 10->8,返回的是8进制的字符串;
      3. dechex(一个10进制数字): 10->16,返回的是16进制的字符串。
    • 其他3种进制转10进制

      1. bindec(一个二进制字符串): 2->10,返回的是10进制的字符串;
      2. octdec(一个八进制字符串): 8->10,返回的是10进制的;
      3. hexdec(一个十六进制字符串): 16->10,,返回的是10进制的。

浮点类型:

  • 浮点数的两种表示形式:

    1. 常规写法

      v1 = 123.456
    2. 科学计数法:带一个特殊符号

      $v1 = 123.456E2 // 含义为:123.456乘以10的2次方,结果是浮点数$v2 = 123.456E3; // 含义为:123.456乘以10的3次方,结果是浮点数$v3 = 123E4; // 含义为:123乘以10的4次方,结果还是浮点数
  • 浮点数使用的细节:

    • 浮点数不应进行大小比较:

      1. 所有数字,最终的表示形式,都是二进制;
      2. 浮点数的二进制形式,不能完全表达准确;
      3. 因此浮点数的比较是不可靠的。

      解决办法:将浮点数转换成整数(乘以10的多次方)再比较

    • 浮点数的小数部分可能无法用二进制精确表示;

    • 当整数的运算结果超出整数的表示范围为的时候,系统自动将结果转换成浮点型.

字符串

  • 四种形式:

    $str1 = "字符串内容...";$str2 = '字符串内容...';$str3 = <<<"标识符A"字符串内容标识符A;$str4 = <<<"标识符B"字符串内容标识符B;
  • 单引号字符串:

    // 单引号字符串,=,需要转义或可以识别的转义符有:\和'$str1 = 'abcdefg';
  • 双引号字符串:

    // 双引号字符串,需要转义或可以识别的特殊符号有:\,",\n,\r(回车符),\t(tab符),$。// 其实就是取消了其在双引号字符串中的变量的“起始含义”$str2 = "abcdefg";
  • 双引号定界符字符串:

    // 双引号定界字符串,需要转义可以识别的特殊符号有:\n,\,//\r,\t。双引号和单引号可以直接写出$str4=<<<"ABCD"abcdef,这里其实就是字符串的内容ABCD;

    注意:

    1. 上述标识符是我们自己取得一个类似常量名的“名字”,可以随意;
    2. 该字符串的结束一行,只能出现该标识符本身和一个分号,其他什么都不可以出现,包括空格;
    3. 上述标识符的双引号可以省略(不推荐);
    4. 标识符只是一种形式,可以重复出现。
  • 单引号定界字符串:

    // 单引号定界字符串,没有需要转义或者可以识别的特殊字符$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类型($变量名):系列函数,判断是否是某种数据类型
      1. is_int();
      2. is_string();
      3. is_bool();
      4. is_float();
      5. is_numeric();判断是否是一个数字
      6. is_scalar();判断是否是一个标量
      7. is_array();
      8. is_object();
      9. is_null();判断是否是空
0 0
原创粉丝点击