zoukankan      html  css  js  c++  java
  • 3_PHP表达式_3_有关变量或常量状态的函数

    以下为学习孔祥盛主编的《PHP编程基础与实例教程》(第二版)所做的笔记。

    1. 数据类型查看函数

      PHP为变量或常量提供了查看数据类型的函数,其中包括gettype()和var_dump()函数。

    (1)gettype()函数

      语法格式:string gettype( mixed var )

      函数功能:gettype()函数需要变量名(带$符号)或常量名作为参数,该函数返回变量或常量的数据类型,这些数据类型包括:integer、double、string、array、object、unknown type(未知数据类型)等。

    (2)var_dump()函数

      语法格式:void var_dump(mixed var)

      函数功能:var_dump()函数需要传递一个变量名(带$符号)或常量名作为参数,经常使用var_dump()函数查看变量或常量的值、数据类型等信息。

     1 <?php
     2 define("USERNAME","root");
     3 $score = 67.0;
     4 $age = 20;
     5 $words = array(2,4,6,8,10);
     6 echo gettype(USERNAME); //输出: string
     7 echo "<br/>";
     8 echo gettype($score);   //输出:double
     9 echo "<br/>";
    10 echo gettype($age);     //输出:integer
    11 echo "<br/>";
    12 echo gettype($words);     //输出:array
    13 echo "<br/>";
    14 echo var_dump(USERNAME);    //输出:string(4) "root"
    15 echo "<br/>";
    16 echo var_dump($score);  //输出:float(67)
    17 echo "<br/>";
    18 echo var_dump($age);  //输出:int(20)
    19 echo "<br/>";
    20 echo var_dump($words);  //输出:array(5) { [0]=> int(2) [1]=> int(4) [2]=> int(6) [3]=> int(8) [4]=> int(10) } 
    21 echo "<br/>";
    22 ?>

    输出:

    string
    double
    integer
    array
    string(4) "root"
    float(67)
    int(20)
    array(5) { [0]=> int(2) [1]=> int(4) [2]=> int(6) [3]=> int(8) [4]=> int(10) } 

    2.检查常量或变量是否定义函数

    (1)defined()函数

       语法格式:bool defined()函数定义。该函数参数为常量名(注意常量名必须带双引号或单引号),如果常量经过define()函数定义,该函数返回布尔值TRUE,否则返回FALSE。

    1 <?php
    2 define("USERNAME","root");
    3 if(defined("USERNAME")){
    4     echo "USERNAME常量经过了define()函数的定义";
    5 }
    6 echo "<br/>";
    7 echo STUDENT;
    8 ?>

    输出:

    USERNAME常量经过了define()函数的定义
    
    Warning: Use of undefined constant STUDENT - assumed 'STUDENT' (this will throw an Error in a future version of PHP) in D:phpStorm_Savefirsthelloworld.php on line 7
    STUDENT

    说明:

      由于STUDENT常量未经define()函数定义,输出常量STUDENT的值时,先抛出Notice信息,然后将常量名作为常量的值输出。编程人员必须避免使用未经define()函数定义的常量。

    (2)isset()函数

      语法格式:bool isset(mixed var)

      函数功能:检查变量var是否定义。该函数参数为变量名(带$号),如果变量已经定义,该函数返回布尔值TRUE,否则返回FALSE。

     1 <?php
     2 $age = 20;
     3 if(isset($age)){
     4     echo '变量$age已经定义<br/>';
     5 }else{
     6     echo '变量$age没有定义<br/>';
     7 }
     8 if(isset($name)){
     9     echo '变量$name已经定义<br/>';
    10 }else{
    11     echo '变量$name没有定义<br/>';
    12 }
    13 ?>

    输出:

    变量$age已经定义
    变量$name没有定义

    注意单引号与双引号的区别:

      echo语句输出的字符串必须使用一对单引号( ‘ )指定。如果将上面的程序的单引号全都替换成双引号,执行结果将会如下

    Notice: Undefined variable: age已经定义 in D:phpStorm_Savefirsthelloworld.php on line 4
    变量
    
    Notice: Undefined variable: name没有定义 in D:phpStorm_Savefirsthelloworld.php on line 11
    变量

    说明:

      从执行结果来看:PHP预处理器会把 “$age已经定义” 以及 " $name已经定义 "作为变量名进行解析(PHP支持中文简体变量名,但不建议使用中文简体变量名)。

    3.取消变量定义unset()函数

      unset()函数语法格式:void unset(mixed var)

      函数功能:取消变量var的定义。该函数的参数为变量名(带$符号),函数没有返回值。

     1 <?php
     2 $age1 = 18;
     3 $age2 = &$age1;
     4 $age2 = 20;
     5 echo $age1;
     6 echo "<br/>";
     7 //取消 $age1 的定义
     8 unset($age1);
     9 //由于 $age1 没有定义,该语句将输出notice信息
    10 echo $age1;
    11 echo "<br/>";
    12 echo $age2;
    13 ?>

    输出:

    20
    
    Notice: Undefined variable: age1 in D:phpStorm_Savefirsthelloworld.php on line 8
    
    20

    说明:

      使用unset()函数,只是断开了变量名与变量的值之间的联系,没有立即销毁变量$age1, 变量 $age1由PHP垃圾回收机制在 “适当” 时刻进行回收。

    4.检查变量是否为 “空”

       PHP提供了检查变量是否为“空”的两个函数: is_null()函数和empty()函数。

    (1)is_null() 函数

      语法格式:boolean is_null(mixed var)

      函数功能:检查变量var是否为NULL,如果值为NULL则返回TRUE,否则返回FALSE。

      函数说明:is_null() 函数用于判断变量是否为NULL时,可以看作isset()函数的反函数。下面3种情况变量的值为NULL。

      (1)变量未经定义。

      (2)变量的值赋值为NULL。

      (3)变量经unset()函数处理后。

     1 <?php
     2 var_dump(is_null($a));
     3 echo "<br/>";
     4 
     5 $b = null;
     6 var_dump(is_null($b));
     7 echo"<br/>";
     8 
     9 $c = FALSE;
    10 var_dump(is_null($c));
    11 echo "<br/>";
    12 
    13 unset($c);
    14 var_dump(is_null($c));
    15 ?>

    输出:

    Notice: Undefined variable: a in D:phpStorm_Savefirsthelloworld.php on line 2
    bool(true)
    bool(true)
    bool(false)
    
    Notice: Undefined variable: c in D:phpStorm_Savefirsthelloworld.php on line 14
    bool(true) 

    说明:

      $a 与 $b 虽然都为NULL,但由于 $a 未经定义,因此 is_null($a)会抛出Notice信息。$b的值定义为NULL,is_NULL($b)不会抛出Notice信息。

    (2)empty()函数

      语法格式:boolean empty(mixed var)

      函数功能:用于检查变量var是否为“ 空 ” ,该函数参数var为变量名( 带$号 )。如果变量var为空,则empty()函数返回TRUE,否则返回FALSE。

      注意:使用empty()函数时,变量为 "空" 的意义为:若变量var的值为空字符串" "、整数0、字符串零“0”、浮点数0.0、NULL、变量未被定义、FALSE或空数组array(),都将视为 “ 空 ”。empty()函数只用于检测变量是否为空,传递其他参数都将造成程序解析错误。 

     1 <?php
     2 class Student{
     3 }
     4 $a = 0;
     5 $b = "0";
     6 $c1 = "";
     7 $c2 = " ";      //说明:空格字符串“ ”不是“空”
     8 $d = NULL;
     9 $e = FALSE;
    10 $f = array();
    11 $g = new Student();
    12 $h = 0.0;
    13 var_dump(empty($a));    //输出: bool(true)
    14 echo "<br/>";
    15 var_dump(empty($b));   //输出: bool(true)
    16 echo "<br/>";
    17 var_dump(empty($c1));   //输出: bool(true)
    18 echo "<br/>";
    19 var_dump(empty($c2));   //输出: bool(false)
    20 echo "<br/>";
    21 var_dump(empty($d));   //输出: bool(true)
    22 echo "<br/>";
    23 var_dump(empty($e));   //输出: bool(true)
    24 echo "<br/>";
    25 var_dump(empty($f));   //输出: bool(true)
    26 echo "<br/>";
    27 var_dump(empty($f));   //输出: bool(true)
    28 echo "<br/>";
    29 var_dump(empty($g));   //输出: bool(false)
    30 echo "<br/>";
    31 var_dump(empty($h));   //输出: bool(true)
    32 echo "<br/>";
    33 ?>

    输出:

    bool(true)
    bool(true)
    bool(true)
    bool(false)
    bool(true)
    bool(true)
    bool(true)
    bool(true)
    bool(false)
    bool(true) 

    说明:

    (1)空字符串 “” 为空,空格字符串 “ ” 不是 “ 空 ”。

    (2)“一个变量的值为NULL” 与 “一个变量未被定义”是两个不同的概念。

    (3)对于一个未经定义的变量$a, isset($a)的结果是FALSE,且不会抛出Notice信息。is_null($a)与empty($a)的结果虽然都是TRUE,但is_null($a)将抛出Notice信息。

    1 <?php
    2 var_dump(is_null($a));  //抛出$a变量未定义Notice信息,然后输出:true
    3 echo "<br/>";
    4 var_dump(empty($a)); //直接输出:true
    5 echo "<br/>";
    6 var_dump(isset($a));  //直接输出: false
    7 ?>

    输出:

    Notice: Undefined variable: a in D:phpStorm_Savefirsthelloworld.php on line 2
    bool(true)
    bool(true)
    bool(false) 

    5.数据类型检查函数

      PHP为变量或常量提供了检查数据类型的函数,这些函数的共同特征是:需要向这些函数传递一个变量名(带$符号)或常量名(注意常量名必须带双引号或单引号)作为参数,如果检查复合要求,函数返回TRUE,否则返回FALSE。

    数据类型检查函数

    函数名 功能 语法格式
    is_bool 检测变量或常量是否是布尔型 bool is_bool(mixed var)
    is_string 检测变量或常量是否是字符串 bool is_string(mixed var)

    is_int

    is_integer

    is_float

    检测变量或常量是否是整数 bool is_int(mixed var)

    is_double

    is_float

    is_real

    检测变量或常量是否是浮点型 bool is_float(mixed var)
    is_numeric 检测变量或常量是否为数字或数字字符串 bool is_numeric(mixed var)
    is_scaler 检测变量或常量是否是标量数据类型 bool is_scaler(mixed var)
    is_array 检测变量是否是数组 bool is_array(mixed var)
    is_object 检测变量是否是一个对象 bool is_object(mixed var)
    is_resource 检测变量是否为资源对象 bool is_resource(mixed var)
     1 <?php
     2 class Student{
     3 }
     4 $bool = TRUE;
     5 $string = "你好";
     6 $int = 100;
     7 $float = 100.00;
     8 $numeric = "01234.56789";
     9 $array = array(1,3,5);
    10 $object = new Student();
    11 var_dump(is_bool($bool));       //输出: bool(true)
    12 echo "<br/>";
    13 var_dump(is_string($string));   //输出: bool(true)
    14 echo "<br/>";
    15 var_dump(is_int($int));         //输出: bool(true)
    16 echo "<br/>";
    17 var_dump(is_float($float));     //输出: bool(true)
    18 echo "<br/>";
    19 var_dump(is_numeric($numeric)); //输出:bool(true)
    20 echo "<br/>";
    21 var_dump(is_array($array));     //输出:bool(true)
    22 echo "<br/>";
    23 var_dump(is_object($object));    //输出:bool(true)
    24 echo "<br/>";
    25 ?>

    输出:

    bool(true)
    bool(true)
    bool(true)
    bool(true)
    bool(true)
    bool(true)
    bool(true) 

      

  • 相关阅读:
    小程序 canvas实现图片预览,图片保存
    MySQL实现排名并查询指定用户排名功能
    微信小程序canvas把正方形图片绘制成圆形
    WINDOW 安装ImageMagick服务端和PHP的imagick插件
    安装PHP扩展32位与64位的误区(x86与x64的查看)
    linux 安装 ImageMagick 和 imagick 扩展
    php 获取顶级域名
    php中通过Hashids将整数转化为唯一字符串
    yii2项目中运行composer 过程中遇到的问题
    yii2 mysql根据多个字段的数据计算排序
  • 原文地址:https://www.cnblogs.com/xiaoxuStudy/p/11604012.html
Copyright © 2011-2022 走看看