PHP简答题大题(含答案)
重要知识点:
1、变量赋值方式有哪几种?
1)直接赋值 $str 123;
2)变量间赋值 $arr array ; $arr[] 123; $arr[] 456; $a; $a 123;
3)引用赋值 $a 123; $b $a;
2、引用和拷贝有什么区别?
拷贝是将原来的变量内容复制下来,拷贝后的变量与原来的变量使用各自的内存,互不干扰。
引用相当于是变量的别名,其实就是用不同的名字访问同一个变量内容。当改变其中一个变量的值时,另一个也跟着发生变化。
3、 php中变量有哪些基本数据类型?
php支持8种原始数据类型。
包括:
四种标量类型(布尔型boolean,整型interger,浮点型float/double , 字符串string)
两种复合类型 数组array , 对象object
两种特殊类型(资源resource,NULL)
4、其它类型转换为boolean类型时,哪些被认为是false?
布尔值false,整型值0, 浮点型值0.0, 空白字符串, 字符串'0', 空数组,
空对象, 特殊数据类型NULL, 没有设定的变量。
empty 函数在哪些情况下返回true?
布尔值false,整型值0, 浮点型值0.0, 空白字符串, 字符串'0', array 空数组,
特殊数据类型NULL, 没有任何属性的对象,没有赋值的变量。
5、常量和变量有哪些区别?
1)常量前没有$符号;
2)常量只能通过define 定义,而不能通过赋值语句定义;
3)常量可以在任何地方定义和访问,而变量定义的反问有固定的规则;
4)常量一旦定义就不能被重新定义或者取消定义,而变量而通过赋值方式重新定义;
5)常量的值只能是标量数据,而变量的数据库类型有8中原始数据类型。
6、函数的优越性有哪些?
提高程序的可维护性 提高软件的可靠性 提高程序的可重用性 提高程序的开发效率
7. 如何定义一个函数?函数名区分大小写吗?
1)使用 function 关键字;
2)函数命名规则和变量一样,以字母或者下划线开头,而不能以数字开头;
3)函数名不区分大小写;
4)函数名不可以使用已经声明过的或者系统自建的函数名称。
8. 什么是局部变量和全局变量?函数内是否可以直接调用全局变量?
局部变量是函数内部定义的变量,其作用域是所在的函数。如果函数外还有一个跟局部变量名字一样的变量,
程序会认为它们两个是完全不同的两个变量。当退出函数的时候,其中的局部变量就同时被清除。
全局变量是定义在所有函数以外的变量,其作用域是整个php文件,但是在用户自定义的函数内部是无法使用的。
如果一定要在用户自定义的函数内部使用全局变量,那么就需要使用global关键字声明。
也就是说如果在函数内的变量前加上golbal来修饰,那么函数内部就可以访问到这个全局变量,
不仅可以利用这个全局变量进行运算而且可以对这个全局变量进行重新赋值。
全局变量还可以使用 $GLOBALS['var'] 来调用。
9. php中函数传递参数的方式有哪些?两者有什么区别?
按值传递和按地址传递(或按引用传递)
1 按值传递、 待传递的变量,与传递给函数之后的变量是存储在不同的空间中。所以函数体内对 该变量值做的修改,不影响原本的变量值。 2 按地址传递、 使用 & 符号,表明该参数是以地址的方式传递值。并不会将主程序中的指定数值或目标变量传递给函数,而是把该数值或变量的内存储存区块地址导入函数之中,所以函数体内的该变量和主程序中的该变量在内存 中是同一个。函数体做的修改,直接影响到函数体外部的该变量的值。
10. 控制流程语句有哪些?
1:三种程序结构 顺序结构、分支结构、循环结构
2:分支: if/else/elseif/ switch/case/default
3、 switch 需要注意的:
case子句中的常量可以是整型、字符串型常量、 或者常量表达式,不允许是变量。 同一个switch子句中,case的值不能相同,否则只能取到首次出现case中的值。
4、 循环 for while do...while do...while 后面必须加入分号结尾。 while 和 do...while 的区别
5:break 和 continue 的区别。
break可以终止循环。
continue没有break强大,只能终止本次循环而进入到下一次循环中。
11. 数组的概念是什么?数组根据索引分为哪两种,如何区分?数组的赋值方式有哪两种?
数组是一个可以存储一组或一系列数值的变量(复合型变量)
索引数组(索引值为数字,以0开始)和关联数组(以字