1、简述如何得到当前执行脚本路径,包括所得到参数。
> __FILE__ //当前执行脚本路径
$argv //--获取参数列表数组
2、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?
> 包含文件失败的时候:include产生一个警告,而require产生错误中断
> 可用require_once,include_once代替
3、实现中文字串截取无乱码的方法
> mb_substr('中国', 1, 1)
4、echo(),print(),print_r()的区别
> echo 和print不是一个函数,是一个语言结构
print(string $arg)只有一个参数
echo arg1,arg1,arg2; 可以输出多个参数,返回void
echo和print只能打印出string,不能打印出结构
print_r能打印出结构
比如
$arr = array("key"=>"value");
print_r($arr);
5、如何实现字符串翻转?
~~~
//英文使用:
strrev('abc')
//中文使用:
function reverse($str)
{
$len=mb_strwidth($str);
for($i=0;$i<$len;$i++)
{
$arr[]=mb_substr($str, $i, 1);
}
return implode("", array_reverse($arr));
}
print_r(reverse('你好,中国'));
~~~
6、在PHP中error_reporting这个函数有什么作用?
> 设定error的展示级别
>
7、请写一个验证电子邮件和手机的格式是否正确
~~~
$email='110A68b_56@qq.com';
$reg='/([a-zA-Z0-9_]+)@([a-zA-Z0-9_]+)\.([a-zA-Z]+)/';
echo preg_match($reg,$email);
$mobile='13105212203';
$preg='/1[34578]{1}\d{9}/';
echo preg_match($preg,$mobile);
~~~
8、下面哪个函数可以打开一个文件,以对文件进行读和写操作?选 c
~~~
(a) fget()
(b) file_open()
(c) fopen()
(d) open_file()
~~~
9、下面哪个选项没有将 john 添加到users 数组中? (1分) bd
~~~
(a) $users[] = 'john';
(b) array_add($users,'john');// 不存在此函数
(c) array_push($users,'john');
(d) $users ||='john';// 写法错误
~~~
10、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹
~~~
function my_dir($dir) {
$files = array();
if(@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
while(($file = readdir($handle)) !== false) {
if($file != ".." && $file != ".") { //排除根目录;
if(is_dir($dir."/".$file)) { //如果是子文件夹,就进行递归
$files[$file] = my_dir($dir."/".$file);
} else { //不然就将文件的名字存入数组;
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
echo "<pre>";
print_r(my_dir("."));
echo "</pre>";
~~~
11、以下语句输出的结果是什么
~~~
$a = 3;
echo "$a",'$a',"\\\$a","${a}","$a"."$a","$a"+"$a";
~~~
输出:3$a\$a3336
12、以下语句输出的结果是什么
~~~
setcookie("a","value");
echo $_COOKIE['a'];
~~~
php7 输出空
php5.6输出 PHP Notice: Undefined index: a
13、array+array与array_merge()的区别
> 二者之间的区别是:
1、 键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)
2、 键名为字符时,+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值
- 前言
- 函数参考
- Socket 函数
- socket_accept
- socket_bind
- socket_clear_error
- socket_close
- socket_connect
- socket_create_listen
- socket_create_pair
- socket_create
- socket_getpeername
- socket_getsockname
- socket_last_error
- socket_listen
- socket_read
- socket_recv
- socket_select
- socket_send
- socket_set_block
- socket_set_nonblock
- SplQueue
- 魔术方法
- 魔术常量
- 杂项
- backlog的用处
- new self()和new static()的区别
- PHP变量的生命周期
- PHP抽象类
- 对象接口
- PHP中的常用关键字
- 常量
- 内存泄露
- global 与 $GLOBAL
- 简单说明CGI和动态请求是什么
- 设计模式
- 单例模式
- 工厂模式
- 适配器模式
- 策略模式
- 观察者模式
- 控制反转IoC简介
- session
- use_trans_sid
- auto_start
- session_id
- cookie_secure
- 面试
- 数据库相关
- 语句相关
- 索引相关
- 字段相关
- PHP相关
- 字符串相关
- 函数相关
- 运算符优先级相关
- 错误相关
- redis相关
- 10个常见的Redis面试"刁难"问题
- mysql
- MySQL中的锁
- MySQL存储引擎MyISAM 和 InnoDB的区别
- MySQL半同步复制
- explain 命令详解
- 索引
- 数据库事务
- MySQL和B树的那些事
- git
- github----向开源框架提交pr的过程
- 推荐博客
- linux
- 命令
- free
- 高并发
- 抢购/秒杀功能
- 算法
- 一致性Hash算法