• php基础:变量命名、传值、检测、类型转换、动态变量名


    变量定义:变量来源于数学。是计算机语言中能储存计算结果或能表示值的抽象概念。即在程序运行过程中它的值是允许改变的量。

    变量的命名规范:变量名由A到Z、a到z,数字0-9,和_组成,并且区分大小写,不能以数字开头。

    变量赋值方式有二种传值赋值和引用赋值。

    1.传值赋值,传值赋值是当将一个表达式的值赋予一个变量时,新的变量在内存中的指针指向原变量的的值,当一个变量的值赋予另一个变量时,改变其中一个变量的值,将不会影响到另一个变量。如 $a = 2;(将等号右边的值2赋给等号左边的值$a)

    2.引用赋值,引用赋值是 新的变量在内存中的指针指向了原始变量在内存存储的地址,任意改变其中一个变量的值,另外一变量的值也会改变,如($a = 8; $b = &$a;)

    举列子就是:如2个人在电视,传值赋值就是2个人在2台电视看同一个台,一个人换台了,不影响另外一个人接着看前面的那台。引用赋值是2个人在看同一台电视,一个人换台了,2个人都要看新的台。

    变量的类型有8种,内存中的变量值并不是只储存了变量值,还储存了它的变量类型

    1.整型(integer)数学中的整数 如1,789;

    2字符串型(string) 一串字符 如‘adbcdf';

    3浮点型(float,double)数学中的小数 如’3.115926‘;

    4布尔型(boolean)真和假  false和true;

    5.null 没有值 值标注了它的类型为NULL 它的值的字段是空的,null是没有值的。

    6数组(array) 键值对符合数据  如$a = array(name=>'zhansan',age=>'23');

    7.对象(object)对象是存储数据和有关如何处理数据的信息的数据类型。对象由2部分组成 属性和方法

    8资源(resource) 是可读可写的一组数据

    变量的检测:

    echo一个不存在的变量,会报notice(注意,警告)错误,所以要检测一下这个变量是不是存在;

    1.isset()函数——检测变量是否设置(声明),已经声明的变量且值不为NULL的变量 检测结果返回true 否则全部返回false 检测多个变量时,每个单项符合要求才会返回true,否则结果为false,isset()函数只能用于检测变量,传递任何其他的参数都会解析错误,

    检测常量是否设置(声明)可以用defined()函数

    2.empty()函数——检测一个变量是否为空,若变量不存在则返回 TRUE,若变量存在且其值为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE
    若变量存在且值不为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 FALSE。 empty() 只能用于变量,传递任何其它参数都将造成Paser error而终止运行。

    以下值,都被理解为成布尔型值的假,'0',0,0.0,false,NULL,array();而其它值,都被当成布尔型的真

    变量类型的检测:

    检测一个变量,php是把它存储成一个什么的样的类型

    gettype()——获取变量的类型 不过尽量不要使用 gettype() 来测试某种类型,因为其返回的字符串在未来的版本中可能需要改变。此外,由于包含了字符串的比较,它的运行也是较慢的。使用 is_* 函数代替。

    is_float()[is_double] 检测变量是否为浮点型
    is_int()[is_integer] 检测变量是否为整型

    is_string() 检测变量是否为字符串
    is_object() 检测变量是否为对象
    is_array() 检测变量是否为数组
    is_resource 检测变量是否为资源类型
    is_bool 检测变量是否是布尔型
    is_null 检测变量是否为 NULL

     

    调试打印变量:

    开发程序的时候,不可避免的要打印变量的值

    echo 打印字符串和数字  布尔型的true会打印出1,falsenull什么都不显示

    print_r 打印层次化的数据 ,比如对象和数组 不要用echoprint_r打印布尔型的值,因为会干扰我们 var_dump打印布尔和null

    var_dump 打印变量的类型和值(调试代码方便)

     

    类型转换

    PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有:

    •(int)、(integer):转换成整形
    •(float)、(double)、(real):转换成浮点型
    •(string):转换成字符串
    •(bool)、(boolean):转换成布尔类型
    •(array):转换成数组
    •(object):转换成对象
    PHP数据类型有三种转换方式:

    •在要转换的变量之前加上用括号括起来的目标类型
    •使用3个具体类型的转换函数,intval()、floatval()、strval()
    •使用通用类型转换函数settype(mixed var,string type)
     第一种转换方式: (int)  (bool)  (float)  (string)  (array) (object)

     
    1.<?php   
    2.$num1=3.14;   
    3.$num2=(int)$num1;   
    4.var_dump($num1); //输出float(3.14)   
    5.var_dump($num2); //输出int(3)   
    6.?>  
    第二种转换方式:  intval()  floatval()  strval()

     
    1.<?php   
    2.$str="123.9abc";   
    3.$int=intval($str);     //转换后数值:123   
    4.$float=floatval($str); //转换后数值:123.9   
    5.$str=strval($float);   //转换后字符串:"123.9"    
    6.?>  
    第三种转换方式:  settype();

     
    1.<?php   
    2.$num4=12.8;   
    3.$flg=settype($num4,"int");   
    4.var_dump($flg);  //输出bool(true)   
    5.var_dump($num4); //输出int(12)   
    6.?> 

     

    销毁变量

    为什么要销毁变量

    因为,有时,比较大的的数组,或者比较大的对象,特别是GD画图时,比较耗费资源,将它unset掉,可以及时释放出内存,

    unset():销毁指定的变量。(首先在内存中找到变量名,删除设置声明的变量名,存储变量名的地址一并删除,但是要注意,如果是引用赋值,二个变量指向内存的同一个地址,当销毁其中一个变量时,只会销毁变量名不会销毁变量储存在内存的的地址)

     

    动态变量名  了解就好 代码中要少用 注意代码的整洁性和易读性

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

    $laoda = 'liubei';

    $paihang = 'laoda';

    echo $paihang; //laoda   echo $$paihang; //liubei

    $rank = 'paihang';

    echo $$$rank;  //liubei

  • 相关阅读:
    Docker核心技术之镜像(8)
    简单的自定义函数(7)
    存储过程游标的使用(6)
    存储过程循环语句(5)
    存储过程条件语句(4)
    存储过程的参数(3)
    存储过程的变量(2)
    一个简单的存储过程(1)
    Docker加速器配置(7)
    单表、多表查询
  • 原文地址:https://www.cnblogs.com/ctx1989/p/5962413.html
Copyright © 2020-2023  润新知