接著上篇文章繼續,歡迎大家關注學習(PHP之父鎮樓)
61.PHP工作原理
一個網站運行時客戶端有無數個,服務器通常只有一個(負載均衡)開發環境的安裝2,PHP5.4,MYSQL5.3-------開源,可以跨平臺
配置文件:conf(Apache), php.ini my.ini
PHP文檔組成:HTML,css,js,jquery,PHP
PHP語法風格:xml風格,短風格,ASP風格(已過時),腳本風格
注意:位置任意,同一頁面可以出現多次,不能嵌套,裡面只能出現php代碼,需要轉字符串輸出
運行在服務器端
註釋:單行註釋,多行註釋
62數據類型:
標量類型:integer,Float,String,boolean
複合類型:Array,Object
特殊類型:Resource,Null
偽類型:mixed,number,callback(回調函數)
63.PHP中被認為是false的值:
0, 0.0, null, 空數組, 空字符串, false
64.求兩個日期的差數,例如2017-2-27 ~ 2018-05-6 的日期差數
65什麼是MVC?
回答:MVC由Model(模型), View(視圖)和Controller(控制器)組成,PHP MVC可以更高效地管理好3個不同層的PHP代碼。
Model:數據信息存取層。
View:view層負責將應用的數據以特定的方式展現在界面上。
Controller:通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。
66.PHP中獲取圖像尺寸大小的方法是什麼?
回答:getimagesize () 獲取圖片的尺寸
Imagesx () 獲取圖片的寬度
Imagesy () 獲取圖片的高度
67.如何在PHP中定義常量?
回答:PHP中使用Define () 來定義常量。
define (“Newconstant”, 30);
68.如何不使用submit按鈕來提交表單?
如果我們不想用submit按鈕來提交表單,我們也可以用超鏈接來提交,我們可以這樣寫代碼:
69.簡述論壇中無限分類的實現原理。
答:無限極分類,那麼應該是考察遞歸函數吧!
第一步:建立測試數據庫:
第二步:插入測試數據:
第三步:遞歸輸出分類:
70.試述isset()和empty()的區別
isset() 測試變量是否存在 empty() 測試變量是否為空
71.請用盡可能少的語句實現對輸入Email地址進行驗證的功能
eregi('^[_a-z0-9]+(/.[_a-z0-9-]+)*@[a-z0-9]+(/.[a-z0-9-]+)*$',$emailaddress)
72.使用PHP描述冒泡排序和快速排序算法,對象可以是一個數組
73、使用PHP描述順序查找和二分查找(也叫做折半查找)算法,順序查找必須考慮效率,對象可以是一個有序數組
74.寫一個二維數組排序算法函數,能夠具有通用性,可以調用php內置函數
75.utf-8轉換成gbk的函數是?
iconv("gbk",""UTF-8,"我們"); mb_convert_encoding($str, "GBK", "UTF-8")
76.Php中分割字符串成數組的函數和連接數組成字符串的函分別有哪些?
explode() split() ;implode() join()
77.說幾個你知道的設計模式?
單例模式: 保證一個類僅有一個實例,並提供一個訪問他的全局訪問點例如框架中的數據庫連接
簡單工廠模式: 它具有創建對象的某些方法,可以使用工廠類創建對象,而不直接使用 new。例如初始化數據庫的時候會用到,比如MySQL,MSSQL
策略模式: 針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,例如進入個人主頁時,根據瀏覽者的不同,給予不同的顯示與操作
註冊模式: 提供了在程序中有條理的存放並管理一組全局對象 (object),例如ZF框架中的Zend_Registry::set
適配器模式: 將不同接口適配成統一的API接口,例如數據操作有mysql、mysqli、pdo等,可利用適配器模式統一接口
觀察者模式: 一個對象通過添加一個方法使本身變得可觀察。當可觀察的對象更改時,它會將消息發送到已註冊的觀察者。例如實現實現消息推送
裝飾器模式: 不修改原類代碼和繼承的情況下動態擴展類的功能,例如框架的每個Controller文件會提供before和after方法
迭代器模式: 提供一個方法順序訪問一個聚合對象中各個元素,在PHP中將繼承 Iterator 類
原型模式: 實現了一個原型接口,該接口用於創建當前對象的克隆。當直接創建對象的代價比較大時,則採用這種模式。例如,一個對象需要在一個高代價的數據庫操作之後被創建。
78.echo,print(),print_r(),printf(),sprintf(),var_dump()有什麼區別?
echo :是語句不是函數,沒有返回值,可輸出多個變量值,不需要圓括號。不能輸出數組和對象,只能打印簡單類型(如int,string)
print :是語句不是函數,有返回值 1 ,只能輸出一個變量,不需要圓括號。不能輸出數組和對象,只能打印簡單類型(如int,string)。
print_r
:是函數,可以打印複合類型,例如:stirng、int、float、array、object等,輸出array時會用結構表示,而且可以通過print_r($str,true)來使print_r不輸出而返回print_r處理後的值
printf :是函數,把文字格式化以後輸出(參看C語言)
sprintf :是函數,跟printf相似,但不打印,而是返回格式化後的文字,其他的與printf一樣。
var_dump :函數,輸出變量的內容、類型或字符串的內容、類型、長度。常用來調試。
79.echo count(“abc”); 輸出什麼?
答案:1
80.寫個函數用來對二維數組排序。
答案:array_multisort() 。
更多面試題持續更新中~
閱讀更多 合一學社 的文章