运算符:赋值运算符,算术运算符,错误抑制符,比较运算符,逻辑运算符,三元运算符,位运算符,连接运算符,自操作运算符(在项目计算当中,非常不建议使用多个自操作一起运算)
源码反码补码
-
整数的原码反码和补码一致,就是本身转化成二进制
-
负数在内存里保存的是补码形式
负数求补码:1.先求出源码,2.源码取反(符号位不变),3.反码加1
二进制求源码:
-
正数的话直接二进制转十进制
-
负数,有两种方式:第一种先补码-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:跳出,完全终止整个循环,使循环结束
循环控制,可以使用数字来指定操作的循环层数
函数
系统函数和自定义函数
自定义函数的调用需要先定义(指的是代码区在调用函数之前已经存在该函数,这个与函数在脚本中与调用出的顺序没有关系)
被调用的函数执行结束,回到 函数调用 处。
函数基本要素:函数名,函数体,返回值,参数
在函数定义的时候:参数被称之为 形参 ,形参没有值
在函数调用时传入的参数:实际参数,实参赋值给形参,所以形参是有值的
默认的参数的传递是值传递。
如果需要使用引用传值,那么需要在定义函数的时候对形式参数添加一个&符号。
作用域 :全局作用域,局部作用域
全局作用域:PHP中指的是函数之外定义的变量,只能在函数之外被使用,不能在函数里使用
局部作用域:在函数内部定义的变量,只能在当前函数里面使用
如果想在函数内部使用全局变量,PHP提供了两种方式
$GLOBALS直接将外部的变量的作用域扩展,$GLOBALS针对的外部变量本身,所有的操作跟在外部操作变量本身是一致的。$GLOBALS[‘变量名’],如果在函数内部对$GLOBALS进行unset操作,会删除外部变量。
Global关键字,在函数内部定义一个同名变量,该变量指向外部变量所对应的内存空间。所以在函数内部操作global对应的变量,会导致外部变量所对应的值的变化。如果对global定义的变量进行删除,只会删除函数内部变量对应的引用,而不会改变外部变量。
返回值: Return 关键字
Return可以返回任何类型的数据
Return可以没有任何返回值:return;//表示当前函数执行到这个地方结束了,后面代码不在执行
什么时候使用return进行返回呢?又返回什么内容?
当我们需要函数进行返回某个数据的时候,就使用return进行相关数据的返回,如果不需要返回值的话,可以没有return。
1.可变变量
对一个变量的值再次进行变量操作
语法:$$变量名
前提:该变量名对应的值,与另外一个变量的名字相同。
可变变量的原理:先将变量对应的值给取出来,然后与变量符号“$”进行合并,从而构造出一个新的变量名字,然后再对该变量进行读取
2.匿名函数
隐藏名字,没有名字的函数
语法:通过一个变量接收函数对应的地址,从而实现没有名字的函数,匿名函数。
$变量名 = function(参数列表){
//函数体
};
匿名函数的使用
用的最多的地方, 回调函数 (callback),指的是当一个函数在运行的时候,需要调用其他的函数,这个其他的函数是通过函数的参数给传进去的。
定义匿名函数
如何调用匿名函数?
函数没有名字,所以不能通过函数名字进行调用。
当前所了解的只有函数的内存地址。地址保存在变量里。只能通过该变量找到该函数。
调用匿名函数
语法:$变量名(参数列表);
匿名函数的原理
注意:如果要使用变量的形式调用函数,要保证变量在赋值的时候,是被赋值的一个函数内容。
可变函数
当一个函数并不是被直接通过函数名调用,而是通过变量去调用,变量的值对应的是函数名。
原理
闭包匿名函数语法
Function 函数名(参数列表){
//外部函数函数体
Return Function(新参数列表) use(外部函数的参数列表){
//内部函数的函数体
}
}
函数参数
函数参数的默认值,在定义函数参数,给形参指定一个默认的值。
参数默认值的应用
为了保证函数的健壮性。有一些不是很重要非要用户填写的参数,就会使用默认值。
调用带默认值的函数,跟正常调用一样,只是在有默认值参数地方,可以选择不输入实际参数
函数参数默认值定义和调用原理
3.伪类型
在返回或者对某个变量要求指定类型,通常见得最多的是函数的返回值类型。
Mixed:混合的,不确定具体类型
连接数据库mysql_connect,连接成功返回一个资源,连接失败返回一个false
Number:数字的,返回一个数值
Callback:回调函数,这个通常是用在函数的参数列表
当某个函数执行的时候,需要调用一个额外的函数来实现。这个额外的函数就是回调函数。
Void:空,指的是没有返回值,或者函数调用不需要参数
当我们去查看操作手册的时候,能够理解函数的一些信息
4.数据类型转换
指的是将一个数据(值)的类型进行改变,转换成其他类型。
在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:判断变量是否是数值(包含整型和浮点型)
什么时候需要判断数据类型?
PHP不相信任何外来数据。凡是不是PHP自定义的变量,PHP都不相信。所有外来数据,PHP都需要对其进行判断。
如何获得数据类型?
PHP使用gettype函数能够获得一个变量的数据类型
这里不能使用var_dump去打印gettype返回的结果,因为得到的结果是一个字符串
如何改变数据类型?
Php提供了一个函数settype,设定一个变量的类型。
注意:在改变变量的数据类型的时候,会对其指向的内存空间的值进行数据类型转换,从而导致数据值的改变。
强制数据类型转换
使用某种手段强制改变某个数据的数据类型。
语法:(目标数据类型)变量
改变的是变量值本身,不会去变量值对应的内存空间进行改变,相当于是copy了一份内存空间的值,然后对其进行改变。
Int:
Integer:转化成整型
Bool:
Boolean:转化成布尔型
Float:转化成浮点型
String:转换成字符串型
Array:转化成数组
Object:转化成对象
上面的各种强制转化与使用settype效果是一样的,区别在于settype能够提供很多种选择,可以随意的转换成需要的数据类型。
不管是系统自动转化也好,还是强制转化也好。本质都将变量的值进行类型改变。因为变量没有数据类型,变量的值有数据类型。
如何实现公共代码的重用?不要每次都写。
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~