【PHP Interview002】

1.以下哪一句不会把 John 新增到 users 阵列?

$users[] = 'john';  => 成功把 John 新增到阵列 users 
array_add($users,’john’);  => 函式 array_add() 定义 
array_push($users,‘john’);  => 成功把 John 新增到阵列 users 
$users ||= 'john';  => 语法错误。

2.sort()assort()、和 ksort() 有什么分别?它们分别在什么情况下使用?

sort()

根据阵列中元素的值,以英文字母顺序排序,索引键会由 0 n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。

PHP 没有 assort() 函式,所以可能是 asort() 的笔误

asort()

sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序

ksort()

根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。

3.以下的代码会产生什么?为什么?

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

由于函式 multiply() 没有指定 $num 为全域变量(例如 global $num 或者 $_GLOBALS['num']),所以 $num 的值是 10

4. reference 跟一个正规的变量有什么分别?如何 pass by reference?在什么情况下我们需要这样做?

Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用都见到这个变量的新值。

一个正规变量传送给函式的是它的值,当函式改变这个变量的值时,只有这个函式才见到新值,应用的其他部分仍然见到旧值。

$myVariable = "it's value";
// 以 reference 传送参数以 reference 传送参数给函式,可以使函式改变了的变量,即使在函式结束后仍然保留新值。
Myfunction(&$myVariable);

6.foo() @foo() 有什么分别?

foo() 会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。
@foo() 在执行这个函式时,会隐藏所有上述的错误讯息。
很多应用程式都使用 @mysql_connect() @mysql_query 来隐藏 mysql 的错误讯息,我认为这是很严重的失误,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。

8.“===”是什么?试举一个“==”是真但“===”是假的例子。

全等于;与==相比,===,不仅要求值相等,还要求变量类型也相等.

//比如
echo false==0?'等于':'不等于'; // 等于
echo false===0?"等于":'不等于'; //不等于

9.你会如何定义一个没有成员函式或特性的类别 myclass

class myclass();

10.你如何产生一个 myclass 的物件?

$obj = new myclass();

11.在一个类别内如何存取这个类别的特性及变改它的值?

//使用语句:$this->propertyName
//例如:
class myclass
{
    private $propertyName;
    public function __construct()
    {
        $this->propertyName = "value";
    }
}

13.以下哪一个函式可以把浏览器转向到另一个页面?

edir()  => 这不是一个 PHP 函式,会引致执行错误。
header()  

=> 这个是正确答案,header() 用来插入卷头资料,可以用来使浏览器转向到另一个页面,例如:header("Location: http://www.search-this.com/");

location()  => 这不是一个 PHP 函式,会引致执行错误。
redirect()  => 这不是一个 PHP 函式,会引致执行错误。

14.以下哪一个函式可以用来开启档案以便读/写?

get()  => 这不是一个 PHP 函式,会引致执行错误。
file_open()  => 这不是一个 PHP 函式,会引致执行错误。
fopen()  => 这是正确答案,fopen() 可以用来开启档案以便读/写,事实上这个函式还有很多选项,详细资料请参阅 php.net
open_file()  => 这不是一个 PHP 函式,会引致执行错误。

15.mysql_fetch_row() mysql_fetch_array() 有什么分别?

mysql_fetch_row 从结果集中取出一行作为索引数组,mysql_fetch_array从结果集中取出一行作为关联数组或索引数组,或两者兼得。

19.你如何利用 PHP 解决 HTTP 的无状态本质?

最主要的俩各选择是 session cookie。使用 session 的方法是在每一页的开始加上 session_start(),然后利用 $_SESSION 散列表来储存 session 变量。至于 cookie 你只需记着一个原则:在输出任何文字之前调用 set_cookie() 函式,此外只需使用 $_COOKIE 散列表便可以存取所有 cookie 变量。
还有一个不那么可靠的方法,就是利用访客的 IP 地址,这个方法有特定的危险性。

20.GD 函式库用来做什么?

GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。

 

posted on 2016-07-15 17:09  gimin  阅读(135)  评论(0)    收藏  举报