常量

  • 定义:

    • 形式一

      // 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();推断是否是空

php常量,提前定义常量,魔术常量及基本数据类型的更多相关文章

  1. 12)PHP,常量和魔术常量

    义:用于存储一个不会变化也不希望变化的数据的标示符. 常量命名规则,同变量,但习惯说,常常将常量的名称使用“全大写”形式. 定义形式 使用define()函数定义 使用形式:define(“常量名”, ...

  2. php魔术方法和魔术常量

    1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一 ...

  3. PHP面向对象——类常量,魔术常量与延期绑定

    普通常量  define('常量名',常量值): 以前说过:define定义的常量,全局有效 无论是页面内,函数内,类内,都可以访问. 例: define('ACC','Deny')    class ...

  4. php5魔术函数、魔术常量

    魔术函数 1.__construct()  实例化对象时被调用,  当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct ...

  5. 几个 PHP 的“魔术常量”

    PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了. 有八个魔术常量它们的值随着它们在 ...

  6. php -- 魔术方法、魔术常量 简单介绍

    魔术方法:PHP把类中所有以__(两个下划线)开头的方法当成魔术方法,一般建议用户不要将自定义的方法前面加上__作为前缀.魔术方法: 1. __construct() 类的默认构造方法,如果__con ...

  7. 实例-PHP_SELF、 SCRIPT_NAME、 REQUEST_URI区别-获取前台公用文-dirname-PHP的"魔术常量"-str_replace

    Part1:实例 $_SERVER[PHP_SELF], $_SERVER[SCRIPT_NAME], $_SERVER['REQUEST_URI'] 在用法上是非常相似的,他们返回的都是与当前正在使 ...

  8. PHP的魔术常量(变量)、魔术方法(函数)、超全局变量

    https://www.cnblogs.com/ccw869476711/p/9183783.html 一.魔术常量(魔术变量) 概念:所谓的魔术常量就是PHP预定义的一些常量,这些常量会随着所在的位 ...

  9. 【PHP】- 魔术常量

    PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了.有八个魔术常量它们的值随着它们在代 ...

随机推荐

  1. Swift - 将Data数据转换为[UInt8](bytes字节数组)

    有时上传或者发送图片.文字时,需要将数据转换为 bytes 字节数组.下面介绍两种将 Data 转换为 [UInt8] 的方法. 假设我们有如下 Data 数据要转换: 1 let data = &q ...

  2. Eddy's picture

    Eddy's picture Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Tota ...

  3. WPF中StringToImage和BoolToImage简单用法

    在WPF的绑定控件操作中,经常会通过bool值或者某些特定的string值做出相应动作.但UI层控件的很多属性对应的都不是Bool值或者对应的只是固定的String值. 这个时候有两方法解决该问题. ...

  4. 3.ThinkPHP入门---视图

    视图:MVC三大组成部分,负责信息的展示和输出 1.视图的创建 创建的位置需要是在分组目录下的view目录下余控制器同名的目录中. 2.视图的展示 在smarty和tinkphp都是使用diaplay ...

  5. SQLServer 行转列,统计,二次分组

    create table test (   bizdate datetime, --日期   classes varchar(50), --班次 '白班' 或 '夜班'   qty int --产量 ...

  6. Git Learning Part III - working remotely (Github)

    help document of Github : https://help.github.com/ 1 upload 1.1 new update  Initialize a repository  ...

  7. Goldengate升级之目标端(replicat端)升级

    转自红黑联盟Goldengate升级之目标端(replicat端升级 要升级replicat端的原因为:目标端OGG软件版本与源端OGG软件版本不同,在实际生产应用中,经常发现replicat端事务丢 ...

  8. (转)基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

    http://www.cnblogs.com/wuhuacong/p/3871991.html 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览 在博客园很多文章 ...

  9. (转)基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用

    http://www.cnblogs.com/wuhuacong/p/3343967.html 大概一年前,我还在用Asp.NET开发一些行业管理系统的时候,就曾经使用这个组件作为文件的上传操作,在随 ...

  10. VMware ESXi定制版(OEM ISO)资源下载

    一.VMware ESXi 5.1.0 update03 链接: https://pan.baidu.com/s/1nvQ4CGD 密码: acc1 1.VMware-ESXi-5.1.0-Updat ...