PHP面试题集之基础题

1、用PHP打印出前一天的时间格式是 2006-5-10 22:21:21

date_default_timezone_set('PRC'); //默认时区    
echo "今天:",date("Y-m-d",time());    
echo "今天:",date("Y-m-d",strtotime("18 june 2008"));    
echo "昨天:",date("Y-m-d",strtotime("-1 day"));   
echo "昨天:",date("Y-m-d",strtotime("last day")); 
echo "明天:",date("Y-m-d",strtotime("+1 day"));    
echo "一周后:",date("Y-m-d",strtotime("+1 week"));    
echo "一周零两天四小时两秒后:",date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds"));    
echo "下个星期四:",date("Y-m-d",strtotime("next Thursday"));    
echo "上个周一:".date("Y-m-d",strtotime("last Monday"));    
echo "一个月前:".date("Y-m-d",strtotime("last month"));    
echo "一个月后:".date("Y-m-d",strtotime("+1 month"));    
echo "十年后:".date("Y-m-d",strtotime("+10 year"));     

 2、echo(),print(),print_r()的区别

echo 和print不是一个函数,是一个语言结构
print(string $arg), 只有一个参数   
echo   可以输出多个参数,返回void
echo和print只能打印出string,不能打印出结构
print_r能打印出结构

下面看看实例

<?php
print(1);
echo 1;
print_r(1);
print_r(array(1));
print_r(NULL);
$k =new stdclass;
$k->a=1;
print_r($k);
//END  

输出结果

[root@chenpingzhao code]# php-cgi  -dvld.active=1  test.php 
Finding entry points
Branch analysis from position: 0
Jump found. Position 1 = -2
filename:       /tmp/code/test.php
function name:  (null)
number of ops:  36
compiled vars:  !0 = $k
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   2     0  E >   EXT_STMT                                                 
         1        ECHO                                                     1
   3     2        EXT_STMT                                                 
         3        ECHO                                                     1
   4     4        EXT_STMT                                                 
         5        EXT_FCALL_BEGIN                                          
         6        SEND_VAL                                                 1
         7        DO_FCALL                                      1          'print_r'
         8        EXT_FCALL_END                                            
   5     9        EXT_STMT                                                 
        10        EXT_FCALL_BEGIN                                          
        11        INIT_ARRAY                                       ~0      1
        12        SEND_VAL                                                 ~0
        13        DO_FCALL                                      1          'print_r'
        14        EXT_FCALL_END                                            
   6    15        EXT_STMT                                                 
        16        EXT_FCALL_BEGIN                                          
        17        SEND_VAL                                                 null
        18        DO_FCALL                                      1          'print_r'
        19        EXT_FCALL_END                                            
   7    20        EXT_STMT                                                 
        21        FETCH_CLASS                                   4  :1      'stdclass'
        22        EXT_FCALL_BEGIN                                          
        23        NEW                                              $0      :1
        24        DO_FCALL_BY_NAME                              0          
        25        EXT_FCALL_END                                            
        26        ASSIGN                                                   !0, $0
   8    27        EXT_STMT                                                 
        28        ASSIGN_OBJ                                               !0, 'a'
        29        OP_DATA                                                  1
   9    30        EXT_STMT                                                 
        31        EXT_FCALL_BEGIN                                          
        32        SEND_VAR                                                 !0
        33        DO_FCALL                                      1          'print_r'
        34        EXT_FCALL_END                                            
  10    35      > RETURN                                                   1

branch: #  0; line:     2-   10; sop:     0; eop:    35; out1:  -2
path #1: 0, 
X-Powered-By: PHP/5.5.23

从上面可以看出来 echo和print是一样的,都是语言结构;对应C中的输出为fwrite,print_r  则是一个函数可以打印书复杂的结构 NULL、object、array、resource

3、能够使HTML和PHP分离开使用的模板

4、使用哪些工具进行版本控制

5、如何实现字符串翻转

6、优化MYSQL数据库的方法

语句方面:
1 使用索引,增加查询效率
2 优化查询语句,提高索引命中率
数据库涉及方面:
1 构造分库分表,提高数据库的存储和扩展能力
2 根据需要使用不同的存储引擎

7、MYSQL取得当前时间的函数是,格式化日期的函数是

CURRENT_TIMESTAMP()
DATE_FORMAT()
select DATE_FORMAT("2011-11-21 10:10:10", "%Y-%m-%d");

8、对于大流量的网站,您采用什么样的方法来解决访问量问题

1 有效使用缓存,增加缓存命中率
2 使用负载均衡
3 对静态文件使用CDN进行存储和加速
4 想法减少数据库的使用
5 查看出现统计的瓶颈在哪里

14、用PHP写出显示客户端IP与服务器IP的代码

$_SERVER["REMOTE_ADDR"]
$_SERVER["SERVER_ADDR"]

15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们

在失败的时候:
include产生一个warning,而require产生直接产生错误中断
require在运行前载入
include在运行时载入
require_once
include_once

16、如何修改SESSION的生存时间

session_set_cookie_params 

 17、有一个网页地址, 比如PHP研究室主页: http://www.phpv.net/index.html,如何得到它的内容

file_get_contents
curl 
fopen
fsockopen 

18、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?)

未授权
header("HTTP/1.0 404 Not Found");
fast CGI中:
header("Status: 404 Not Found");
19、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须
成对出现
$a = <<EOD
good test
EOD;

24. 在PHP中error_reporting这个函数有什么作用? 设定error的展示级别

25. 请写一个函数验证电子邮件的格式是否正确 

26. 简述如何得到当前执行脚本路径,包括所得到参数

$argc --获取参数数量
$argv --获取参数列表

27.如何修改SESSION的生存时间

session_set_cookie_params

28、JS表单弹出对话框函数是?获得输入焦点函数是)

alert()
confirm()
promopt()
focus()

29、JS的转向函数是?怎么引入一个外部JS文件

window.location.href="#"
<script src="#"></script>

30、foo()和@foo()之间有什么区别

@代表所有warning忽略

31、如何声明一个名为”myclass”的没有方法和属性的类

class myclass
{
}

32、如何实例化一个名为”myclass”的对象)

33、你如何访问和设置一个类的属性

<?php
class A
{
	public $name = "A";
}
$a = new A();
n=a->name;
print_r($n);

34、mysql_fetch_row() 和mysql_fetch_array之间有什么区别

36、指出一些在PHP输入一段HTML代码的办法

echo "{html}"
echo <<EOD
{html}
EOD;

37、下面哪个函数可以打开一个文件,以对文件进行读和写操作

(a) fget() (b) file_open() (c) fopen() (d) open_file()

38、下面哪个选项没有将 john 添加到users 数组中

(a) $users[] = ‘john’;
(b) array_add($users,’john’);
(c) array_push($users,‘john’);
(d) $users ||= ‘john’;

39、下面的程序会输入是否

$num = 10;
function multiply(){
	num=num * 10;
}
multiply();
echo $num;

40、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 

41、如何使用下面的类,并解释下面什么意思

42、写出 SQL语句的格式 : 插入 ,更新 ,删除 

43、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别

44、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段

46、检测一个变量是否有设置的函数是否?是否为空的函数是

47、取得查询结果集总数的函数是

mysql_num_rows()

48、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值

print_r($arr[0]);
reset($arr);
print_r(current($arr));
print_r(array_shift($arr));

49、请将41题的数组的值用','号分隔并合并成字串输出(1分)50、请取出a的值并打印出第一个字母

51、PHP可以和sql server/oracle等数据库连接吗)

52、请写出PHP5权限控制修饰符

53、请写出php5的构造函数和析构函数

54、写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名

55、写一个函数,算出两个文件的相对路径

56、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹

原文地址:https://www.cnblogs.com/chenpingzhao/p/4504477.html