16 引用和拷贝有什么区别?
拷贝是将原来的变量内容复制下来,拷贝后的变量与原来的变量使用各自的内存,互不干扰。 引用相当于是变量的别名,其实就是用不同的名字访问同一个变量内容。当改变其中一个变量的值时,另一个也跟着发生变化。
17 php中变量有哪些基本数据类型?
php支持8种原始数据类型。 包括: 四种标量类型(布尔型boolean,整型interger,浮点型float/double , 字符串string) 两种复合类型(数组array , 对象object) 两种特殊类型(资源resource,NULL)
18 其它类型转换为boolean类型时,哪些被认为是false?
布尔值false,整型值0, 浮点型值0.0, 空白字符串, 字符串'0', 空数组,特殊数据类型NULL, 没有设定的变量。
19 empty()函数在哪些情况下返回true?
布尔值false, 整型值0, 浮点型值0.0, 空白字符串, 字符串'0', array()空数组, 特殊数据类型NULL, 没有任何属性的对象, 没有赋值的变量。
20 如果定义了一个变量$a ,但是没有赋初始值
那么$a==0吗?
$a==false吗?
$a==''吗?
$a==NULL吗?
$a===NULL吗?
empty($b)==true吗?
此时如果输出$a++是多少?
如果输出++$a又是多少?
$a ==0;
$a ==false;
$a == '';
$a ==null;
$a === null;
empty($b) == true;
$a++ 为空
++$a 为1
21 字符串怎么转成整数,有几种方法?怎么实现?
强制类型转换: (int)字符串变量名; 直接转换:settype(字符串变量,整型); intval(字符串变量);
22 标量数据和数组的最大区别是什么?
一个标量只能存放一个数据,而数组可以存放多个数据。
23 常量如何定义? 如何检测一个常量是否被定义?常量的值只能是哪些数据类型?
const() define()//定义常量 , defined()//检查常量是否定义 常量的值只能是标量类型的数据。
24 常量分为系统内置常量和自定义常量。请说出最常见的几个系统内置常量?
FILE , LINE , PHP_OS , PHP_VERSION
25 如果定义了两个相同的常量,前者和后者哪个起作用?
前者起作用,因为常量一旦定义就不能被重新定义或者取消定义。
26 常量和变量有哪些区别?
1)常量前没有$符号;
2)常量只能通过define()定义,而不能通过赋值语句定义;
3)常量可以在任何地方定义和访问,而变量有全局和局部之分;
4)常量一旦定义就不能被重新定义或者取消定义,而变量而通过赋值方式重新定义;
5)常量的值只能是标量数据,而变量的数据库类型有8种原始数据类型。
27 PHP中常用的几个预定义的全局数组变量是哪些?
有9大预定义的内置数组变量: $_POST, $_GET, $_REQUEST, $_SESSION, $_COOKIE, $_FILES,$_SERVER, $_ENV, $GLOBALS
28 什么是变量的能见度 或者 说是变量作用域?
就是变量在程序中的可作用范围。根据变量的能见度,变量分为局部变量和全局变量
29 什么是局部变量和全局变量?函数内是否可以直接调用全局变量?
局部变量是函数内部定义的变量,其作用域是所在的函数。如果函数外还有一个跟局部变量名字一样的变量, 程序会认为它们两个是完全不同的两个变量。当退出函数的时候,其中的局部变量就同时被清除。 全局变量是定义在所有函数以外的变量,其作用域是整个php文件,但是在用户自定义的函数内部是无法使用的。 如果一定要在用户自定义的函数内部使用全局变量,那么就需要使用global关键字声明。 也就是说如果在函数内的变量前加上golbal来修饰,那么函数内部就可以访问到这个全局变量, 不仅可以利用这个全局变量进行运算而且可以对这个全局变量进行重新赋值。 全局变量还可以使用 $GLOBALS['var'] 来调用。
30 global关键词如何使用?预定义的全局变量数组$GLOBALS如何使用?
Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。
在 $GLOBALS 数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。global 也就是说在一个文件里 只要你声明为global $db 那么在声明的下面 你就可以引用这个$db了