版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2025年php基礎(chǔ)考試題及答案一、單項選擇題(每題2分,共30分)1.以下PHP變量命名符合規(guī)范的是()A.$2userB.$_user_nameC.$user-nameD.$用戶2.執(zhí)行`echo(bool)0.0;`輸出結(jié)果是()A.0B.1C.falseD.空字符串3.已知`$arr=[1,2=>3,4];`,`count($arr)`的返回值是()A.2B.3C.4D.54.以下能正確獲取當(dāng)前腳本絕對路徑的超全局變量是()A.$_SERVER['PHP_SELF']B.$_ENV['SCRIPT_FILENAME']C.$_SERVER['SCRIPT_FILENAME']D.$_REQUEST['DOCUMENT_ROOT']5.執(zhí)行`$str="hello";$str[0]='H';echo$str;`的輸出是()A.helloB.HelloC.HlloD.報錯6.關(guān)于PHP8.0新增的命名參數(shù)特性,以下描述錯誤的是()A.可以跳過可選參數(shù)B.必須按參數(shù)聲明順序傳遞C.與位置參數(shù)混合使用時需在位置參數(shù)之后D.提高代碼可讀性7.若`functiontest($a,$b=1){return$a+$b;}`,調(diào)用`test(b:2,3)`會()A.輸出5B.輸出3C.報錯D.輸出48.以下能正確創(chuàng)建關(guān)聯(lián)數(shù)組的是()A.$arr=array("name"=>"張三",2=>"年齡");B.$arr=[1=>"a",0=>"b","key"];C.$arr=(array)"字符串";D.$arr={1:"a",2:"b"};9.執(zhí)行`$x=5;$y=&$x;$y=$x+2;echo$x;`的結(jié)果是()A.5B.7C.2D.1010.關(guān)于`require`和`include`的區(qū)別,正確的是()A.require在錯誤時提供警告,include提供致命錯誤B.include可以在條件語句中使用,require不能C.require通常用于包含必須存在的文件D.include的效率高于require11.以下正則表達式能正確匹配中國手機號(11位,以13-19開頭)的是()A./^1[3-9]\d{9}$/B./^1[3-9][0-9]{8}$/C./^1[2-9]\d{9}$/D./^1[3-9]{10}$/12.執(zhí)行`echojson_encode(['name'=>'張三','age'=>null]);`的輸出是()A.{"name":"張三","age":null}B.{"name":"張三","age":""}C.{"name":"張三"}D.報錯13.以下關(guān)于魔術(shù)方法`__toString()`的描述正確的是()A.當(dāng)對象被轉(zhuǎn)換為字符串時自動調(diào)用B.可以返回任意類型的數(shù)據(jù)C.必須聲明為privateD.PHP5.0以下版本默認(rèn)存在14.若`classA{publicfunctiontest(){return1;}}classBextendsA{publicfunctiontest(){returnparent::test()+1;}}$obj=newB();echo$obj->test();`的輸出是()A.1B.2C.3D.報錯15.執(zhí)行`$date=newDateTime('2025-02-29');`會()A.創(chuàng)建成功,日期為2025-02-28B.創(chuàng)建成功,日期為2025-03-01C.拋出異常D.靜默轉(zhuǎn)換為2025-02-28二、填空題(每空2分,共20分)1.PHP8.1引入的新特性中,允許類屬性聲明為`readonly`的關(guān)鍵字是______。2.輸出`printf("%.2f",3.1415)`的結(jié)果是______。3.超全局變量______用于獲取CLI模式下的命令行參數(shù)。4.數(shù)組函數(shù)______可以將二維數(shù)組轉(zhuǎn)換為一維數(shù)組。5.若`$num="123abc";`,使用`intval($num)`轉(zhuǎn)換結(jié)果為______。6.在PHP中,使用______關(guān)鍵字聲明抽象類,使用______關(guān)鍵字聲明接口。7.正則表達式中,`\d`表示匹配______,`\s`表示匹配______。8.執(zhí)行`$a=1;$b=$a++;$c=++$a;`后,$b=______,$c=______。三、簡答題(每題6分,共30分)1.簡述PHP中`isset()`和`empty()`的區(qū)別,并各舉一個應(yīng)用場景。2.說明PHP8.0中`match`表達式與`switch`語句的主要差異(至少3點)。3.解釋MVC模式中Model、View、Controller的職責(zé)劃分,并說明在PHP框架(如Laravel)中的具體體現(xiàn)。4.列舉PHP中處理文件上傳的關(guān)鍵步驟(至少5步),并說明`$_FILES`數(shù)組各鍵名的含義。5.說明自動加載(Autoloading)機制的作用,以及PHP8.0支持的`__autoload()`函數(shù)與`spl_autoload_register()`的區(qū)別。四、代碼分析題(每題8分,共24分)1.分析以下代碼的輸出結(jié)果,并說明原因:```phpfunctiontest(&$arr){$arr[]=4;$arr=[10,20];}$a=[1,2,3];test($a);echocount($a);```2.指出以下代碼的錯誤并修正:```phpclassUser{private$name;publicfunction__construct(string$name){$this->name=$name;}}$user=newUser();echo$user->name;```3.分析以下代碼的輸出結(jié)果,并解釋執(zhí)行流程:```php$x=10;functionfoo(){global$x;$x+=5;static$y=0;$y++;return$y;}foo();echo$x.",";echofoo();```五、編程題(第1題10分,第2題16分,共26分)1.編寫一個PHP函數(shù)`filterPhoneNumbers($numbers)`,要求:輸入?yún)?shù)為字符串?dāng)?shù)組,每個元素是可能包含多個手機號的字符串(如15987654321")輸出所有符合中國手機號規(guī)則(11位,13-19開頭)的手機號,去重后按升序排列2.實現(xiàn)一個簡單的用戶登錄驗證功能(包含數(shù)據(jù)庫交互),要求:使用PDO連接MySQL數(shù)據(jù)庫(假設(shè)數(shù)據(jù)庫名為`test`,用戶`root`,密碼`123456`)用戶表`users`結(jié)構(gòu):id(int主鍵),username(varchar20),password(char32,MD5加密)功能:接收前端POST的`username`和`password`參數(shù),驗證是否存在該用戶(需防止SQL注入)返回JSON格式結(jié)果:成功時`{"code":200,"msg":"登錄成功"}`,失敗時`{"code":401,"msg":"用戶名或密碼錯誤"}`答案一、單項選擇題1.B2.A3.B4.C5.B6.B7.C8.A9.B10.C11.A12.A13.A14.B15.C二、填空題1.readonly2.3.143.$argv4.array_flatten(或自定義實現(xiàn))5.1236.abstract;interface7.任意數(shù)字;任意空白字符8.1;3三、簡答題1.`isset()`檢查變量是否聲明且不為null(返回布爾值),如判斷`$_POST['username']`是否存在;`empty()`檢查變量是否視為空(如0、空字符串、null等),如判斷用戶輸入是否為空。區(qū)別:`isset(null)`返回false,`empty(null)`返回true;`empty(0)`返回true,`isset(0)`返回true。2.差異:①`match`是表達式(有返回值),`switch`是語句;②`match`嚴(yán)格類型匹配(===),`switch`寬松匹配(==);③`match`不需要`break`,執(zhí)行完一個分支自動退出;④`match`支持返回值直接賦值,如`$result=match(...){...}`;⑤`match`的分支可以是任意表達式,而`switch`僅支持常量。3.Model:處理數(shù)據(jù)邏輯(如數(shù)據(jù)庫操作),Laravel中對應(yīng)Eloquent模型;View:負(fù)責(zé)數(shù)據(jù)展示(如模板文件),對應(yīng)Blade視圖;Controller:接收請求,調(diào)用Model獲取數(shù)據(jù),傳遞給View渲染,對應(yīng)Laravel的控制器類(如UserController)。4.關(guān)鍵步驟:①檢查`$_FILES`是否存在且無上傳錯誤(`UPLOAD_ERR_OK`);②驗證文件類型(`$_FILES['file']['type']`)和大小;③提供唯一文件名防止覆蓋;④使用`move_uploaded_file()`移動臨時文件到目標(biāo)目錄;⑤記錄文件信息到數(shù)據(jù)庫。`$_FILES`鍵名:`name`(原文件名)、`type`(MIME類型)、`tmp_name`(臨時路徑)、`error`(錯誤碼)、`size`(文件大?。?。5.作用:自動加載未聲明的類文件,避免手動`require`。區(qū)別:`__autoload()`是全局函數(shù),只能定義一個;`spl_autoload_register()`可注冊多個自動加載函數(shù),支持閉包和類方法,更靈活,是PHP推薦方式(`__autoload()`在PHP7.2已棄用)。四、代碼分析題1.輸出:2。原因:函數(shù)參數(shù)通過引用傳遞,`$arr[]=4`使原數(shù)組變?yōu)閇1,2,3,4];但隨后`$arr=[10,20]`將引用指向新數(shù)組,原變量`$a`現(xiàn)在指向新數(shù)組,其長度為2。2.錯誤:①構(gòu)造函數(shù)需要`$name`參數(shù),但實例化時未傳遞;②`$name`是private屬性,無法直接訪問。修正:```php$user=newUser("張三");//傳遞參數(shù)echo$user->name;//改為通過公共方法訪問,如添加publicfunctiongetName(){return$this->name;}后調(diào)用$user->getName()```3.輸出:15,2。流程:首次調(diào)用`foo()`,通過`global`訪問全局`$x`,將其增加到15;靜態(tài)變量`$y`初始化為0,自增后返回1(但未輸出)。第二次調(diào)用`foo()`,`$x`已為15(再次增加5變?yōu)?0,但未輸出),`$y`保留上次值1,自增后返回2,最終輸出15(第一次調(diào)用后的$x)和2(第二次調(diào)用返回的$y)。五、編程題1.參考實現(xiàn):```phpfunctionfilterPhoneNumbers($numbers){$pattern='/1[3-9]\d{9}/';$result=[];foreach($numbersas$str){preg_match_all($pattern,$str,$matches);if(!empty($matches[0])){$result=array_merge($result,$matches[0]);}}$unique=array_unique($result);sort($unique);return$unique;}```2.參考實現(xiàn):```phpheader('Content-Type:application/json');if($_SERVER['REQUEST_METHOD']!=='POST'){echojson_encode(['code'=>405,'msg'=>'請求方法錯誤']);exit;}$username=$_POST['username']??'';$password=$_POST['password']??'';if(empty($username)||empty($password)){echojson_encode(['code'=>400,'msg'=>'參數(shù)缺失']);exi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛州市中心城區(qū)城市建設(shè)指揮部招聘勞務(wù)派遣制工作人員備考題庫及答案詳解(易錯題)
- 分析化學(xué)基礎(chǔ)知識課件
- 肱骨骨折患者營養(yǎng)需求與膳食指導(dǎo)
- 蘇教版二年級數(shù)學(xué)下冊角的初步認(rèn)識
- 胸痹的體針療法
- 護理評估教學(xué)心得與感悟
- 胎兒電子監(jiān)護與臍帶異常
- 組織胚胎學(xué)基礎(chǔ):軟骨組織課件
- 商務(wù)風(fēng)紫色基金產(chǎn)品業(yè)務(wù)培訓(xùn)
- 2025-2030細(xì)胞治療產(chǎn)品生產(chǎn)工藝標(biāo)準(zhǔn)化建設(shè)研究報告
- 初中語文新課程標(biāo)準(zhǔn)與解讀課件
- 無人機裝調(diào)檢修工培訓(xùn)計劃及大綱
- 中建通風(fēng)與空調(diào)施工方案
- 高考語言運用題型之長短句變換 學(xué)案(含答案)
- 春よ、來い(春天來了)高木綾子演奏長笛曲譜鋼琴伴奏
- ARJ21機型理論知識考試題庫(匯總版)
- 2023年婁底市建設(shè)系統(tǒng)事業(yè)單位招聘考試筆試模擬試題及答案解析
- GB/T 4623-2014環(huán)形混凝土電桿
- GB/T 32065.4-2015海洋儀器環(huán)境試驗方法第4部分:高溫試驗
- GB/T 16823.3-2010緊固件扭矩-夾緊力試驗
- 中介服務(wù)費承諾書
評論
0/150
提交評論