重蔚php学习第二十七天——php可变变量,匿名函数

运算符:赋值运算符,算术运算符,错误抑制符,比较运算符,逻辑运算符,三元运算符,位运算符,连接运算符,自操作运算符(在项目计算当中,非常不建议使用多个自操作一起运算)

源码反码补码

  1. 整数的原码反码和补码一致,就是本身转化成二进制
  2. 负数在内存里保存的是补码形式

负数求补码:1.先求出源码,2.源码取反(符号位不变),3.反码加1

二进制求源码:

  1. 正数的话直接二进制转十进制
  2. 负数,有两种方式:第一种先补码-1,然后取反(符号位不变);第二种方式,先取反(符号位不变),再+1

流程结构:顺序结构,分支结构,循环结构

分支结构:if分支,switch分支

If可以实现任何分支,switch是对具体值使用(数值,字符串)

最简if:if(条件表达式){}

标准if:if(条件表达式){}else{}

赋值if:if…else if…else if…else

Switch要注意case中break的使用。

循环结构:for,while,do-while,foreach

For循环:已知循环次数

While循环:

Do-while循环:不管条件怎么样,都会至少循环一次(在条件变量判断前)

Foreach循环:针对PHP数组进行遍历

Continue:继续,中止当前循环的后续循环体,重新开始下一次循环

Break:跳出,完全终止整个循环,使循环结束

image002

循环控制,可以使用数字来指定操作的循环层数

image004

函数

系统函数和自定义函数

自定义函数的调用需要先定义(指的是代码区在调用函数之前已经存在该函数,这个与函数在脚本中与调用出的顺序没有关系)

被调用的函数执行结束,回到函数调用处。

 

函数基本要素:函数名,函数体,返回值,参数

 

在函数定义的时候:参数被称之为形参,形参没有值

在函数调用时传入的参数:实际参数,实参赋值给形参,所以形参是有值的

 

默认的参数的传递是值传递。

如果需要使用引用传值,那么需要在定义函数的时候对形式参数添加一个&符号。

image006

作用域:全局作用域,局部作用域

全局作用域:PHP中指的是函数之外定义的变量,只能在函数之外被使用,不能在函数里使用

局部作用域:在函数内部定义的变量,只能在当前函数里面使用

如果想在函数内部使用全局变量,PHP提供了两种方式

$GLOBALS直接将外部的变量的作用域扩展,$GLOBALS针对的外部变量本身,所有的操作跟在外部操作变量本身是一致的。$GLOBALS[‘变量名’],如果在函数内部对$GLOBALS进行unset操作,会删除外部变量。

Global关键字,在函数内部定义一个同名变量,该变量指向外部变量所对应的内存空间。所以在函数内部操作global对应的变量,会导致外部变量所对应的值的变化。如果对global定义的变量进行删除,只会删除函数内部变量对应的引用,而不会改变外部变量。

 

返回值:return关键字

Return可以返回任何类型的数据

Return可以没有任何返回值:return;//表示当前函数执行到这个地方结束了,后面代码不在执行

image008

什么时候使用return进行返回呢?又返回什么内容?

当我们需要函数进行返回某个数据的时候,就使用return进行相关数据的返回,如果不需要返回值的话,可以没有return。

可变变量

对一个变量的值再次进行变量操作

语法:$$变量名

前提:该变量名对应的值,与另外一个变量的名字相同。

image010

可变变量的原理:先将变量对应的值给取出来,然后与变量符号“$”进行合并,从而构造出一个新的变量名字,然后再对该变量进行读取

image012

匿名函数

隐藏名字,没有名字的函数

语法:通过一个变量接收函数对应的地址,从而实现没有名字的函数,匿名函数。

$变量名 = function(参数列表){

//函数体

};

 

匿名函数的使用

用的最多的地方,回调函数(callback),指的是当一个函数在运行的时候,需要调用其他的函数,这个其他的函数是通过函数的参数给传进去的。

定义匿名函数

image014

如何调用匿名函数?

函数没有名字,所以不能通过函数名字进行调用。

当前所了解的只有函数的内存地址。地址保存在变量里。只能通过该变量找到该函数。

调用匿名函数

语法:$变量名(参数列表);

image016

匿名函数的原理

image018

注意:如果要使用变量的形式调用函数,要保证变量在赋值的时候,是被赋值的一个函数内容。

 

可变函数

当一个函数并不是被直接通过函数名调用,而是通过变量去调用,变量的值对应的是函数名。

image020

原理

image022

闭包匿名函数语法

Function 函数名(参数列表){

//外部函数函数体

Return Function(新参数列表) use(外部函数的参数列表){

//内部函数的函数体

}

}

函数参数

函数参数的默认值,在定义函数参数,给形参指定一个默认的值。

image024

参数默认值的应用

为了保证函数的健壮性。有一些不是很重要非要用户填写的参数,就会使用默认值。

调用带默认值的函数,跟正常调用一样,只是在有默认值参数地方,可以选择不输入实际参数

image026

函数参数默认值定义和调用原理

image028

伪类型

在返回或者对某个变量要求指定类型,通常见得最多的是函数的返回值类型。

Mixed:混合的,不确定具体类型

连接数据库mysql_connect,连接成功返回一个资源,连接失败返回一个false

Number:数字的,返回一个数值

Callback:回调函数,这个通常是用在函数的参数列表

当某个函数执行的时候,需要调用一个额外的函数来实现。这个额外的函数就是回调函数。

Void:空,指的是没有返回值,或者函数调用不需要参数

当我们去查看操作手册的时候,能够理解函数的一些信息

数据类型转换

指的是将一个数据(值)的类型进行改变,转换成其他类型。

在PHP中,数据类型转换通常是系统自动实现的。自动转换。是因为PHP是弱类型语言。

 

什么情况下PHP会自动转化呢?

凡是数据操作,但是又不是符合操作类型的数据格式的时候,系统就会自动操作。

$a = 10;             //整型

$b = ‘123’;        //字符串

$a + $b;    //基本的算术运算,只能对数值进行运算,PHP会对$b进行转换,123,转化成数值再进行运算

$a . $b;     //字符串拼接,要求都是字符串,系统会对$a 转化成字符串格式’10’,然后再进行操作

If($a);       //判断布尔值,要求是布尔类型,系统会对$a转化成布尔值true,再进行判断

 

PHP自动转化很强大,所有用户不需要担心,使用不同的格式会出错。

但是,作为程序员的基本素质,是要控制代码每一行,所以不允许随便使用格式,在使用时,需要对数据类型进行判断。

 

如何进行数据类型判断?

is_bool:判断一个变量是否是布尔类型,如果是则返回true,不是返回false

is_float:判断一个变量是否是浮点型

is_integer:判断变量是否是整型

is_object:判断变量是否是对象

is_array:判断变量是否是数组

is_string:判断变量是否是字符串

is_resource:判断变量是否是资源

is_scalar:判断变量是否是标量(整型,浮点型,字符串,布尔)

is_null:判断变量是否为空

is_numeric:判断变量是否是数值(包含整型和浮点型)

image030

什么时候需要判断数据类型?

PHP不相信任何外来数据。凡是不是PHP自定义的变量,PHP都不相信。所有外来数据,PHP都需要对其进行判断。

image032

如何获得数据类型?

PHP使用gettype函数能够获得一个变量的数据类型

这里不能使用var_dump去打印gettype返回的结果,因为得到的结果是一个字符串

image034

如何改变数据类型?

Php提供了一个函数settype,设定一个变量的类型。

image036

注意:在改变变量的数据类型的时候,会对其指向的内存空间的值进行数据类型转换,从而导致数据值的改变。

强制数据类型转换

使用某种手段强制改变某个数据的数据类型。

语法:(目标数据类型)变量

改变的是变量值本身,不会去变量值对应的内存空间进行改变,相当于是copy了一份内存空间的值,然后对其进行改变。

Int:

Integer:转化成整型

Bool:

Boolean:转化成布尔型

Float:转化成浮点型

String:转换成字符串型

Array:转化成数组

Object:转化成对象

上面的各种强制转化与使用settype效果是一样的,区别在于settype能够提供很多种选择,可以随意的转换成需要的数据类型。

image038

不管是系统自动转化也好,还是强制转化也好。本质都将变量的值进行类型改变。因为变量没有数据类型,变量的值有数据类型。

如何实现公共代码的重用?不要每次都写。

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/2175.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚的头像重蔚管理团队
上一篇 2017年5月5日 10:59
下一篇 2017年5月5日 22:50

相关推荐

  • 如何使用PHP实现微信小程序中的即时通讯功能。

    随着移动互联网的不断发展,微信小程序已经成为了一个不可或缺的移动应用程序。它方便快捷,资源占用小,更适合于一些轻量级的应用程序的开发。随着微信小程序的普及,越来越多的开发者开始关注小程序的实时通讯功…

    2023年6月3日
    00
  • 重蔚php学习第三十三天——数组相关函数

      数组相关函数 key() 格式:  mixed key ( array array ) 获取数组当前元素的下标 current() 格式:  mixed current ( array array ) 获取数组当前元素的值 代码示例 next() mixed next ( array array ) 指针…

    2017年10月10日 PHP自学教程
    0320
  • 今日分享PHP header的7种用法。

    PHP header函数用于在发送HTTP响应之前输出一些信息,如HTTP状态码、内容类型等。它有7种用法,包括设置状态码、添加自定义头信息、重定向到其他URL、显示错误信息等。 在PHP中,header()函数是一个非常重要的工具…

    2024年7月24日
    00
  • 如何进行PHP的安全管理?

    PHP作为一种开源的编程语言,广泛应用于Web开发领域。然而,随着网络安全威胁不断增加,对PHP应用的安全管理也变得越来越重要。在这篇文章中,我们将探讨如何进行PHP的安全管理,以保障应用的安全性。优化代码在编…

    2023年5月17日
    02
  • PHP8中的函数:str_contains()的实用技巧。

    PHP8中新增的str_contains()函数是一种非常实用的字符串处理功能,它能够快速地判断一个字符串是否包含某一个子字符串。在实际应用中,它可以帮助我们快速定位出数据中的关键字,从而更加高效地进行数据处理和分析…

    2023年5月21日
    00
  • 利用PHP快速创建直播功能。

    在今天的互联网社会中,直播已经成为了一个非常流行的娱乐方式和社交方式。各大直播平台如斗鱼、虎牙等已经成为了众多年轻人的必备娱乐工具,直播也成为了一种新的创业方式。而对于一些企业、机构或者个人而言,他…

    2023年5月23日
    03
  • PHP商城开发中的集成与部署

    随着电商行业的快速发展,越来越多的企业开始关注自身在电商领域的布局与发展。而作为电商网站的核心技术之一,PHP商城开发的集成与部署也逐渐成为了企业关注的焦点。本文将从技术层面讲述PHP商城开发中的集成与部…

    2023年5月19日
    01
  • PHP入门指南:异步编程。

    PHP作为一门流行的脚本语言,一直以来都是Web开发的主流语言之一。在Web开发中,异步编程被越来越多地应用于网络爬虫、实时聊天、长轮询等高性能场景。本文将介绍PHP异步编程的相关知识,以便读者掌握异步编程基础…

    2023年5月22日
    01

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息