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

变量的命名规范:变量名由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,false和null什么都不显示

print_r 打印层次化的数据 ,比如对象和数组 不要用echo和print_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

转载于:https://www.cnblogs.com/ctx1989/p/5962413.html

php基础:变量命名、传值、检测、类型转换、动态变量名相关推荐

  1. day02--java基础编程:变量,数据类型,类型转换,运算规则,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序

    1 Day02–变量+数据类型+类型转换 1.1 前言 1.1.1 标识符 可以简单的理解为一个名字.在Java中,我们需要标识代码的很多元素,包括包名.类名.方法.字段.变量等.我们选择的名称就称为 ...

  2. day02--java基础编程:变量,数据类型,类型转换,运算规则,Scanner,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序

    1 Day02–变量+数据类型+类型转换 1.1 前言 1.1.1 标识符 可以简单的理解为一个名字.在Java中,我们需要标识代码的很多元素,包括包名.类名.方法.字段.变量等.我们选择的名称就称为 ...

  3. 变量命名 – 匈利亚命名法则 - C语言零基础入门教程

    目录 1.属性部分 2.类型部分 3.描述部分 4.MFC.句柄.控件及结构的命名规范 5.变量命名规范 6.库标识符命名法 7.举例 8.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ ...

  4. 第一讲javascript入门(js的组成、事件类型、嵌入方式、注释方式、输出方式、变量类型 、变量命名规则、字符串转义符、算术运算符、数据类型转换、null和undefined的区别)

    目录 理论: JavaScript是什么 js的组成 二.JavaScript引入方式 1.嵌入式 2.外部引入 事件定义 三.JavaScript注释方式 1.单行注释 2.多行注释 四.JavaS ...

  5. Python基础复习--print()函数、转义符、变量命名

    print()函数由两部分构成: 1.指令:print: 2.指令的执行对象:即括号里面的内容. 指令的执行对象: 1. 单引号.双引号:直接输出内容:   2. 三引号(三个英文单引号):可用于换行 ...

  6. 【基础篇】各类语言的变量命名规则

    ----------------------------------------------JAVA----------------------------------------------- JA ...

  7. Javascript 基础—变量 运算符

    经过找工作笔试的洗礼,感觉自己js语法方面掌握的不是很系统,今天来梳理下--变量以及运算符. 基础篇 和C语言的不同点:是一种弱类型语言,申明变量时不需要指定类型:变量名的命名方法也有不同:简单类型种 ...

  8. JavaScript基础--变量、运算符

    JavaScript组成 ECMAScript ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScri ...

  9. java定义基础变量语句_编程语言第一:JAVA语言基础,变量

    在前面的几篇文章中我们介绍了Java的运行环境,以及Eclipse IDE的安装与使用.从今天开始我们的文章开始介绍Java开发语言的基础知识.今天主要介绍Java变量. 一.什么是变量 变量是指代在 ...

  10. java基础-变量定义

    java基础-变量定义 3.1.关键字总结表 3.2.常量 ​ 常量的意思是在程序执行的过程中不能改变的量 java常量的分类 常量分类 说明 举例 字符串常量 用字符串括起来的多个字符 " ...

最新文章

  1. 使用matplotlib进行简单的数据展示
  2. String类 写出类的成员函数实现
  3. vSphere 故障排错思路总结
  4. Session赋值(备注)
  5. getBoundingClientRect()来获取页面元素的位置”
  6. Struts2-03-拦截器(BOS物流项目用户登录拦截)
  7. git如何移除某文件夹的版本控制
  8. 总结一些IT项目经理的管理方法与经验
  9. Hadoop数据迁移工具DistCp
  10. python实现离线翻译_基于python实现百度翻译功能
  11. 八评腾讯:解密腾讯的中年危机
  12. Map基本介绍和Map方法
  13. c语言中的fock方法输出hello,(1.1.20)C程序之Fock()函数
  14. win7升级win10方法
  15. 【郭东白架构课 模块一:生存法则】02|法则一:为什么有些架构活动会没有正确的目标?
  16. CleanMyMac X4.11经典免费版本功能介绍
  17. A5旗下的“链接123”和“源码市场”关站
  18. 最新的国内手机号码匹配,包括14年新增的17开头的号段
  19. Quick Easy系列软件
  20. 搭建实验室3d slam 移动小车 3.3jackal移动平台 ER-600R工业路由器、组合导航POMS-GI201C调试

热门文章

  1. python爬虫总结
  2. vscode 配置python_VSCode配置Python版本
  3. 关于线性模型你可能还不知道的二三事
  4. libsvm python Linux Ubuntu下编程操作实践
  5. python中去除列表重复元素的方法汇总
  6. rocketmq集群搭建 双主双从
  7. FineReport中统计列中不同数据的个数
  8. 第 7 章 Neutron - 080 - 创建第一个 local network(I)
  9. 鼠标悬停在图片上出现蒙层的方法
  10. spring4.1.8扩展实战之七:控制bean(BeanPostProcessor接口)