开启php学习之旅--数据类型与运算符

类型转换

1.自动类型转换



第一个运算中,会先将$int转成浮点,然后和$f1相加.
**第二个运算中,会先将$str转成int类型,然后和$int相加。**

2.强制转换

在PHP中,实现强制转换,在要转换的变量之前加上用括号括起来的目标类型即可。
  • (int), (integer) - 转换为 整型(integer)
  • (bool), (boolean) - 转换为 布尔型(boolean)
  • (float), (double), (real) - 转换为 浮点型(float)
  • (string) - 转换为 字符串(string)
  • (array) - 转换为 数组(array)
  • (object) - 转换为 对象(object)
  • (unset) - 转换为 NULL

3.转换规则

  • 转换成字符串
    • 一个 整数 或 浮点数 被转变为数字的字面样式的字符串
    • 一个boolean TRUE 值被转换成 字符串”1”。 Boolean FALSE 被转换成”“
    • 数组转换成 字符串 “Array”
    • 资源总会被转变成”Resource id #1”这种结构的 字符串
    • NULL 总是被转变成空的字符串。
  • 2.转换成整型
    • 从布尔值转换,FALSE 将产生出 0(零),TRUE 将产生出 1(壹)。
    • 从浮点数转换,当从浮点数转换成整数时,将向下取整
    • 从字符串转换,如果字符串 没有包含 ‘.’,’e’或’E’ 并且数字值符合整数类型的限定 ,可被认定是一个 integer,
      否则被认定为一个float。字符串的开始部分给定了它的值,如果 字符串 以合法的数字开始,这个数字可直接使用。 否则,值就是 0 。
  • 3.转换成布尔型 当转换为 boolean 时,以下值被认为是 FALSE:
    • 布尔值 FALSE 自身
    • 整型值 0 (零)
    • 浮点型值 0.0 (零)
    • 空字符串, 以及 字符串 “0” (注意”00”、”0.0”被认为是TRUE)
    • 空数组
    • 特殊类型 NULL (包括尚未设定的变量)
    • -

4.数据类型相关函数


  • var_dump:打印变量的详细信息,包括类型和值
  • Gettype:获得类型
  • Settype:设置类型
  • Is系列:其中is_array会经常用到
  • Isset:检查一个变量是否存在(设置)
  • Empty:检查一个变量是否为空

    对于isset而言,只要声明过(有值),不管它的值是什么,那么就返回true
    对于empty而言,相当于 boolean(变量) ,然后再来取反。

运算符

1.常见的运算符

  • 算术运算符
    • 除法运算的结果,可能是浮点数,也可能是整数。
    • 在取模运算中,如果有小数,则会去除小数部分
    • 在取模运算中,结果的正负取决于第一个数
面试题:
执行程序段 echo 8%(-3) ?>将输出
 echo 8%(-3); ?>//2
  • 赋值运算符
 [思考]:$a = ($b = 4) + 5; 这行代码如何理解? $a = 9;
 答:赋值运算表达式的值也就是所赋的值。也就是说,“$a = 3”的值是 3。
表达式也是有值的。
有时候我们还将 = 和其它的运算组合到一起,形成组合赋值。
$a = $a + 5 => $a +=  5;
  • 字符串运算符
只有一个,就是 点 . ,没有加号,
注意的是,点 和 赋值运算符一起 形成 组成赋值。
.=
  • 比较运算符

    开启php学习之旅--数据类型与运算符_第1张图片

  • 递增/递减运算符

    • 如果比较一个整数和字符串,则字符串会被转换为整数。
    • 如果比较两个数字字符串,则作为整数比较。
    • 比如 0 == false 返回真,而0 === false 返回假。
  • 逻辑运算符

    开启php学习之旅--数据类型与运算符_第2张图片

  • 递增递减运算符

    • 递增/递减运算符不影响布尔值。递减 NULL 值也没有效果,但是递增 NULL 的结果是 1
    $e=true;
       var_dump($e++);//bool(true)
       var_dump($e);//bool(true)
  • 位运算符

    • 二进制的表示形式有 原码、反码、补码
    • 原码:将十进制转成的二进制。用最高位表示符号位,0表示正数,1表示负数。
    • 反码: 对于正数,反码和原码相同 对于负数,符号位不变,其它位取反。
    • 补码:对于正数,补码和原码相同对于负数,在反码的基础上 + 1。

开启php学习之旅--数据类型与运算符_第3张图片

  • 错误控制运算符
    • @ 运算符只对表达式有效。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。
  • 三目运算符
    • 从名字我们就可以得知,这个运算符有三个运算数。? : 表达式1 ? 表达式2 : 表达式3 等价于一个简单的if……else语句 If
      (表达式1){ 表达式2 } else { 表达式3 }不同的运算符所对应的的运算数是不同的,单目、双目、三目。
      一个运算符在进行运算的时候,需要确保运算数是一致的。

你可能感兴趣的:(php,php)