国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

php面試題及答案

這篇具有很好參考價值的文章主要介紹了php面試題及答案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1

請輸出下面代碼執(zhí)行結(jié)果

<?php 
echo count(strlen("http://php.net")); 
?>
答案:1

復(fù)制

講解:count(var)是用來統(tǒng)計數(shù)組或?qū)ο蟮脑貍€數(shù)的。當(dāng)var是null或者空數(shù)組時,結(jié)果為0。如果var是普通變量,則返回1。正常情況下返回var中的元素或?qū)傩詡€數(shù)。

2

請說明php.ini中的safe_mode開啟之后影響了哪些函數(shù)

答案:Safe_mode是php的安全模式。開啟之后,主要會對系統(tǒng)操作、文件、權(quán)限設(shè)置等方法產(chǎn)生 影響,主要用來應(yīng)對webshell。以下是受到影響的一些函數(shù):

ckdir,move_uploaded_file,chgrp,parse_ini_file,
chown,rmdir,copy,rename,fopen,require,highlight_file,
show_source,include,symlink,link,touch,mkdir,unlink,
exec,shell_exec,pasathru,system,popen

復(fù)制

需要注意的是:在php5.3以上版本,safe_mode被棄用,在php5.4以上版本,則將此特性完全去除了。

3

php5中魔術(shù)方法有哪幾個?請舉例說明各自的用法

  • __construct() :構(gòu)造方法,當(dāng)一個對象創(chuàng)建時調(diào)用此方法,使用此方法的好處是:可以使構(gòu)造方法有一個獨一無二的名稱,無論它所在的類的名稱是什么.這樣你在改變類的名稱時,就不需要改變構(gòu)造方法的名稱
  • __destruct() :析構(gòu)方法,PHP將在對象被銷毀前(即從內(nèi)存中清除前)調(diào)用這個方法。默認(rèn)情況下,PHP僅僅釋放對象屬性所占用的內(nèi)存并銷毀對象相關(guān)的資源。
  1. 析構(gòu)函數(shù)允許你在使用一個對象之后執(zhí)行任意代碼來清除內(nèi)存。
  2. 當(dāng)PHP決定你的腳本不再與對象相關(guān)時,析構(gòu)函數(shù)將被調(diào)用。
  3. 在一個函數(shù)的命名空間內(nèi),這會發(fā)生在函數(shù)return的時候。
  4. 對于全局變量,這發(fā)生于腳本結(jié)束的時候。
  5. 如果你想明確地銷毀一個對象,你可以給指向該對象的變量分配任何其它值。
  6. 通常將變量賦值勤為NULL或者調(diào)用unset
  • __call() :調(diào)用對象不存在得方法時執(zhí)行此函數(shù)。包括沒有權(quán)限訪問的方法
  • __get() :當(dāng)調(diào)用一個未定義的屬性時訪問此方法
  • __set( property,value ) :給一個未定義的屬性賦值時調(diào)用
  • __isset() : 當(dāng)在一個未定義的屬性上調(diào)用isset()函數(shù)時調(diào)用此方法
  • __unset() :當(dāng)在一個未定義的屬性上調(diào)用unset()函數(shù)時調(diào)用此方法
  • __toString() :toString方法在將一個對象轉(zhuǎn)化成字符串時自動調(diào)用,比如使用echo打印對象時   如果類沒有實現(xiàn)此方法,則無法通過echo打印對象,否則會顯示:Catchable fatal error: Object of class test could not be converted to string in   此方法必須返回一個字符串
  • __clone() :克隆對象時執(zhí)行此函數(shù)。PHP5中的對象賦值是使用的引用賦值,如果想復(fù)制一個對象則需要使用clone方法,在調(diào)用此方法是對象會自動調(diào)用__clone魔術(shù)方法。如果在對象復(fù)制需要執(zhí)行某些初始化操作,可以在__clone方法實現(xiàn)
  • __autoload() :它會在試圖使用尚未被定義的類時自動調(diào)用。通過調(diào)用此函數(shù),腳本引擎在 PHP 出錯失敗前有了最后一個機會加載所需的類。 注意: 在 __autoload 函數(shù)中拋出的異常不能被 catch 語句塊捕獲并導(dǎo)致致命錯誤。
  • __sleep() :serialize之前被調(diào)用,可以指定要序列化的對象屬性。
  • __wakeup :unserialize之前被調(diào)用,可以執(zhí)行對象的初始化工作。
  • __set_state() :調(diào)用var_export時,被調(diào)用。用__set_state的返回值做為var_export的返回值(自PHP 5.1.0起有效)。
  • __invoke() :將對象當(dāng)作函數(shù)來使用時執(zhí)行此方法,通常不推薦這樣做。
  • __callStatic它的工作方式類似于 __call() 魔術(shù)方法,__callStatic() 是為了處理靜態(tài)方法調(diào)用
  1. PHP5.3.0以上版本有效。
  2. 它必須是公共的,并且必須被聲明為靜態(tài)的。
  3. 同樣,__call() 魔術(shù)方法必須被定義為公共的,所有其他魔術(shù)方法都必須如此。

4

說幾個常用的超全局變量

  • $_GET ----->get傳送方式
  • $_POST ----->post傳送方式
  • $_REQUEST ----->可以接收到get和post兩種方式的值
  • $GLOBALS ----->所有的變量都放在里面
  • $_FILES ----->上傳文件使用
  • $_SERVER ----->系統(tǒng)環(huán)境變量
  • $_SESSION ----->會話控制的時候會用到
  • $_COOKIE ----->會話控制的時候會用到

5

說幾個你知道的設(shè)計模式

  • 單例模式: 保證一個類僅有一個實例,并提供一個訪問他的全局訪問點例如框架中的數(shù)據(jù)庫連接
  • 策略模式: 針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,例如進入個人主頁時,根據(jù)瀏覽者的不同,給予不同的顯示與操作。
  • 注冊模式: 提供了在程序中有條理的存放并管理一組全局對象 (object),例如ZF框架中的Zend_Registry::set。
  • 適配器模式: 將不同接口適配成統(tǒng)一的API接口,例如數(shù)據(jù)操作有mysql、mysqli、pdo等,可利用適配器模式統(tǒng)一接口
    • 觀察者模式: 一個對象通過添加一個方法使本身變得可觀察。當(dāng)可觀察的對象更改時,它會將消息發(fā)送到已注冊的觀察者。例如實現(xiàn)實現(xiàn)消息推送
  • 裝飾器模式: 不修改原類代碼和繼承的情況下動態(tài)擴展類的功能,例如框架的每個Controller文件會提供before和after方法
  • 迭代器模式: 提供一個方法順序訪問一個聚合對象中各個元素,在PHP中將繼承 Iterator 類

6

請寫一個函數(shù)驗證電子郵件的格式是否正確

<?php
    $str = "jianfeng@126.com";
    regex="([a?z0?9\.?]+)@([\da?z\.?]+)\.([a?z\.]2,6)" ; //正則
    return preg_match(regex,str);
?>

復(fù)制

7

isset、empty、is_null的區(qū)別

  • isset 判斷變量是否定義或者是否為空
    1. 變量存在返回ture,否則返回false
    2. 變量定義不賦值返回false unset一個變量,返回false
    3. 變量賦值為null,返回false
  • empty:判斷變量的值是否為空,能轉(zhuǎn)換為false的都是空,為空返回true,反之返回false。
    1. "",0,"0",NULL,F(xiàn)ALSE都認(rèn)為為空,返回true
    2. 沒有任何屬性的對象都認(rèn)為是空,返回true
  • is_null:檢測傳入的值(值、變量、表達式)是否為null
    1. 定義了,但是賦值為Null,返回true
    2. 定義了,但是沒有賦值,返回reue
    3. 被unset一個變量,返回true

8

對于關(guān)系型數(shù)據(jù)庫而言,索引是相當(dāng)重要的概念,請回答有關(guān)索引的幾個問題:

  • 索引的目的是什么?
    1. 快速訪問數(shù)據(jù)表中的特定信息,提高檢索速度
    2. 創(chuàng)建唯一性索引,保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的唯一性。
    3. 加速表和表之間的連接
    4. 使用分組和排序子句進行數(shù)據(jù)檢索時,可以顯著減少查詢中分組和排序的時間
  • 索引對數(shù)據(jù)庫系統(tǒng)的負(fù)面影響是什么? 負(fù)面影響: 創(chuàng)建索引和維護索引需要耗費時間,這個時間隨著數(shù)據(jù)量的增加而增加;索引需要占用物理空間,不光是表需要占用數(shù)據(jù)空間,每個索引也需要占用物理空間;當(dāng)對表進行增、刪、改、的時候索引也要動態(tài)維護,這樣就降低了數(shù)據(jù)的維護速度。
  • 為數(shù)據(jù)表建立索引的原則有哪些?
    1. 在最頻繁使用的、用以縮小查詢范圍的字段上建立索引。
    2. 在頻繁使用的、需要排序的字段上建立索引
  • 什么情況下不宜建立索引?
    1. 對于查詢中很少涉及的列或者重復(fù)值比較多的列,不宜建立索引。
    2. 對于一些特殊的數(shù)據(jù)類型,不宜建立索引,比如文本字段(text)等。

9

PHP網(wǎng)站的主要攻擊方式有哪些? 1. 命令注入(Command Injection) 2. eval 注入(Eval Injection) 3. 客戶端腳本攻擊(Script Insertion) 4. 跨網(wǎng)站腳本攻擊(Cross Site Scripting, XSS) 5. SQL 注入攻擊(SQL injection) 6. 跨網(wǎng)站請求偽造攻擊(Cross Site Request Forgeries, CSRF) 7. Session 會話劫持(Session Hijacking) 8. Session 固定攻擊(Session Fixation) 9. HTTP 響應(yīng)拆分攻擊(HTTP Response Splitting) 10. 文件上傳漏洞(File Upload Attack) 11. 目錄穿越漏洞(Directory Traversal) 12. 遠程文件包含攻擊(Remote Inclusion) 13. 動態(tài)函數(shù)注入攻擊(Dynamic Variable Evaluation) 14. URL 攻擊(URL attack) 15. 表單提交欺騙攻擊(Spoofed Form Submissions) 16. HTTP 請求欺騙攻擊(Spoofed HTTP Requests)

10

以下語句返回的結(jié)果中name列也許會出現(xiàn) null 的情況,那么在name字段上使用什么函數(shù)可以將出現(xiàn)的 null 改為一個默認(rèn)值。

SELECT a.id,b.name FROM tab1 AS a LEFT JOIN tab2 AS b ON(a.id = p.id) WHERE a.id > 10;

復(fù)制

答案:

SELECT a.id,IFNULL(b.name,'未定義') FROM tab1 AS a LEFT JOIN tab2 AS b ON(a.id = p.id) WHERE a.id > 10;

復(fù)制

來看官方手冊的解釋:IFNULL(expr1,expr2) 。如果expr1不是NULL,IFNULL()返回expr1,否則它返回expr2。IFNULL()返回一個數(shù)字或字符串值,取決于它被使用的上下文環(huán)境。

不過經(jīng)我測試,是有問題的,當(dāng) expr1=0而不是null時。他也返回了expr2;官方手冊應(yīng)改為當(dāng)expr1為null或者0時,返回expr2。文章來源地址http://www.zghlxwxcb.cn/news/detail-510759.html

到了這里,關(guān)于php面試題及答案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 運維常用面試題及答案

    介紹一下你的運維經(jīng)驗和技能。 答案:在回答這個問題時,可以簡要概述你的運維經(jīng)驗和技能,包括你的工作經(jīng)歷、參與的項目、使用的工具和技術(shù)等。重點突出你在系統(tǒng)監(jiān)控、故障排除、自動化部署、容量規(guī)劃和安全性等方面的經(jīng)驗和技能。 你在日常工作中使用過哪些自

    2024年02月15日
    瀏覽(20)
  • 前端開發(fā)面試題及答案整理(合集)

    前端開發(fā)面試題及答案整理(合集)

    ? 前端開發(fā)面試題及答案 1、對Web標(biāo)準(zhǔn)以及W3C的理解與認(rèn)識? 答:標(biāo)簽閉合、標(biāo)簽小寫、不亂嵌套、提高搜索機器人搜索幾率、使用外鏈CSS和JS腳本、結(jié)構(gòu)行為表現(xiàn)的分離、文件下載與頁面速度更快、內(nèi)容能被更多的用戶所訪問、內(nèi)容能被更廣泛的設(shè)備所訪問、更少的代碼和組

    2024年02月17日
    瀏覽(21)
  • 常見的Webpack面試題及答案

    常見的Webpack面試題及答案

    Webpack是目前比較物流的前端構(gòu)建工具,它基于入口,用不同的Loader來處理不同的文件。我們來看一下常見的Webpack面試題及答案吧,希望對你有幫助。 Webpack的核心概念 Entry :入口,Webpack執(zhí)行構(gòu)建的第一步將從Entry開始,可抽象成輸入。告訴Webpack要使用哪個模塊作為構(gòu)建項目

    2024年01月16日
    瀏覽(22)
  • java面試題及答案(基礎(chǔ)篇)

    如今IT仍是熱門行業(yè),面試程序員的人也非常多,那么,怎樣才能順利通過面試呢?2021最新java面試題及答案(基礎(chǔ)篇),為你的面試助攻! 1、Java中的內(nèi)存溢出是如何造成的? OutOfMemoryError: (1)PerGern Space 程序中使用了大量jar或class,使Java虛擬機裝載類空間不夠。 解決方

    2024年02月12日
    瀏覽(24)
  • 28道Zookeeper面試題及答案

    28道Zookeeper面試題及答案

    JAVA面試寶典,搞定JAVA面試,不再是難題,系列文章傳送地址,請點擊本鏈接。 目錄 1、說說 Zookeeper 是什么? 2、ZooKeeper 有哪些應(yīng)用場景? 3、說說Zookeeper的工作原理? 4、請描述一下 Zookeeper 的通知機制是什么? 5、Zookeeper 對節(jié)點的 watch 監(jiān)聽通知是永久的嗎? 6、 Zookeeper 集

    2024年01月21日
    瀏覽(23)
  • 頭歌實踐教學(xué)平臺答案(消息隊列面試題及答案)

    頭歌實踐教學(xué)平臺消息隊列 面試題及答案,消息隊列?試題及答案。 1、為什么使用消息隊列? 消息隊列使用的場景和中間件有很多,但解決的核心問題主要是:異步、解耦、消峰填谷。 異步、解耦、消峰填谷這是消息隊列最大的優(yōu)點,除了這些消息隊列還可以會解決一些

    2024年02月11日
    瀏覽(22)
  • 2023最新前端高頻面試題及答案(輕松拿捏面試官)

    2023最新前端高頻面試題及答案(輕松拿捏面試官)

    廢話就不多說了直接上題 set和map的區(qū)別? ? ?set: ? ? (1)成員是不可以重復(fù)的 ? ??(2)只有鍵值沒有鍵名,類似數(shù)組 ? ? (3)可以遍歷,方法有add,delete,has ? map: ? ? (1)本質(zhì)上是鍵值對的集合,類似集合 ? ? (2)可以遍歷,可以跟各種數(shù)據(jù)格式轉(zhuǎn)換 for in,for of,

    2024年02月15日
    瀏覽(27)
  • 深信服 網(wǎng)絡(luò)相關(guān)面試題及部分答案

    直接開始 A: 在具備自協(xié)商能力的端口沒有Link的情況下,端口一直發(fā)送FLP,在FLP中包含著自己的連接能力信息,包括支持的速率能力、雙工能力、流控能力等。這個連接能力是從自協(xié)商能力寄存器中得到的(Auto-Negotiation Advertisement Register ,PHY標(biāo)準(zhǔn)寄存器地址4 )。依靠脈沖位

    2024年02月16日
    瀏覽(16)
  • 最全java面試題及答案(208道)

    最全java面試題及答案(208道)

    本文分為十九個模塊,分別是: 「Java 基礎(chǔ)、容器、多線程、反射、對象拷貝、Java Web 、異常、網(wǎng)絡(luò)、設(shè)計模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM」 ,如下圖所示: 共包含 208 道面試題,本文的宗旨是為讀者朋友們整

    2024年02月03日
    瀏覽(24)
  • 2023最全Java面試題及答案匯總

    面試前還是很有必要針對性的刷一些題,很多朋友的實戰(zhàn)能力很強,但是理論比較薄弱,面試前不做準(zhǔn)備是很吃虧的。這里整理了很多面試??嫉囊恍┟嬖囶},希望能幫助到你面試前的復(fù)習(xí)并且找到一個好的工作,也節(jié)省你在網(wǎng)上搜索資料的時間來學(xué)習(xí)。 面試官:為什么不建

    2024年02月08日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包