PHP

作者: 为君梳作半面妆 | 来源:发表于2017-10-15 12:31 被阅读0次

    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,是内置方法组合的一样。

    相关文章

      网友评论

          本文标题:PHP

          本文链接:https://www.haomeiwen.com/subject/lpwgextx.html