博客列表 >变量类型与转换——4.12

变量类型与转换——4.12

吴明的博客
吴明的博客原创
2018年04月13日 00:23:44759浏览

变量的类型与转换

变量的类型可以分为标量,复合变量和特殊类型

  1. 标量的定义:单值变量,一一对应的映射关系包括整型,浮点型,字符串,布尔四种。

  2. 复合变量:多值变量,包括数组和对象二种

        1. 特殊类型:资源类型resource,null

           $file = fopen('demo1.php','r') or die('打开失败');

           echo   fread($file, filesize('demo1.php'));

                      fclose($file);

          fopen->fread->fclose 是一个完成的资源处理过程

          变量类型的查询设置和检测

          1.类型查询 gettype($var);

          2.类型检测

          is_int(),is_float(), is_string(), is_bool(), is_array(), is_abject() , is_null(), is_resource(),is_numercia()    这个is_numercia()还是经常使用的,判断是否为数字或者数字类的字符串。

          3.类型转换

          包括强制转换 int($name) intval($name)这样的,都是暂时性的改变了变量的值,没有改变变量类型,原值也不变。 但是settype(变量,修改后的变量类型)




          实例

          <?Php
          $price = 3042.23;
          settype($price,'integer');//返回布尔值

          运行实例 »

          点击 "运行实例" 按钮查看在线实例

      重点部分

      is_null()  ,is_empty(),   isset()    三者的区别

      一、is_null() 返回true 的三种情况

      a.变量已经声明但是还未初始化

      b.变量赋值了 null

      c . 非空变量销毁了 ,即unset()后的变量也是null类型

      实例

      $val1;  //已声明,但未赋值
      $val2 =  null; //直接用null初始化变量
      $val3 = 'php';
      unset($val3);  //彻底销毁变量
      
      
      @var_dump(is_null($val1) ? true : false); //true
      var_dump(is_null($val2) ? true : false); //true
      @var_dump(is_null($val3) ? true : false); //true
      var_dump(is_null('')); //空字符串返回false

      运行实例 »

      点击 "运行实例" 按钮查看在线实例

      二、is_empty() 返回true 的情况

      a.空字符串,空数组 

      b.null

      c. 赋值为 0,"0",false 

      总结:

       1. 如果一个变量不存在,它即是空,也是null,用is_null() / empty()都可以判断

       2. 如果一个变量存在,但它的值对运行结果无影响,则视为空

       3. null一定是空,但空不一定是null,因为它可能是空值或0或false

      实例

      $str1 = '';
      $str2 = [];
      $str3 = '0';
      $str4 = 0;
      $str5 = null;
      $str6 = false;
      $str7 = 'peter zhu';
      
      echo '<hr>';
      var_dump(empty($str1) ? true : false);	//空字符串,true
      var_dump(empty($str2) ? true : false);	//空数组t,true
      var_dump(empty($str3) ? true : false);	//字符型数字0,true
      var_dump(empty($str4) ? true : false);	//数字0,true
      var_dump(empty($str5) ? true : false);	//null值,true
      var_dump(empty($str6) ? true : false);	//true
      var_dump(empty($str7) ? true : false);	//有值且不为空,返回false

      运行实例 »

      点击 "运行实例" 按钮查看在线实例

      三、 isset()  是null的取反操作..

      总结:变量已经存在,并且它的值不为null,返回true,否则为false

      实例

      <php
      $domain = 'www.php.cn';
      $name = null;
      $job;
      
      echo '<hr>';
      var_dump(isset($var));
      var_dump(isset($domain) ? true : false);
      var_dump(isset($name) ? true : false);
      var_dump(isset($job) ? true : false); //false,未赋值并不报错,与is_null不同

      运行实例 »

      点击 "运行实例" 按钮查看在线实例

      三个函数总结: 

         1.变量有二种状态: 已声明, 未声明

        2. 已声明的变量也有二种状态: 已赋值(初始化), 未赋值(未初始化)

        3. 变量可能会被赋值类型: null, 空值, 非空值

             3.1: null值: is_null()

            3.2: 空值: empty()

             3.3: 空值或非空值: isset()

       基本使用原则:

        1. 对于未声明的变量只能使用isset()进行判断

        2. 对于已声明的变量,为空判断用empty(),是否初始化判断用is_null()

      作用域

       作用域只有三个:

        1.全局:函数之外创建,仅在当前脚本除函数之外的地方使用;

        2.局部:函数内部创建,仅能在函数中使用,外部不可访问;

        3.静态:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失;

      全局变量在函数可以用超级全局函数$GLOBALS[] 来调用 如:

      $siteName = '学习php';

      $GLOBALS['siteName']

      332802364769625163.jpg

      115333739229628725.jpg

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议