2017年8个php面试问题(真题+答案)
一个,
& lt?服务器端编程语言(Professional Hypertext Preprocessor的缩写)
echo count(strlen(" http://PHP . net ");?>。的执行结果是什么?
答案:1
说明:count(var)用于计算数组或对象中元素的个数。当var为null或空数组时,结果为0。如果var是普通变量,则返回1。通常返回var中元素或属性的个数。
二、使用list()函数需要注意什么?
回答:list()是语法结构。List($array)用于将数组中的元素快速赋值给一些变量。使用时要注意,$array必须是索引数组,索引值从0开始。
Iii .请解释php.ini中的safe_mode打开后哪些函数会受到影响。
回答:Safe_mode是php的安全模式。打开后主要会影响系统操作、文件、权限设置等方法,主要用来处理webshell。
下面是一些受影响的函数:ckdir,move _ uploaded _ file,chgrp,parse _ ini _ file,
chown,rmdir,copy,rename,fopen,require,highlight_file,show_source,include,symlink,link,touch,mkdir,unlink,exec,
shell_exec,pasathru,system,popen
需要注意的是,在PHP 5.3及以上版本中丢弃了safe_mode,在PHP 5.4及以上版本中完全去掉了这个特性。
4.请类比解释POSIX风格和Prel兼容正则表达式的主要功能
回答:
POSIX风格:
匹配正则表达式ereg并替换ereg_replace
Prel风格:
匹配正则表达式preg_match并替换preg_replace
Preg_match的执行效率比ereg快,preg_replace的执行效率比ereg_replace快。
5.如何在命令下运行php脚本(两种方式编写),如何将参数传递给php脚本?
回答:
第一种方法:首先进入php安装目录,执行php路径/文件名. php。
例子:php my_。服务器端编程语言(Professional Hypertext Preprocessor的缩写)
php -f "my_。php "
第二种方式:PHP-r“PHP脚本”;(不需要添加php开始和结束字符。).
示例:PHP-r“print _ r(get _ defined _ constants());”
将参数传递给php脚本:
第一种方式:PHP-r“var _ dump($ argv);”- -h(注意:如果要传递的参数以--开头,必须使用参数列表分隔符--才能正确传递参数。)
第二种方式:test.php文件代码:#!/usr/bin/php <。?phpvar _ dump($ argv);?>。
。/test.php-h-foo (add #!/usr/bin/php,即以-开头的参数可以直接传递)
6.php5中有哪些神奇的方法?请举例说明它们的用法
回答:
1.__construct():在实例化对象时自动调用。
2._ _ destroy():当对象被销毁或脚本被执行时自动调用。
3.__call():调用对象不存在的方法时执行此函数。
4.__get():获取对象不存在的属性时执行此函数。
5.__set():当设置对象不存在的属性时,执行该函数。
6.__isset():检测对象的属性是否存在时,执行此函数。
7.__unset():当对象的属性被破坏时,执行该函数。
8.__toString():该函数在对象作为字符串输出时执行。
9.__clone():克隆对象时执行此功能。
10.__autoload():实例化对象时,当类不存在时,执行此函数自动加载类。
11._ _ sleep():之前调用了serialize,它可以指定要序列化的对象属性。
12._ 12._ _唤醒:以前调用过unserialize,它可以执行对象初始化。
13.__set_state():调用var_export时,会调用它。使用__set_state的返回值作为var_export的返回值。
14.__invoke():当对象用作函数时执行此方法,通常不建议这样做。
七、简述php的垃圾收集机制
回答:
php中的变量存储在变量容器zval中,其中除了变量的类型和值之外,还包含is_ref和refcount字段。
Refcount指示指向变量的元素数量,is_ref指示变量是否有别名。
如果refcount为0,则回收变量容器。如果zval的refcount在减去1后大于0,它将进入垃圾缓冲区。
当缓冲区达到最大值时,恢复算法会循环通过zval判断是否是垃圾并释放。
在这个问题上,
http://blog.csdn.net/niluchen/article/details/9468365
还有更详细的解释!
七、用php实现双向队列
排队是一种线性表,它是按照先进先出的原则进行的
单向队列:只能从头到尾
双向队列:首尾可以进出
class DuiLie {
private $ array = array();//declare 空数组
公共函数setFirst($item){
return array _ unshift($ this->;array,$ item);//进入列中
}
公共函数delFirst(){
return array _ shift($ this->;数组);//出发
}
公共函数setLast($item){
return array _ push($ this->;array,$ item);//进入列尾
}
公共函数delLast(){
return array _ pop($ this->;array,$ item);//尾出
}
公共函数show(){
var _ dump($ this->;数组);//打印数组
}
公共函数Del(){
未设置($ this->;数组);//clear 空数组
}
}
1.《php面试题 2017年8道PHP面试题(真题+答案)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《php面试题 2017年8道PHP面试题(真题+答案)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/tiyu/1216603.html