常量

  • 定义:

    • 形式一

      // 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. python spark 决策树 入门demo

    Refer to the DecisionTree Python docs and DecisionTreeModel Python docs for more details on the API. ...

  2. CodeForces 486B

    Let's define logical OR as an operation on two logical values (i. e. values that belong to the set { ...

  3. poj--2186--Popular Cows (scc+缩点)

    Popular Cows Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total ...

  4. k8s istio 配置请求的路由规则

    使用istio我们可以根据权重和HTTP headers来动态配置请求路由. 基于内容的路由 因为BookInfo示例部署了3个版本的评论微服务,我们需要设置一个默认路由. 否则,当你多次访问应用程序 ...

  5. Gym-101915J The Volcano Eruption 计算几何

    题面 题意:给你一个矩阵,然后有很多的圆,这些圆可能相交着,一个或者几个就导致这个矩形被分割开了,就是从最下面的边到上面的边,连线被这些圆阻隔了,每一堆圆当做一个阻碍,问一共有几个阻碍 题解:看起来好 ...

  6. python 数据的基本类型(字符串)

    python 基础 ascii:字母,数字,特殊字符:1个字节(byte) 8个字位(bit)unicode: 16位两个字节,升级32个字节 4个字位utf-8:最少一个字节 8个表示. 英文 8字 ...

  7. 实现第三方登录(QQ、微信、微博)

    第三方登录,就是使用大家比较熟悉的比如QQ.微信.微博等第三方软件登录自己的网站,这可以免去注册账号.快速留住用户的目的,免去了相对复杂的注册流程.下边就给大家讲一下怎么使用PHP开发QQ登录的功能. ...

  8. POJ 2513 trie树+并查集判断无向图的欧拉路

    生无可恋 查RE查了一个多小时.. 原因是我N define的是250500 应该是500500!!!!!!!!! 身败名裂,已无颜面对众人.. 吐槽完了 我们来说思路... 思路: 判有向图能否形成 ...

  9. 第7章 性能和可靠性模式 Failover Cluster(故障转移群集)

    上下文 您已经决定在设计或修改基础结构层时使用群集以提供高度可用的服务. 问题 您应该如何设计一个高度可用的基础结构层,来防止因单台服务器或它所运行的软件出现故障而导致的服务丢失? 影响因素 在设计高 ...

  10. 关于中文期刊LaTeX的CCT相关

    最近写完了大论文,回身看了一下CTeX的信息,看了下弄改进版套装的山大和清华的两位大神的博客,发现大神们倒腾过CCT. CCT的FTP还是一直可用的,ftp://ftp.cc.ac.cn/pub/cc ...