本篇文章给大家分享PHP面试题之问答题最新汇总,有一定的参考价值,需要的朋友可以参考一下,希望对大家有所帮助。
相关推荐:《PHP面试题之应用题最新汇总》《PHP面试题之概念题最新汇总》
1. echo()、print()、print_r() 的区别
echo()、print() 是 PHP 语句;print_r() 是函数,
- print()只能打印出简单类型变量的值(如int,string),有返回值。
- print_r()可以打印出复杂类型变量的值(如数组,对象)
- echo 输出一个或者多个字符串,无返回值
2. 字符串中单引号与双引号的区别
- 单引号不能解释变量,而双引号可以解释变量。
- 单引号不能转义字符,在双引号中可以转义字符。
3. error_reporting 作用
error_reporting() 设置 PHP 的报错级别并返回当前级别。
4. SESSION 与 COOKIE 的区别
-
session 存储在服务器端,cookie 保存在客户端。
-
session比较安全,cookie 用某些手段可以修改,不安全。
-
session 的运行依赖 sesseion id,而 session id 存在 cookie 中。如果禁用 cookie,session 会失效。(但可以通过其他方式实现,比如在 url 中传递 session id)。
-
session 可以放在 文件、数据库或内存中。默认存储在服务器的一个文件中。
5. get 和 post 的区别
get是显式的,数据从url中可以看到,传输的数据量小,安全性低;
post是隐式的,传送的数据量较大,安全性较高 。
6. 写出下面代码的执行结果
<?php $a<p style="color:transparent">本文来源gao!%daima.com搞$代*!码$网3</p><strong>搞代gaodaima码</strong> = 12; $b = 012; $c = 0x12; echo $a,"\n",$b,"\n",$c;
解析:八进制12转为二进制001010,二进制再转为十进制为10。十六进制12转为二进制00010010,二进制再转为十进制18。所以结果为 12 10 18。
7. 解决 url 出现中文乱码
使用 urlencode()
对中文进行编码。
8. 把 GB2312 格式的字符串转换成 UTF-8
iconv('GB2312','UTF-8','悄悄是别离的笙箫');
9. 字符串转化为数组
$str = "hello word;From-ajiang";str_split($str, 3); explode(";", $str);preg_split("/-/", $str);
10. 字符串替换函数
$str = 'linux and php'; str_replace('linux', 'windows', $str); preg_replace('/linux|php/', 'js', $str);
11. 字符串查找函数
preg_match("/php/i", "PHP is the web scripting language of choice."); $userinfo = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>"; preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array); strpos("I love php, I love php too!","php"); // 首次匹配的位置 strrpos("I love php, I love php too!","php"); // 最后匹配的位置