php面试宝典02

1.单引号与双引号

@1.双引号解释变量,单引号不解释变量

@2.双引号里插入单引号,其中单引号里如果有变量的话,变量解释

@3.双引号的变量名后面必须要有一个非数字、字母、下划线的特殊字符,或者用{}讲变量括起来,否则会将变量名后面的部分当做一个整体,引起语法错误

@4.双引号解释转义字符,单引号不解释转义字符,但是解释'\和\\

@5.能使单引号字符尽量使用单引号,单引号的效率比双引号要高(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判断)


2.检测一个变量是否有设置,是否为空

isset(),empty()


3.写出显示客服端和服务器ip的代码

$_SERVER['SERVER_ADDR']
$_SERVER['RMOTE_ADDR']


4.include 与 require的区别

require:

@1.无条件包含,脚本加载即包含,如果文件不存在,会报error错误,脚本停止执行

@2.执行时所引用的文件,每次都要进行读取和评估,效率低

include:

@1.有条件包含,逻辑成立才加载包含,如果不存在,会报warning,脚本会继续执行

@2.执行时所引用的文件,只处理一次(实际上执行时所引用的文件内容替换了require命令),效率高

require_once()和include_once(),可以检测文件是否有重复包含


5.写一个函数,从一个标准的url里面获取文件的扩展名

$str = 'http://www.xxx.com/a/b/c.php?id=1';
$str1 = parse_url($str);
$str2 = $str1['path'];
echo array_pop(explode('.',$str2));

6.写一个求三个值中最大的函数

($a>$b?$a:$b)>$c?($a>$b?$a:$b):$c;

7.http协议中GET,POST请求的区别

GET:显示传送数据,携带数据大小限制(url内补偿2k)

POST:隐式传输数据,携带数据大小无限制


8.实现数组冒泡排序,升序

$arr=[4,3,7,1,9];
$len = count($arr);
for($k=1;$k<$len;$k++){
	for($j=0;$j<$len-$k;$j++){
		if($arr[$j]>$arr[$j+1]){
			$temp=$arr[$j+1];
			$arr[$j+1]=$arr[$j];
			$arr[$j]=$temp;
		}
	}
}

9.jQuery跨域调用服务器端的方式

@1.使用jsonp(推荐)

@2.使用代理服务器


10.php中静态与非静态方法分析

1.静态调用非静态方法是可行的,但是静态调用构造方法是不可以的

2.静态调用非静态方法的效率要比标准的静态方法调用低的多

3.静态方法可以被非静态方法调用

4.静态方法不能主动调用非静态方法










你可能感兴趣的:(php面试宝典)