语法环境 变量 数据类型 转换 销毁和传值

语法环境 变量 数据类型 转换 销毁和传值

第一章 语法环境1.1 后缀

php语言是书写在.php文件中的。php的书写很简单


默认情况下 结束符可以省略;

php文件支持php与html混写。浏览器在读取php文件时,如果遇到html代码会直接渲染,此时必须补全结束符


World

1.2注释

php的注释方式和js类似 单行注释使用// ,多行注释为/** **/;

第二章 基本语法形式2.1 变量

在php中,我们需要方便的寻找或者使用某个数据,需要给该数据取一个名字。这个”名字”在编程语言中的概念就是变量;

和js不同,php中的变量是$符号 加上一个名称组成的;

$a = '123';
echo $a;
变量名称的命名规范:
变量名以`$`开头,后面可以书写[a-z A-Z 0-9]和下划线
变量名称是区分大小写的
变量不能以数字开头
$a = 123;
$_ = 456;
$_% = "hello";
$3c = "world";
$c3 = "nihao";

2.2 变量类型

既然我们理解了变量的概念,那么变量也是分为种类的,一个数字和一句话在我们计算机上是分别理解的

在php中 变量分为以下几种类型

整形 数学中的整数 浮点型

float/

数学中的小数 布尔 真假(不区分大小写) 字符串 一串字符 数组 键值对的复合数据 后边会学到 对象 在后面的面向对象中会学到 NULL 没有值 (不区分大小写) 资源 类似”吸管” 我们后边会提到

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

在计算机的世界里,所有的数据都由1或者0来进行表述。比如字母A,我们可以使用0100 0001 来进行表示。但是二进制的65同样也是 0100 0001 那么我们的变量是如何表示字符串A和数字65的呢?

我们在声明变量之后php 获取变量类型,系统在内存中帮我们建立了一张变量表php 获取变量类型,我们可以把它看做班级的花名册;

变量值和变量类型可以看做某位同学,花名册(变量表)上的变量名指向那位同学;

这样区分65和A就方便了许多

$a = "A";
$b = 65;

变量值并不仅仅存储着我们可以”见到”的实际值,还保存着变量的类型;

我们再看一下特殊的变量类型Null

$null = NULL;
Null是什么?
Null 类型只是标注了它的类型为Null,它的值的字段是空的,NULL是没有值的。

在php中 不支持类似js中的只声明不赋值的操作 当我们声明一个变量的时候.必须赋值;否则在调用时会报级别的错误;

2.3 变量检测

2.3.1 检测变量是否存在

echo 一个不存在的变量,会报级别的错误。所以有时我们在使用变量之前需要检测一下这个变量是否存在;

我们会使用isset 检测变量是否设置。已声明的变量返回true,未声明的变量返回false

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

对于值为null的变量,也返回false,因为null没有值

未曾声明的变量,当然也不存在

2.3.2 类型检测

检测一个变量,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不是字符串';
}

2.3.3 调试打印变量

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

如何调试打印变量

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,'
'; //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);

2.4 变量类型转换

在php中,变量的类型是可以随时转换的,非常的灵活。

在我们上一小节中,打印变量true/false的时候就出现了奇怪的现象;

最常见变量类型转换就是字符串和数字之间的转换,或者是数字/字符串和布尔值之间的转换

字符串到数字的转换

从左到右截取,直到遇到不合法的数字,截取下来的部分转换成为数字

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

数字到字符串的转换

在php中,字符串的拼接使用的是. ,如果一个数字和字符串做了拼接,那么数值会转换为字符串;

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

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

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

和js类似 在php中 if条件语句的条件也是true/false,变量在做条件判断的时候会经过类型转换;

以下值 都被理解成为布尔类型的假

空字符串   ''
字符串0 0
数值00
布尔值false false
NULL   null
空数组 array()
这些值不仅仅被认为成假,也会被认为成空
$a = '';
var_dump(empty($a));
empty()这个函数可以帮助我们判断一个值是否为空,如果该值为空,则返回true;

没有任何属性的对象也被认为成空 当我们学习了对象之后 空对象在empty检测下也为true

2.5 赋值

我们在声明变量的同时一般会赋给变量一个值;而在之后也需要对这个变量进行操作;

赋值的方式有两种

传值赋值 引用赋值

2.5.1 传值赋值

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

以上代码在内存中发生了什么?

传值赋值指的是将一个变量的数据值(数据内容)拷贝一份语法环境 变量 数据类型 转换 销毁和传值,然后赋值给另一个变量;

改变li的值,wang的值会改变吗?

$li = 23;
$wang = $li;
$li = 90;
echo $li,"~",$wang;

不会~!

2.5.2 引用赋值

引用赋值和传值赋值不同,传值赋值是将变量的值拷贝一份语法环境 变量 数据类型 转换 销毁和传值,赋给要赋值的变量php 获取变量类型,而引用赋值只是拷贝了“引用关系”!

$li = 23;
$wang = &$li;
echo $li,$wang;

加&赋值采用的即为引用赋值

改变li 的值,wang的值会不会发生改变? 会!

$li = 23;
$wang = &$li;
echo $li,$wang;

因为wang只是复制了li的引用,并没有真正的把值拿到自己的花名册中,当li发生改变时,wang会随着$li的改变而改变;

2.6 销毁

为什么要销毁变量?因为,有时比较大的变量比较耗费资源。比如说我们后边所学的数组和对象,尤其是后边的GD库。此时我们需要销毁掉变量,释放出内存;

unset(变量名):销毁指定的变量

首先从变量名(花名册)中删除变量名,再找到它对应的值(人员信息)也删除掉;

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

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

$a = 99;
$b = &$a;
unset($a);
echo $b;
重新给$a赋值
$a = 99;
$b = &$a;
unset($a);
$a = 19;
echo $b;

此a非彼a,由于一开始的a已经被释放,新的a是重新声明并赋值的;

2.7 动态变量名

动态变量名,可以体现php非常灵活的一个地方;

动态变量名是用变量的值去做另外一个变量的名

$laoda = 'liubei';
echo $laoda , '
'; $paihang = 'laoda'; echo $paihang , '~' , $$paihang; //排行 $rank = 'paihang'; echo $$$rank;

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » 语法环境 变量 数据类型 转换 销毁和传值

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们