zoukankan      html  css  js  c++  java
  • PHP变量

    1.1:类型

    变量有8种类型,不必死记硬背,在实际运用中加深理解

    1) 整型 [integer] 数学中的整数
    2) 浮点型 [float,double] 数学中的小数
    3) 字符串 [string] 一串字符
    4) 布尔 [boolean] 真假
    5) 数组 [array] 键值对复合数据
    6) 对象 [Object] [在后面的面向对象中会学到] 
    7) NULL 没有值
    8) 资源 [resource] “吸管”
    

    NULL是什么? NULL类型只标注了它的类型为NULL
    它的值的字段是空的,NULL是没有值的

    $a = 3;//整型
    $b = 3.14;//浮点型
    $c = null;//null型
    $d = 'hello';//字符串
    $e = true;//布尔型
    echo $D;
    

    变量名称的命名规范:
    [a-zA-Z0-9]和下划线(_)
    1)变量名是区分大小写的
    2)不能以数字开头

    1.2:变量检测

    echo 一个不存在的变量,会报notice级别的错误,
    所以要检测一下这个变量是否存在
    如何检测变量是否存在?
    isset — 检测变量是否设置
    已声明的变量返回 true,未声明的变量返回 false.
    检测一个变量是否存在: 就是看花名册中是否有这个变量名

    $b = null; $c = false; $d=0; $e='';
    //分别检测上述变量是否存在 
    if(isset($a)) {
      echo '变量b存在';
     }else{
      echo '变量b不存在'; 
    }
    

    对于值为 NULL 的变量,也返回 false,因为null没有值 未曾声明的变量,当然也不存在

    1.3:类型检测

    检测一个变量,php是把它存储成一个什么样的类型的 对于php而言获取它的变量类型是很简单的 因为箱子里面已经存储了它的变量类型
    gettype — 获取变量的类型 [现成的系统函数]

    $a = false;
    echo gettype($a);
    $b = "1";
    echo gettype($b);
    $c = 1.11;
    echo gettype($c);
    $d = 'hello';
    echo gettype($d);
    $e = null;
    echo gettype($e);
    

    判断变量是否是某种类型

    is_float()[is_double] 检测变量是否为浮点型
    is_int()[is_integer] 检测变量是否为整型
    is_string() 检测变量是否为字符串
    is_object() 检测变量是否为对象
    is_array() 检测变量是否为数组
    is_resource 检测变量是否为资源类型
    is_bool 检测变量是否是布尔型
    is_null 检测变量是否为 NULL
    $a = 'hello';
    if(is_string($a)) {
      echo 'a是字符串'; 
    }else{
      echo 'a不是字符串';
     }
    

    1.4:调试打印变量

    echo 字符串,数字
    print_r 打印层次化的数据,比如:数组,对象
    var_dump 打印变量的类型及其值[调试代码比较方便]

    $a = 'hello';
    $b = array(1,2,"3"); $c = false;
    $d = null;
    $e=18;
    $f = true;
    //布尔型的true会打印出1,false和null什么都不显示
     echo $a,$b,$c,$d,$e,$f,'<hr>';
    //print_r 打印层次化的数据,比如数组和对象 
    print_r($b);
    print_r($c);
    print_r($d);
    print_r($f);
    //不要用echo和print_r打印布尔型的值,因为会干扰我们 
    //用var_dump打印布尔和null
    var_dump($c);
    var_dump($d);
    

    1.5:类型转换

    PHP中,变量的类型是可以随时转换的,非常的灵活 最常见的是字符转与数字之间的相互转换, 或者是数字/字符串 -> 布尔值的转换

    字符串到数字的转换
    从左到右截取,直道碰到不合法的数字,截取下来的部分转换为数字

    $a = '12'; $b=$a+3; 
    var_dump($b);
    $a = '12.5hello'; 
    //$a = '12.5hello99'; 
    $b=$a+3;
    var_dump($b);
    $a = 'word12.5hello';
    $b=$a+3; 
    var_dump($b);
    

    数字到字符串的转换

    $a = 123;
    $b = $a . 'hello';
    var_dump($b);
    

    数字/字符串/数组等到布尔型值的转换

    $b=3; 
    if($b){
    echo 'b is true';
     }else{
        echo 'b is false';
    }
    

    if判断的应该是布尔型的值,那数字3被转成布尔型来理解 那它到底应该理解为真还是假呢?
    以下值,都被理解为成布尔型值的假
    '','0',0,0.0,false,NULL,array(); 而其它值,都被当成布尔型的真

    if('' == false) {
    echo '空字符串果然假';
    }
    

    empty(var) — 检查一个变量是否为空
    如果 var 是非空或非零的值,则 empty() 返回 FALSE
    换句话 说,""、0、0.0、"0"、NULL、FALSE、array(); 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE

    $arr = array();
    if(empty($arr)) {
    echo '变量为空';
     }
    

    1.6:赋值

    赋值有两种方式 :
    1.传值赋值;(两个人看两台电视同一个台)
    2.引用赋值;(两个人看同一台电视)
    1.传值赋值
    变量名其实不是贴在盒子上的,而是有个变量表(像班级的花名册) 变量值和变量类型放在盒子里面;变量表中的变量名指向它所对应的盒子.

    $li = 23;
    $wang = $li;
    echo $li, '~', $wang;
    

    改变$li的值,$wang的值会发生变换吗

    $li = 99;
    echo $li, '~' ,$wang;
    

    这个赋值过程,是把$li的值,赋给$wang
    **2.引用赋值 **

    $a = 'tvb';
    $b = &$a; 
    //$a,$b共同指向同一个值 
    echo $a,'~',$b;
    

    改变$a的值

    $a = 'btv';
    echo $a,'~',$b;
    
    

    1.7:销毁

    为什么要销毁变量?
    因为,有时比较大的数组,或者比较大的对象 特别的GD画图时,比较耗费资源,将它unset掉,可以及时释放出内存
    unset(变量名); 销毁指定的变量 首先从变量表(花名册)中删除变量名,再找到它对应的盒子也删除掉.

    $a=99; //unset($a);
    if(isset($a)) {
     echo 'a存在';
    }else{
      echo 'a不存在';
    }
    

    注意: 引用赋值,如果两个变量指向同一个盒子,当销毁其中一个变量的时候,盒子是不能被销毁掉的.

    $a=99;
    $b = &$a;
    unset($a);
    echo $a,$b;//报一个notice的错误
    

    重新给$a赋值一个新值

    $a=18; 
    echo $a,$b;
    

    1.8: 动态变量名

    动态变量名,可以体现php非常灵活的一个地方
    用变量的值去做另一个变量的名

    $laoda = 'liubei';
    echo $laoda , '<br >';
    $paihang = 'laoda';
    echo $paihang , '~' , $$paihang;
    //排行
    $rank = 'paihang'; 
    echo $$$rank;
    
  • 相关阅读:
    [Python] Read and Parse Files in Python
    [React] Write Compound Components
    [Python] Reuse Code in Multiple Projects with Python Modules
    [Parcel] Bundle a React App with Parcel
    [Javascript] Specify this using .call() or .apply()
    [Javascript] this in Function Calls
    [Python] Create a Log for your Python application
    [Python] Create Unique Unordered Collections in Python with Set
    [Python] Manipulate Data with Dictionaries in Python
    SVN:常用命令
  • 原文地址:https://www.cnblogs.com/dongliu/p/7066768.html
Copyright © 2011-2022 走看看