php筆試題2019,php筆試題不會寫

本文目錄一覽:

PHP面試題

1.有一個IP地址(192.168.0.1),請寫出其32位無符號整數形式。

2. 請列舉你能想到的UNIX信號,並說明信號用途。

答案:UNIX定義了許多信號,比如SIGINT表示中斷字元信號,也就是Ctrl+C的信號,SIGBUS表示硬體故障的信號;SIGCHLD表示子進程狀態改變信號;SIGKILL表示終止程序運行的信號

PHP面試題(求過程)

count() 能檢測遞歸來避免無限循環,但每次出現時會產生 E_WARNING 錯誤

(如果 array 不止一次包含了自身)並返回大於預期的統計數字。

PHP程序員上機面試題(並附答案,回答好的加分)

某大公司的PHP面試題

管理提醒: 本帖被 haowubai 執行取消置頂操作(2009-07-30)

1. 如何用php的環境變數得到一個網頁地址的內容?ip地址又要怎樣得到?

[php]

echo $_SERVER [‘PHP_SELF’];

echo $_SERVER [‘SERVER_ADDR’];

[/php]

2. 求兩個日期的差數,例如2007-2-5 ~ 2007-3-6 的日期差數

[php]

$begin=strtotime(‘2007-2-5’);

$end=strtotime(‘2007-3-6’);

echo ($end-$begin)/(24*3600);

[/php]

3. 請寫一個函數,實現以下功能:

字元串「open_door」 轉換成 「OpenDoor」、」make_by_id」 轉換成 」MakeById」。

[php]

function changeStyle( $str) {

/*$str = str_replace ( “_”, ” “, $str );

$str = ucwords ( $str );

$str = str_replace ( ” “, “”, $str );

return $str;*/

$arrStr=explode(‘_’,$str);

foreach($arrStr as $key=$value){

$arrStr[$key]=strtoupper(substr($value,0,1)).substr($value,1);

}

return implode(”,$arrStr);

}

$s = “open_door”;

echo changeStyle ( $s );

[/php]

4. 要求寫一段程序,實現以下數組$arr1轉換成數組$arr2:

[php]$arr1 = array (

‘0’ = array (‘fid’ = 1, ‘tid’ = 1, ‘name’ =’Name1′ ),

‘1’ = array (‘fid’ = 1, ‘tid’ = 2 , ‘name’ =’Name2′ ),

‘2’ = array (‘fid’ = 1, ‘tid’ = 5 , ‘name’ =’Name3′ ),

‘3’ = array (‘fid’ = 1, ‘tid’ = 7 , ‘name’ =’Name4′ ),

‘4’ = array (‘fid’ = 3, ‘tid’ = 9, ‘name’ =’Name5′ )

);

$arr2 = array (

‘0’ = array (

‘0’ = array ( ‘tid’ = 1, ‘name’ = ‘Name1’),

‘1’ = array ( ‘tid’ = 2, ‘name’ = ‘Name2’),

‘2’ = array ( ‘tid’ = 5, ‘name’ = ‘Name3’),

‘3’ = array ( ‘tid’ = 7, ‘name’ = ‘Name4’)

),

‘1’ = array (

‘0’ = array ( ‘tid’ = 9, ‘name’ = ‘Name5’ )

)

);

?php

$arr1 = array (

‘0’ = array (‘fid’ = 1, ‘tid’ = 1, ‘name’ =’Name1′ ),

‘1’ = array (‘fid’ = 1, ‘tid’ = 2 , ‘name’ =’Name2′ ),

‘2’ = array (‘fid’ = 1, ‘tid’ = 5 , ‘name’ =’Name3′ ),

‘3’ = array (‘fid’ = 1, ‘tid’ = 7 , ‘name’ =’Name4′ ),

‘4’ = array (‘fid’ = 3, ‘tid’ = 9, ‘name’ =’Name5′ )

);

function changeArrayStyle($arr){

foreach($arr as $key=$value){

$result[$value[‘fid’]][]=$value;

}

return array_values($result);

}

$arr2=changeArrayStyle($arr1);

echo “pre”;

var_dump($arr2);

[/php]

5. 請簡述資料庫設計的範式及應用。

一般第3範式就足以,用於表結構的優化,這樣做既可以避免應用程序過於複雜同時也避免了SQL語句過於龐大所造成系統效率低下。

ANSWER:

第一範式:若關係模式R的每一個屬性是不可再分解的,再屬於第一範式。

第二範式:若R屬於第一範式,且所有的非碼屬性都完全函數依賴於碼屬性,則為第二範式。

第三範式:若R屬於第二範式,且所有的非碼屬性沒有一個是傳遞函數依賴於候選碼,則屬於第三範式。

6.一個表中的Id有多個記錄,把所有這個id的記錄查出來,並顯示共有多少條記錄數,用SQL語句及視圖、存儲過程分別實現。

存儲過程:

[php]

DELIMITER //

create procedure proc_countNum(in columnId int,out rowsNo int)

begin

select count(*) into rowsNo from member where member_id=columnId;

end

call proc_countNum(1,@no);

select @no;

[/php]

視圖:

create view v_countNum as select member_id,count(*) as countNum from member group by member_id

select countNum from v_countNum where member_id=1

7 表中有A B C三列,用SQL語句實現:當A列大於B列時選擇A列否則選擇B列,當B列大於C列時選擇B列否則選擇C列。

[php]select

case

when first_namemiddle_name then

case when first_namelast_name then first_name

else last_name end

else

case when middle_namelast_name then middle_name else last_name

end

end as name

from member

[/php]

8請簡述項目中優化sql語句執行效率的方法,從哪些方面,sql語句性能如何分析?

ANSWER: sql優化有鳥用,不如直接加索引。

9 如果模板是用smarty模板。怎樣用section語句來顯示一個名為$data的數組。比如:

[php]$data = array(

[0] = array( [id]=8 [name]=』name1′)

[1] = array( [id]=10 [name]=』name2′)

[2] = array( [id]=15 [name]=』name3′)

……

)[/php]

寫出在模板頁的代碼? 若用foreach語句又要怎樣顯示呢?

占無答案.

10 寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾。(目錄操作)

[php] ?php

$d = dir(dirname(__file__));

//echo “Handle: ” . $d-handle . “\n”;

//echo “Path: ” . $d-path . “\n”;

while ( false !== ($entry = $d-read ()) ) {

echo $entry . “br /”;

}

$d-close ();

[/php]

11 兩張表 city表和province表。分別為城市與省份的關係表。

city:

id City Provinceid

1 廣州 1

2 深圳 1

3 惠州 1

4 長沙 2

5 武漢 3

………. 廣州

province:

id Province

1 廣東

2 湖南

3 湖北

……….

(1) 寫一條sql語句關係兩個表,實現:顯示城市的基本信息。?

(2) 顯示欄位:城市id ,城市名, 所屬省份 。

如:

Id(城市id) Cityname(城市名) Privence(所屬省份)

。。。。。。。。。

。。。。。。。。。

(2)如果要統計每個省份有多少個城市,請用group by 查詢出來。?

顯示欄位:省份id ,省份名,包含多少個城市。

ANSWER:

1.select A.id,A.Cityname,B.Province from city A,province B where A.provinceid=B.id

2.select B.id,B.Province,count(*) as num from city A,province B where A.provinceid=B.id group by B.id

12. 按照你的經驗請簡述軟體工程進行軟體開發的步驟。以下工具Rational Rose、PowerDesigner、Project、VSS或CVS、TestDirector使用過那種,有缺點是什麼?

公司用dbdesigner及cvs,測試管理工具用的是Mantis

13. 請簡述操作系統的線程與進程的區別。列舉LINUX下面你使用過的軟體?

14. 請使用偽語言結合數據結構冒泡排序法對以下一組數據進行排序 10 2 36 14 10 25 23 85 99 45。

[php]function bubble_sort( $arr){

$number=count($arr);

for($i=0;$i$number-1;$i++){

for($j=0;$j$number-1-$i;$j++){

if($arr[$j]$arr[$j+1]){

$tmp=$arr[$j];

$arr[$j]=$arr[$j+1];

$arr[$j+1]=$tmp;

}

}

}

}

$str=”10 2 36 14 10 25 23 85 99 45″;

$arr=explode(” “,$str);

bubble_sort($arr);

echo “pre”;

var_dump($arr);

[/php]

PHP應聘筆試題

題目一:

?php

echo -10%3;

?

答案:-1。

考查:優先順序。因為-的優先順序比%求余的優先順序低,也就是-(10%3)。

題目二:

print (int)pow(2,32);

答案:0

題目三:

//file1.php

?php

$a = ‘123’;

?

//file2.php

?php

echo include(‘file1.php’);

?

答案:1.

考查:返回值。因include()也是一個函數,有返回值。在成功時返回1,失敗時返回錯誤信息。如果被包含的文件有return,則inculde()成功時返回該文件的`返回值。

題目四:

?php

$count = 5;

function get_count() {

static $count = 0;

return $count++;

}

++$count;

get_count();

echo get_count();

?

答案:1.

考查:static和++。因static $count,所以只在第一次調用get_count的時候對$count賦值為0,第二次再進來這個函數,則不會第二次賦值。其次就是return $count++和return ++$count了,前者先返回,後者先++再返回。

題目五:

?php

$arr= array(0 =1,’aa’ =2,3,4);

foreach($arr as $key = $val){

print($key == ‘aa’ ? 5 : $val);

}

?

答案:5534.

考查:類型轉換。因遍曆數組第一次的時候,$key和aa的比較實際就是0和aa的比較,一個是int一個是string,這個時候會轉換類型,將字元串轉換為數字再與數字比較。所以0==’aa’就是0==0,所以為true,也就是輸出5。雖然PHP是若類型語言,但是人家也有類型的好嗎。

   題目六:

?php

echo count (false);

$a = count (“567”) + count(null)

+ count(false);

echo $a;

?

答案:2.

考查:count的用法。

因count()的官方解釋「If the parameter

is not an array or not an object

with implemented Countable

interface, 1 will be returned.」.意思是說,如果不是數組或者對象的其他類型,返回1.那麼這個值應該就是1+0+1了(boolen人家也是一個類型,雖然是討厭的false)。NULL的意思是沒有值,難道在計數函數中還能有1?

題目七:

?php

$arr = array(1,2,3);

foreach($arr as $val) {

$val += $val % 2 ? $val++ : $val–;

}

$val = 0;

print(join(”,$arr));

?

答案:330。

考查:++和。

因foreach結束後的數組應該是array(3,3,7);最後給第三個元素賦值為0,所以就是330了。其中注意的是,如果有則是對原變數操作,如果沒有,則是先生成一個新變數,然後給這個變數複製,最後操作的是這個新變數。

題目八:

?php

echo intval((0.1+0.7)*10);

?

答案:7。

考查:浮點數的概念。

因0.1+0.7=0.8 0.8*10=8 所以轉換成整數後還是8?錯!因為0.1+0.7=0.8是浮點數,0.8*10在數學計算中是正整數8,可是在計算機中它仍然是浮點數8,什麼叫浮點數8?每一個看起來像整數的浮點數,其實都不是整數,比如這個8,它其實只是

7.9999循環,無限接近於8,轉換成整數會捨棄小數部分,就是7嘍。

題目九:

?php

ini_set(‘display_errors’,0);

$arr = array(1=1,3=3);

$i = 2;

$a = ‘test’ . isset($arr[$i]) ?

$arr[$i] : $i;

請問$a的值是什麼?

A、test B、NULL C、2 D、test2

?

答案:B。

考查:優先順序 因「.”的優先順序高於三元運算符”?:”。所以程序其實報錯了。會說$arr的索引2不存在。

題目十:

?php

$a = 3;

$b = 5;

if($a = 5 || $b = 7) {

$a++;

$b++;

}

echo $a . ” ” . $b;

?

A、6 8 B、6 6 C、2 6 D、1 6 E、4 6

答案:D。

考查:優先順序,基礎概念,++。因「=”的優先順序低於「||」,所以先邏輯判斷再賦值。也就是($a = (5 || $b = 7))。所以,最後其實給a賦值了,$a等於1.

php面試題解答

1,

var x=document.getElementById(“img1”);

var title=document.getElementById(“img1”).title;

var sina_title=document.getElementById(“img1”).sina_title;

2,serialize(),unserialize();

3,編碼方式不同,urlencode()將字串以URL編碼。例如空格就會變成加號。

rawurlencode()將url編碼成url的字元串專用格式,特殊字元迴轉換成百分號後面加兩個十六子介數字的格式。

4,strip_tags(),html_entity_decode();

5,$str=preg_replace(“/\script.*\.*\\/script\/i”,””,$str);

6,左連接,左連接的表如果沒有匹配的數據不影響結果。

7

SELECT name,score FROM tl_user LEFT JOIN tl_score ON tl_user.ID=tl_score.ID

7 system(),exec(),passthru()

8,json_decode ,json_encode

9 isset() empty()

10 後者的許可權大於前者,後者是OFF的話,前者就算是E-ALL也沒用。

11,$_SERVER[‘REMOTE_ADDR’];

12,incov()

echo iconv(“gbk”,””UTF-8,”我們”);

mb_convert_encoding($str, “GBK”, “UTF-8”)

13 explode() split() ;implode() join()

14 注意事項挺多的,懶得寫。

1,超時,伺服器已經關閉連接

2 靜態表欄位長度固定,自動填充,讀寫速度很快,便於緩存和修復,但比較占硬碟,動態表是欄位長度不固定,節省硬碟,但更複雜,容易產生碎片,速度慢,出問題後不容易重建。

3InnoDB和MyISAM是在使用MySQL最常用的兩個表類型,各有優缺點,視具體應用而定。基本的差別為:MyISAM類型不支持事務處理等高級處理,而InnoDB類型支持。MyISAM類型的表強調的是性能,其執行數度比InnoDB類型更快,但是不提供事務支持,而InnoDB提供事務支持已經外部鍵等高級資料庫功能。

MyIASM是IASM表的新版本,有如下擴展:

二進位層次的可移植性。

NULL列索引。

對變長行比ISAM表有更少的碎片。

支持大文件。

更好的索引壓縮。

更好的鍵嗎統計分布。

更好和更快的auto_increment處理。

1.MySQL最大的優勢在於MyISAM引擎下的簡單SELECT,INSERT和UPDATE快速操作

2.MyISAM類型的數據文件可以在不同操作系統中COPY,這點很重要,布署的時候方便點。

以下是一些細節和具體實現的差別:

1.InnoDB不支持FULLTEXT類型的索引。

2.InnoDB 中不保存表的具體行數,也就是說,執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行,但是MyISAM只要簡單的讀出保存好的行數即可。注意的是,當count(*)語句包含 where條件時,兩種表的操作是一樣的。

3.對於AUTO_INCREMENT類型的欄位,InnoDB中必須包含只有該欄位的索引,但是在MyISAM表中,可以和其他欄位一起建立聯合索引。

4.DELETE FROM table時,InnoDB不會重新建立表,而是一行一行的刪除。

5.LOAD TABLE FROM MASTER操作對InnoDB是不起作用的,解決方法是首先把InnoDB表改成MyISAM表,導入數據後再改成InnoDB表,但是對於使用的額外的InnoDB特性(例如外鍵)的表不適用。

另外,InnoDB表的行鎖也不是絕對的,如果在執行一個SQL語句時MySQL不能確定要掃描的範圍,InnoDB表同樣會鎖全表,例如update table set num=1 where name like 「%aaa%」

以暫對存儲引擎的認識,覺得 InnoDB 支持外鍵,在數據量可以用「龐大」來形容時,在有良好的 INDEX 的基礎上,InnoDB 的查詢速度應該比 MyISAM 要快。

在 Falcon 有穩定版本前,我想 MyISAM 是一個可用的選擇方案。

任何一種表都不是萬能的,只用恰當的針對業務類型來選擇合適的表類型,才能最大的發揮MySQL的性能優勢

3, 都是1 ^^懶得回答了,睡覺去。

原創文章,作者:BBHKJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/324598.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
BBHKJ的頭像BBHKJ
上一篇 2025-01-13 13:23
下一篇 2025-01-13 13:23

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24
  • php擴展庫初探

    一、什麼是php擴展庫? PHP擴展庫(PHP extension)是一些用C語言編寫的動態鏈接庫,用於擴展PHP的功能。PHP擴展庫使得PHP可以與各種資料庫系統相連、SMTP、…

    編程 2025-04-23

發表回復

登錄後才能評論