一個(gè)朋友在千鋒學(xué)習(xí)的PHP,他們內(nèi)部有一個(gè)面試寶典,后來(lái)這哥們?cè)滦侥玫搅艘蝗f(wàn)多。我把內(nèi)部的面試寶典拿出來(lái)跟大家一起分享,希望幫助到還在找工作的朋友們。
30、foo()和@foo()之間有什么區(qū)別?(1分)
@代表所有warning忽略
31、如何聲明一個(gè)名為”myclass”的沒(méi)有方法和屬性的類(lèi)? (1分)
class myclass
{
}
32、如何實(shí)例化一個(gè)名為”myclass”的對(duì)象?(1分)
$myclass = new myclass();
33、你如何訪問(wèn)和設(shè)置一個(gè)類(lèi)的屬性? (2分)
class A
{
public $name = "A";
}
$a = new A();
n=n=a->name;
print_r($n);
34、mysql_fetch_row() 和mysql_fetch_array之間有什么區(qū)別? (1分)
mysql_fetch_array() 是 mysql_fetch_row() 的擴(kuò)展版本。除了將數(shù)據(jù)以數(shù)字索引方式儲(chǔ)存在數(shù)組中之外,還可以將數(shù)據(jù)作為關(guān)聯(lián)索引儲(chǔ)存,用字段名作為鍵名。
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while (row=mysqlfetcharray(row=mysqlfetcharray(result, MYSQL_ASSOC)) {
printf ("ID: %s ?Name: %s",?row["id"],row["id"],row["name"]);
}
mysql_free_result($result);
--------------------------------------------------------------------
35、GD庫(kù)是做什么用的? (1分)
動(dòng)態(tài)的開(kāi)放的圖片處理庫(kù)
36、指出一些在PHP輸入一段HTML代碼的辦法。(1分)
echo "{html}"
echo <
{html}
EOD;
37、下面哪個(gè)函數(shù)可以打開(kāi)一個(gè)文件,以對(duì)文件進(jìn)行讀和寫(xiě)操作?(1分) c
(a) fget() (b) file_open() (c) fopen() (d) open_file()
38、下面哪個(gè)選項(xiàng)沒(méi)有將 john 添加到users 數(shù)組中? (1分) b
(a) $users[] = ‘john’;
(b) array_add($users,’john’);
(c) array_push($users,‘john’);
(d) $users ||= ‘john’;
39、下面的程序會(huì)輸入是否?(1分) 10
$num = 10;
function multiply(){
num=num=num * 10;
}
multiply();
echo $num;
?>
40、使用php寫(xiě)一段簡(jiǎn)單查詢,查出所有姓名為“張三”的內(nèi)容并打印出來(lái) (2分)
表名 UserName Tel Content Date
張三 13333663366 大專(zhuān)畢業(yè) 2006-10-11
張三 13612312331 本科畢業(yè) 2006-10-15
張四 021-55665566 中專(zhuān)畢業(yè) 2006-10-15
請(qǐng)根據(jù)上面的題目完成代碼:
$mysql_db=mysql_connect("local","root","pass");
@mysql_select_db("DB",$mysql_db);
$sql = sprintf("select * from %s where UserName = '%s'",
"表名",
"張三");
values=mysqlquery(values=mysqlquery(sql);
while(item=mysqlfetchqueryarray(item=mysqlfetchqueryarray(values))
{
echo sprintf("用戶名:%s, 電話 %s, 學(xué)歷: %s, 畢業(yè)日期: %s",
item[′UserName′],item[′UserName′],item['Tel'],?item[′Content′],item[′Content′],item['Date']
);
}
41、如何使用下面的類(lèi),并解釋下面什么意思?(3)
class test{
function Get_test($num){
num=md5(md5(num=md5(md5(num)."En");
return $num;
}
}
$test = new test();
ret=ret=test->Get_test(11);
print_r($ret);exit;
將num進(jìn)行MD5編碼之后生成的32位字符串a(chǎn)1和"En"聯(lián)系起來(lái)之后再進(jìn)行一次MD5編碼
----------------------------------------------------------------------------
42、寫(xiě)出 SQL語(yǔ)句的格式 : 插入 ,更新 ,刪除 (4分)
表名 UserName Tel Content Date
張三 13333663366 大專(zhuān)畢業(yè) 2006-10-11
張三 13612312331 本科畢業(yè) 2006-10-15
張四 021-55665566 中專(zhuān)畢業(yè) 2006-10-15
(a) 有一新記錄(小王 13254748547 高中畢業(yè) 2007-05-06)請(qǐng)用SQL語(yǔ)句新增至表中
insert into 表名 values('小王', '13254748547', '高中畢業(yè)', '2007-05-06')
(b) 請(qǐng)用sql語(yǔ)句把張三的時(shí)間更新成為當(dāng)前系統(tǒng)時(shí)間
update 表名 set Date = GETDATE() where UserName = "張三"
(c) 請(qǐng)寫(xiě)出刪除名為張四的全部記錄
delete from 表明 where UserName = "張四"
43、請(qǐng)寫(xiě)出數(shù)據(jù)類(lèi)型(int char varchar datetime text)的意思; 請(qǐng)問(wèn)varchar和char有什么區(qū)別(2分)
int 整型
char 存儲(chǔ)定長(zhǎng)
varchar 存儲(chǔ)變長(zhǎng)
datetime 時(shí)間
text 存儲(chǔ)變長(zhǎng)的
varchar是變長(zhǎng)
char(20) 定長(zhǎng)
44、MySQ自增類(lèi)型(通常為表ID字段)必需將其設(shè)為(?)字段(1分)
auto_increment
45、寫(xiě)出以下程序的輸出結(jié)果 (1分)
$b=201;
$c=40;
a=a=b>$c?4:5;
echo $a;
?>
4
46、檢測(cè)一個(gè)變量是否有設(shè)置的函數(shù)是否?是否為空的函數(shù)是?(2分)
isset()
empty()
-----------------------------------------------------------------------------
47、取得查詢結(jié)果集總數(shù)的函數(shù)是?(1分)
mysql_num_rows()
48、$arr = array('james', 'tom', 'symfony'); 請(qǐng)打印出第一個(gè)元素的值 (1分)
print_r($arr[0]);
reset($arr);
print_r(current($arr));
print_r(array_shift($arr));
49、請(qǐng)將41題的數(shù)組的值用','號(hào)分隔并合并成字串輸出(1分)
implode
50、a=′abcdef′;請(qǐng)取出a=′abcdef′;請(qǐng)取出a的值并打印出第一個(gè)字母(1分)
$a[0];
substr($a, 0, 1);
51、PHP可以和sql server/oracle等數(shù)據(jù)庫(kù)連接嗎?(1分)
可以
有現(xiàn)成的庫(kù)
52、請(qǐng)寫(xiě)出PHP5權(quán)限控制修飾符(3分)
public
private
protected
53、請(qǐng)寫(xiě)出php5的構(gòu)造函數(shù)和析構(gòu)函數(shù)(2分)
public function __construct()
{
}
public function __destruct()
{
}
編程題
1. 寫(xiě)一個(gè)函數(shù),盡可能高效的,從一個(gè)標(biāo)準(zhǔn) url 里取出文件的擴(kuò)展名
例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php
$url = "http://www.sina.com.cn/abc/de/fg.php?id=1";
arr=parseurl(arr=parseurl(url);
pathArr=pathinfo(pathArr=pathinfo(arr['path']);
print_r($pathArr['extension']);
3. 寫(xiě)一個(gè)函數(shù),算出兩個(gè)文件的相對(duì)路徑
如 $a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
計(jì)算出?b相對(duì)于b相對(duì)于a 的相對(duì)路徑應(yīng)該是 http://www.cnblogs.com/12/34/c.php將添上
$a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
//獲取path相對(duì)于conpath的相對(duì)路徑
function sGetRelativePath(path,path,conpath)
{
pathArr=explode("/",pathArr=explode("/",path);
conpathArr=explode("/",conpathArr=explode("/",conpath);
$dismatchlen = 0;
for(i=0;i=0;i < count(pathArr);pathArr);i++)
{
if(conpathArr[conpathArr[i] !=?pathArr[pathArr[i])
{
dismatchlen=count(dismatchlen=count(pathArr) - $i;
arrLeft=arrayslice(arrLeft=arrayslice(pathArr, $i);
break;
}
}
ret=strrepeat("../",ret=strrepeat("../",dismatchlen).implode("/", $arrLeft);
return $ret;
}
print_r(sGetRelativePath(b,b,a));
3.寫(xiě)一個(gè)函數(shù),能夠遍歷一個(gè)文件夾下的所有文件和子文件夾。
function aGetAllFile($folder)
{
$aFileArr = array();
if(is_dir($folder))
{
handle=opendir(handle=opendir(folder);
while((file=readdir(file=readdir(handle)) !== false)
{
//如果是.或者..則跳過(guò)
if(file=="."||file=="."||file == "..")
{
continue;
}
if(is_file(folder."/".folder."/".file))
{
aFileArr[]=aFileArr[]=file;
}
else if(is_dir(folder."/".folder."/".file))
{
aFileArr[aFileArr[file] = aGetAllFile(folder."/".folder."/".file);
}
}
closedir($handle);
}
return $aFileArr;
}
$path = "/home/test/sql";
print_r(aGetAllFile($path));
PHP培訓(xùn)筆記>>千鋒php筆記