Blogger Information
Blog 15
fans 0
comment 1
visits 10870
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
变量类型与转换——4.12
吴明的博客
Original
763 people have browsed it

变量的类型与转换

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

  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

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post