PHP
一、变量
变量命名规则:
1、变量名可以使a-z、A-Z、0-9、_(下划线);
2、变量不能是数字开头;
3、可以驼峰式命名和帕斯卡命名法;
4、php变量前面必须有$符号;
二、数据类型
标量数据类型:字符串型、整型、浮点型、布尔型
符合数据类型:数组、对象
特殊数据类型:资源、null
1、整型
范围(php的):-21亿~21亿
2、浮点型(小数:有限小数、无线小数)
范围(php的):-1.7E-308到1.7E+308(举例9E3 => 9*10^3= 9000)
因此浮点型包括整型
注意:浮点型不能直接做运算(有的浮点型不能转成精确的二进制)
3、字符串型
单引号:可以转义\’和\\,只能读取变量名
双引号:可以转义\’、\”、\\、\n、\t、\r,可以读取变量值用{},类似于jsES6的`${}`,当然不用{}可以在变量后面跟一个空格或非空字符也可以解析变量
长字符串:以“<<
4、布尔型
true或false,经常用于条件判断,如if、while、for等
5、资源类型
指的是php对外部文件的引用。如数据库、文件操作、图片验证码等
6、null
当一个变量不存在是就是null,他只有一个值就是null(注意和js的区别,js变量存在没有值为null,当变量不存在就是underfind)
三、PHP变量的类型判断
1、var_dump()
描述:打印变量的相关信息(包括变量的类型和值)
用法:他可以传递多个值,可以同时打印,该函数没有返回值
2、is_*()
该函数又返回值,返回值是布尔值
is_bool():判断变量是不是布尔型
is_int():判断变量是不是整型
is_float():判断变量是不是浮点型
is_numeric():判断变量是不是数值型
is_string():判断变量是不是字符串类型
is_array():判断变量是不是数组
is_object():判断变量是不是对象
is_unll():判断变量是否为空
is_resource():判断变量是否为资源类型
3、isset()
判断变量值是否设置(赋值)
有返回值,返回值是布尔值,变量设置且不是null则为true,否则为false
4、empty()
检查一个变量是否为空;
返回值也是布尔值,如果是空返回true,不是空返回false;
说明:如果“”,0,“0”,null,false,array(),var $var;以及没有任何属性的对象都将被认为是空。
5、unset()
销毁指定的变量可以多参数,他删除的变量的名和中间的指向,不能删除内存空间的值(和js的delete一样)
四、数据类型的转换
1、自动转换
2、强制转换
强制转换成布尔型例如:(bool)$a
提醒:资源转换成布尔值永远为true
强制转换成整型例如:(int)$a
强制转换成其他类型:(*)$a
五、PHP运算符
1、算术运算符:+,-,*,/,%,++,--
2、字符串运算符:.或.=(这里要区别js,js字符串的拼接用+,PHP用.)
3、赋值运算符:=、+=、-=、*=、/=、%=
4、比较运算符:>、<、>=、<=、==、!=、===、!==(其结果是布尔值)
5、逻辑运算符:||(或)、&&(与)、!(非);(闰年的判断①能被4整除,不能被100整除;②能被400整除;③条件一和条件二是或的关系)
6、三元运算符:条件?条件成立时执行:条件不成立时执行
7、运算符的优先级:特殊运算符>算术运算符>比较运算符>逻辑运算符>赋值运算符
六、条件语句和循环语句(和js一样)
七、拷贝传值和引用传地址
拷贝传值:就是把一个变量复制一份传给另一个变量,这两个变量是相互独立的(这个和js的栈储存机制类似,和js不同的是php的拷贝传值,不只适用于字符串,整型,浮点型,null,还适用于数组。js的数组是引用传值,在js里数组也是对象,我们知道在js里对象是堆储存机制,栈里面的变量对应的只是指向堆里面对象的一个指针,所以js里的对象是引用传值,传的是指针,所以拥有同样指针的任何一个变量,改变了对象,其他拥有同样指针变量指向的对象都会改变)
引用传地址:在PHP中默认引用传地址只有对象和资源(js里是对象),但是php里可以手动添加引用传地址就是在引用的变量前面加一个&符号(js里没有手动引用传地址)
八、数组
PHP数组是一个函数生成的:array(10,20,30,40,50)
php打印数组函数print_r($arr)
而js数组是通过new关键字来实例化底层数组函数对象生成,也可以使用[]来生成;
php获取数组里的某个成员和js一样都是通过下表获取
PHP的关联数组
array(
‘name’=> “lcp”
)
js关联数组
var arr = [];
arr[‘name’] = ‘lcp’
php通过[]创建数组和js是不一样的$arr[] = “nihao”这就表示创建了一个数组,他不需要js里先声明一个空数组。[]里可有值或者没有,没有就是在该数组最大下标加一增加一个成员;如果[]里面有值就是在该数组指定下标增加一个成员。
九、数组的操作(以下方法都适用于数组)
1、print_r()——console.log()
易于理解的方式打印一个变量的内容
2、unset()——delete标识符
删除一个变量的变量名和指针,不删除内存里的值
3、count()——length属性
计算数组中的单元个数或者对象中的属性个数(只统计有效数据),因此他有返回值。
4、foreach()——forEach()、map()
只能用于遍历数组
十、函数
php的函数和js很像,唯一区别就是参数,php的函数参数就是变量要有$符号,js也是变量但是省略了var关键字。而且php可以引用传参就是在参数前加&符号。
功能:任何语言的函数,都是为了复用。
十一、全局变量
在js中,全局变量,可以在任何地方访问。
在PHP中,全局变量,不能在函数内部直接使用。
在PHP函数里想使用全局变量,就要使用global关键字(实质就是引用传地址);
十二、PHP的时间函数
date()和time();
总结:php和js语言上的区别,js有很多关键字,PHP关键字要少一些,而php有很多内置的方法,给人的感觉就像PHP,是内置方法组合的一样。
网友评论