关于几个PHP语言基础的面试题

PHP语言基础

1.strlen()与 mb_strlen()的作用分别是什么?(新浪网技术部)

答:strlen和mb_strlen都是用于获取字符串长度的,其中strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数,如果是多字节编码,如gbk和utf8,使用strlen得到的不是字符的个数,而是该字符的总字节数,可以使用mb_strlen获取其字符个数,使用mb_strlen要注意两点,一是要开启 mbstring 扩展,二是要指定字符集。 

相关题目 :

如何求解字符串“中国2北333京”的字符数(一个中文一个字符),并找到第 四个字符“北” 。

答:

<?php

header('Content-Type:text/html;charset=utf8');

$a = '中国2北333京';
echo mb_strlen($a,'utf8');
echo mb_substr($a,3,1,'utf8');

2. 下列哪个函数是用正则表达式将字符串分割到数组中( )

A.split B.implode C.explode D.join

答案:A

3.写出下列几个预定义全局变量的作用(新浪网技术部)

$_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录

$_SERVER['HTTP_HOST'] //当前请求的 Host: 头部的内容

$_SERVER['REMOTE_ADDR'] //正在浏览当前页面用户的 IP 地址

$_SERVER['HTTP_REFERER'] //链接到当前页面的前一页面的 URL 地址

$_SERVER['SERVER_NAME'] //当前运行脚本所在服务器主机的名称

$_FILES //包含有所有上传的文件信息 S_FILES['userfile']['name'] //客户端机器文件的原名称

$_FILES['userfile']['type'] //文件 MIME 类型,如果浏览器提供此信息的话,如“image/gif”。

$_FILES['userfile']['size'] //已上传文件的大小,单位为字节

$_FILES['userfile']['tmp_name'] //文件被上传后在服务端储存的临时文件名

$_FILES['userfile']['error'] //和该文件上传相关的错误代码

4.include 和 require 都能把另外一个文件包含到当前文件中,他们有什么区别?Include 和 include_once 又有什么区别?(新浪网技术部)

答:二者区别只有一个,那就是对包含文件的需求程度,include 就是包含,如果被包含的 文件不存在的话,那么则会提示一个错误,但是程序会继续执行下去。而 require 意思是需要,如果被包含文件不存在或者无法打开的时候,则会提示错误, 并且会终止程序的执行。 这两种结构除了在如何处理失败之外完全一样。 once 的意思是一次,那么 include_once 和 require_once 表示只包含一次,避免重复包含。
5. 用最少的代码写一个求 3 值最大值的函数.(51.com 笔试题)
 

<?php
function maximum($a,$b,$c){
 return $a > $b ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c);
}
echo maximum();

6.简述POST和GET传输的最大容量分别是多少?(51.com 笔试题) 

答:POST根据php.ini文件配置默认是8M。

GET大小限制在2KB。


相关题目:表单中get与post提交方法的区别?

答:get 是发送请求HTTP协议通过url参数传递进行接收,而 post 是实体数据,可以通过表单提交大量信息,而post方法要比get方法相对来说安全一些。

7.echo(),print(),print_r()的区别?(新浪)

答:echo 是一个语言结构,输出一个或多个字符串;

print()实际上不是一个函数(它是一个语言结构),因此可以不必使用圆括号来括起它的参数列表,它输出一个字符串;

print_r() 是一个函数,打印变量的信息,基本类型,数组,对象。

相关题目:Whatisthe differencebetween"print()"and"echo()"? (腾讯)

answer:printisafunction,echoisalanguage construct

8.用 PHP 打印出前一天的时间格式是?

<?php
echo date("Y-m-d H:i:s",time() - 3600*24);
echo date('Y-m-d H:i:s',strtotime("-1 day"));

9.不使用第三个变量交换两个变量的值。

答:

<?php
$a = 'php';
$b = 'mysql';
echo $a,$b;
list($a,$b) = array($b,$a);
echo $a,$b;

10.请说明 php 中传值与传引用的区别。什么时候传值什么时候传引用?

答:变量默认总是传值赋值。也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。PHP 也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前(源变量)。 对象默认是传引用。 对于较大的数据,传引用比较好,这样可以节省内存的开销。

相关题目:

What isthe differencebetweena reference and a regularvariable? Howdo you passby reference&whywouldyouwantto?(Yahoo)

答:reference传送的是变量的地址而非它的值,所以在函数中改变一个变量的值时,整个应用都见到这个变量的新值。一个 regular variable 传送给函数的是它的值,当函数改变这个变量的值时,只有这个函数才见到新值,应用的其他部分仍然见到旧值。
 

猜你喜欢

转载自blog.csdn.net/qq_41630218/article/details/81151056