1. 程式人生 > >面試過程中遇到的問題 PHP

面試過程中遇到的問題 PHP

規劃方面

獲取節點的幾種方式

通過ID獲取(getElementById)

通過name屬性(getElementsByName)

通過標籤名(getElementsByTagName)

通過類名(getElementsByClassName)

獲取html的方法(document.documentElement)

獲取body的方法(document.body)

通過選擇器獲取一個元素(querySelector)

通過選擇器獲取一組元素(querySelectorAll)

事務的特性

一致性、原子性、隔離性、永續性

Ajax五個狀態

 0 - (未初始化)還沒有呼叫send()方法

 1 - (載入)已呼叫send()方法,正在傳送請求

 2 - (載入完成)send()方法執行完成,已經接收到全部響應內容

 3 - (互動)正在解析響應內容

 4 - (完成)響應內容解析完成,可以在客戶端呼叫了

單例

Class single{

    Private static $instance =null;

    Private function  __construct(){}

    Private function  __clone(){}

    Public function getinstance(){

        If(!isset(self::instance)){

            Self::$instance=new self();

        }

        Return $instance;

    }

}

優化資料庫方式:

選取合適的欄位屬性、

使用連線代替子查詢、事務、使用聯合代替手動建立的臨時表、鎖定表、使用外來鍵、使用索引、優化查詢語句

儘可能的使用not null

使用ENUM列舉,而不是varchar(性別,民族,部門等)

如何查下看最後插入的記錄:

1、如果有自增欄位id檢視最大id

2、mysql_insert_id()

  3、Mysql_last_insert();

  4、Information_schema

Print\print_r\echo\var_dump區別:

Print 是列印字串

Print_r  則是列印複合型別 如陣列 物件

Var_dump

Echo 沒有返回值

Include\require區別

Require:

一個檔案存在錯誤時,執行就會中斷。並返回一個致命錯誤

include

一個檔案存在錯誤,程式不會中斷執行。會彈出一個警告

Echo 其他進位制數值時,自動轉換為十進位制

頁面跳轉:header(location:’www.baidu.com’)

檢視一個檔案下的所有檔案

Array Glob(pattern,flag)//glob(‘*.*’)匹配所有檔案

1、Foreach(glob(‘*.*’) as $filename){

Echo “filename is ”.$filename;

}

2、if($handle=opendir(‘./’)){

Echo “files:\n”;

While(($file=readdir($handle))!==false){

Echo “$file \n”;

}

Closedir($handle)

}

3、$d=dir(“./”);

Echo ”handle:”.$d->handle.”<br>”;

Echo “path:”.$d->path.”<br>”;

While(($file=$d->read())!==false){

Echo “filename:”.$file.”<br>”;

}

資料庫儲存,金額儲存型別?

decimal

如何通過月份篩選?

datediff(date1,date2)返回日期之間差

Date_format(date,format)

Having group by

SELECT ProductID, Total = SUM(LineTotal)

FROM Sales.SalesOrderDetail

GROUP BY ProductID

HAVING SUM(LineTotal) > $2000000.00 ;

Nginx?

高併發

低記憶體消耗

高擴充套件性,跨平臺

高可靠

更快,響應更快

熱部署

最自由的BSD許可協議

索引型別:

普通索引、唯一索引、主鍵索引、組合索引、全文索引

Mysql資料型別?

TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT

FLOAT、DOUBLE

DATE、TIME、DATETIME、TIMESTAMP

CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM列舉、SET集合

協程?

程序,如何通訊?

管道(無名管道):速度慢,容量有限,只有父子程序能通訊

FIFO(命名管道):任何程序之間都能通訊,但速度慢

訊息佇列:容量受到系統限制,且第一次讀的時候,要考慮上次沒有讀完的資料

訊號量:不能傳遞複雜訊息,只能用來同步

共享記憶體:能夠很容易控制容量,速度快,但要保持同步,比如一個程序在寫的時候,另一個程序要注意讀寫的問題,相當於執行緒中的執行緒安全,當然,共享記憶體區同樣可以用作執行緒間通訊,不過沒這個必要,執行緒間本來就已經共享了同一程序內的一塊記憶體

程序,執行緒區別?

程序是資源分配的基本單位,他是程式執行時的一個例項。程式執行時系統就會建立一個程序,併為它分配資源,然後把該程序放入程序就緒佇列,程序排程器選中它的時候就會為它分配CPU時間,程式開始真正執行。

執行緒是程式執行時的最小單位,他是程序的一個執行流,是CPU排程和分派的進本單位,一個程序可以由很多執行緒組成,執行緒間共享程序的所有資源,每個執行緒都有自己的堆疊和區域性變數。執行緒由CPU獨立排程執行,在多CPU環境下就允許多個執行緒同時執行,同時多執行緒也可以實現併發操作,每個請求分配一個執行緒來處理。

快排?

是對氣泡排序的一種改進,以第一個值為參考值,通過“一次”排序將比其小的放到左面,打的放到右面,然後不斷迭代,直到排序完成。

 “一次排序”,兩個指標分別指向1,和,n-1,當發生一次事件,交換一下資料,事件在n/2的右面有比參考值小的數,或在左側有比參考值大的數

堆排?

完全二叉樹

事務原理?

Js中的protype?

prototype 屬性使您有能力向物件新增屬性和方法。

<script type="text/javascript">
function employee(name,job,born)
{
    this.name=name;
    this.job=job;
    this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);
employee.prototype.salary=null;
bill.salary=20000;
document.write(bill.salary);
</script>

儲存引擎,及區別?

MyISAM (misemu發音)是非事務的儲存引擎;適合用於頻繁查詢的應用;表鎖,不會出現死鎖;適合小資料,小併發

innodb是支援事務的儲存引擎;合於插入和更新操作比較多的應用;設計合理的話是行鎖(最大區別就在鎖的級別上);適合大資料,大併發。

MVVM設計模式?

MVC:模型-檢視-控制器model-view-controller

MVP:模型-檢視-表現層model-view-presenter

MVVM:模型-檢視-檢視模型model-view-viewmodel

WPFSilverlight?

ftpssh協議?

ftp檔案傳輸協議

ssh:secure shell安全外殼協議

http協議幾種狀態?

200請求成功

301永久重定向

403客戶端錯誤,沒有許可權

404 頁面不存在

500伺服器內部錯誤

遠端登入?

SecureCRTPortable,軟體,使用的是ssh協議,埠號22,主機名,伺服器IP

Cookiesession區別?

Cookie客戶端

Session伺服器端

幾個頁面之間傳值方式?

Cookie

Web worker

localStorage

sessionStorage

php當中魔術方法

__construct() 例項化類時自動呼叫。

__destruct() 類物件使用結束時自動呼叫。

__set() 在給未定義的屬性賦值的時候呼叫。

__get() 呼叫未定義的屬性時候呼叫。

__isset() 使用isset()或empty()函式時候會呼叫。

__unset() 使用unset()時候會呼叫。

__sleep() 使用serialize序列化時候呼叫。

__wakeup() 使用unserialize反序列化的時候呼叫。

__call() 呼叫一個不存在的方法的時候呼叫。

__callStatic()呼叫一個不存在的靜態方法是呼叫。

__toString() 把物件轉換成字串的時候會呼叫。比如 echo。

__invoke() 當嘗試把物件當方法呼叫時呼叫。

__set_state() 當使用var_export()函式時候呼叫。接受一個數組引數。

__clone() 當使用clone複製一個物件時候呼叫。、

Sql注入:

SQL注入攻擊是黑客對資料庫進行攻擊的常用手段之一。一部分程式設計師在編寫程式碼的時候,沒有對使用者輸入資料的合法性進行判斷,注入者可以在表單中輸入一段資料庫查詢程式碼並提交,程式將提交的資訊拼湊生成一個完整sql語句,伺服器被欺騙而執行該條惡意的SQL命令。注入者根據程式返回的結果,成功獲取一些敏感資料,甚至控制整個伺服器,這就是SQL注入。

Check 約束

CREATE TABLE Persons
(
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    CHECK (Id_P>0)
) 

怎麼使得元素大小包含padding和border?

box-sizing: border-box;

Display:hidden與visibility:hidden的區別?

Mysql中表連線的幾種方式及區別?

配置nginx的server?

什麼場景使用連結串列,什麼場景使用陣列?

  陣列應用場景:資料比較少;經常做的運算是按序號訪問資料元素;陣列更容易實現,任何高階語言都支援;構建的線性表較穩定

  連結串列應用場景:對線性表的長度或者規模難以估計;頻繁做插入刪除操作;構建動態性比較強的線性表

Php怎麼處理XML檔案,和json檔案?

簡述你常用的一些linux指令?

ls
cd
cat 
more less tail head wc
mkdir
touch
chmod
cp
rm
ps
grep
find
pwd
mv
df 檢視目錄使用情況
rmdir 刪除空目錄
basename 取檔名
whereis file 找出檔案file的位置
diff file1 file2 檔案不同處

防止sql注入的方法?

開啟錯誤除錯使用什麼函式?

<?php

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

mysql常用操作?

create databases 資料庫名稱 ;
show databases ;
show create databases 資料庫名稱 ;
alter database 資料庫名稱 default character set 編碼方式 collate 編碼方式_bin ;
drop database 資料庫名稱 ;
create table 表名 
{ 
 
    欄位名 1,資料型別[完整性約束條件], 
 
    欄位名 2,資料型別[完整性約束條件], 
 
    ... 
 
    欄位名 n,資料型別[完整性約束條件], 
 
}

show create table 表名 ; 
describe 表名 ; 
 
簡寫為 
 
desc 表名 ;

alter table 舊錶名 rename [to] 新表名 ;
alter table 表名 modify 欄位名 資料型別 ;
alter table grade modify id int(20) ;
alter table 表名 drop 欄位名 ;
alter table 表名 modify 欄位名1 資料型別 first|after 欄位名2
drop table 表名 ;
insert into 表名(欄位名1,欄位名2, ...) value(值1,值2, ...)
insert into 表名 set 欄位名1 = 值1 [,欄位名2 = 值2, ...]
update 表名  set 欄位名1 = 值1 [,欄位名2 = 值2, ...] [where 條件表示式]
delete from 表名 [where 條件表示式]
truncate [table] 表名
查詢語句....

smarty遍歷陣列?

//{literal}{/literal}原樣輸出
/*
{foreach $stu as $k=>$v}
{$k}:{$v}
{foreachelse}
{/foreach}

{if 條件}
{elseif 條件}
{else}
{/if}

{section name='自定義變數名' loop='被遍歷的陣列'}
{/section}
{section name=s loop=$stu}
{$stu[s]}
{/section}

{for $i=1 to 10 step=2}
{/for}

{while $i<10}
{/while}
*/

smarty常用函式?

$smarty = new Smarty();
$smarty->assign('key','value');
$smarty->display('a.html');
$smarty->cache_lifetime=5;//快取的生存時間
$smarty->caching=1;//開啟快取
$smarty->force_cache=TRUE;//強制更新快取
$_SESSION['a']='1';//{$smarty.session.a}
setcookie('a','1');//{$smarty.cookies.a}
define('a','1');//{$smarty.const.a}
//{$smarty.server.REMOTE_ADDR}
//{$smarty.now}
//{$smarty.version}版本號

//{$smarty.ldelim}左界定符

//{$smarty.rdelim}

python與php相比的優勢?

計算能力和大資料處理多執行緒等有很明顯的優勢,
有很多擴充套件庫

git常用操作?

Git add filename,將檔案新增到倉庫實際上是新增到暫存區,沒有提示證明新增成功
Git commit -m “提交說明”命令
git status 檢視倉庫當前狀態
git diff filename 檢視檔案修改了什麼內容
Git log 檢視所有提交日誌
 git reset —hard HEAD^
Git reflog 檢視命令歷史
git checkout — filename 在沒有提交到暫存區(未執行add)撤銷工作區的修改
git reset HEAD filename ,當執行了add,使用該命令撤銷暫存區的修改,重新放回到工作區
git rm filename 刪除檔案
ssh-keygen -t rsa -C “[email protected]” 命令建立SSH KEY
git remote add origin [email protected]:michaelliao/learngit.git 關聯遠端庫
git push origin master推送最新修改
git clone [email protected]:賬戶名/遠端庫名.git 進行克隆
git checkout -b dev 建立並切換到dev分支
Git merge dev命令將dev分支合併到當前分支上
git branch -d dev 刪除分支
Git pull 獲取最新提交
git branch 命令不僅僅能建立和刪除分支,如果不加任何引數,它會給出當前所有分支的清單:

今日頭條協議:https

介紹

自我介紹?

工作經驗?

為什麼離開?

python優勢?

平時有什麼愛好?

有沒有閱讀習慣?

相關推薦

面試過程遇到的問題 PHP

規劃方面 獲取節點的幾種方式 通過ID獲取(getElementById) 通過name屬性(getElementsByName) 通過標籤名(getElementsByTagName) 通過類名(getElementsByClassName) 獲取html的

編程面試過程常見的10大算法

form sys value 想法 uic 排列組合 oba search 說明 1. 字符串 如果IDE沒有代碼自動補全功能,所以你應該記住下面的這些方法。 toCharArray() // 獲得字符串對應的char數組 Arrays.sort() // 數組排序 Ar

第一篇博客--記面陌陌科技計算機視覺算法工程師被刷經歷(附面試過程被問倒的一些算法題分析)

java mea elf 網上 時間復雜度 擬合 長度 計算機 如何實現 求職季,真的會讓一個人變得有些不一樣吧,比如我,對於一個菜鳥來說,最近一段時間焦慮不安外加有點自閉... 前段時間在校內網上看到了陌陌科技內推計算機視覺算法工程師和機器學習算法工程師的消息,抱著試試的

測試面試過程的要注意的問題

最近在面試中遇到了很多困惑和無奈,筆者總結了幾條,與諸君分享。順便也談談筆者對面試的一些淺解。 困惑一:簡歷與實際脫節。這個問題現在挺普遍,很多人把簡歷寫的天花亂墜,而實際可能並不具備。前幾天筆者面試了一個小夥伴,他在簡歷裡寫精通python和資料庫,於是筆者就問怎樣把一個字串倒序打印出來,其實的答案

面試過程遇到的智力題

1、滴滴三面真題 考慮一個雙人遊戲。遊戲在一個圓桌上進行。每個遊戲者都有足夠多的硬幣。他們需要在桌子上輪流放置硬幣,每次必需且只能放置一枚硬幣,要求硬幣完全置於桌面內(不能有一部分懸在桌子外面),並且不能與原來放過的硬幣重疊。誰沒有地方放置新的硬幣,誰就輸了。遊戲的先行者如何保證自己必勝? &n

#Java乾貨分享:面試過程經常碰到的9大難題解析

第一,談談final, finally, finalize的區別。 final?修飾符(關鍵字)如果一個類被宣告為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被宣告為 abstract的,又被宣告為final的。將變數或方法宣告為final,可以保證它們在使用中

面試過程的排列組合和趣味性題目二

面試過程中的排列組合和趣味性題目 感想 problem 31 problem 32 learning problem 33 problem 34 problem 35

面試過程的排列組合和趣味性題目一

面試過程中的排列組合和趣味性題目 感想 problem 1 problem 2 problem 3 problem 4 problem 5 problem 6 problem 7 problem

面試過程如何介紹自己?最大優缺點?加班?薪資?

1、請你自我介紹一下你自己? 回答提示:一般人回答這個問題過於平常,只說姓名、年齡、愛好、工作經驗,這些在簡歷上都有。其實,企業最希望知道的是求職者能否勝任工作,包括:最強的技能、最深入研究的知識領域、個性中最積極的部分、做過的最成功的事,主要的成就等,這些都可以和學習無關,也可以和學習有關,但要突

面試過程千萬不要犯這 5 點低階錯誤

最近你面了幾家公司了?都拿到多少offer了?如果你還沒有拿到心儀的offer的話,想想自己是不是在面試中犯了錯誤,踩中面試官雷區了。 姑且不說面試遲到、儀容問題、簡歷作假等所有人都能想到的理由,以下這5點也可能會讓你失去機會。 1、差勁的握手 一見到面試官,你上前

軟體測試面試過程常見的問題-論登入功能用例設計

測試用例設計:考察測試人員在用例設計方面考慮是否全面,以及對測試需求的分析能力; 最常被問到的,現在軟體有一個登入模組,有使用者名稱和密碼,以及登入按鈕,請你來設計測試用例; 首先說一下我的經歷: 目前參加了5場面試,沒有收到一個offer, 幾乎每一場面試都會

區塊鏈面試過程的40個問題

區塊鏈找工作面試招聘過程中可能的問題,但當面經肯定還不夠,算做一類面試題吧。 1. 問:你認為區塊鏈技術中的區塊意味著什麼?區塊鏈由所有金融交易的資訊組成。一個塊只不過是一個記錄列表。當這些列表相互結合時,它們被稱為區塊鏈。例如,一個組織有100個分類賬簿,其中的組合被稱為區塊鏈,單個分類賬將被視為一個區塊。

面試過程面試官可能會問到的問題

面試過程中,面試官會嚮應聘者發問,而應聘者的回答將成為面試官考慮是否接受他的重要依據。對應聘者而言,瞭解這些問題背後的“貓膩”至關重要。本文對面試中經常出現的一些典型問題進行了整理,並給出相應的回答思路和參考答案。讀者無需過分關注分析的細節,關鍵是要從這些分析中

面試過程SpringMVC常常被問到的有哪些知識點?

點選上方藍字關注的都是靚仔和仙女 1:講下SpringMvc和Struts1,Struts2的比較的優勢  效能上Struts1>SpringMvc>Struts2 開發速度上SpringMvc和Struts2差不多,比Struts1要高 2:講下SpringMvc的核心入口類是什麼,S

Linux下安裝過程編譯PHP時報錯:configure: error: libjpeg.(a|so) not found

在Linux下安裝PHP過程中,編譯時出現configure: error: libjpeg.(a|so) not found 錯誤的解決辦法   檢查之後發現已經安裝了libjpeg [[email protected] php-5.2.14]# yum lis

Oracle面試過程常見的二十個問題

1.冷備份和熱備份的不同點以及各自的優點  解答:熱備份針對歸檔模式的資料庫,在資料庫仍舊處於工作狀態時進行備份。而冷備份指在資料庫關閉後,進行備份,適用於所有模式的資料庫。熱備份的優點在於當備份時,資料庫仍舊可以被使用並且可以將資料庫恢復到任意一個時間點。冷備份的優點在

Selenium TestNG Java環境搭建過程問題匯總

fin method 搭建過程 onf 9.png 未在 can ann ogr 【問題一】運行時報Unalbe to connect to host 127.0.0.1 on port 7855 【問題分析】Selenium版本與火狐版本不一致,需要下載對應的版本 【

PHP 接入(第三方登錄)QQ 登錄 OAuth2.0 過程遇到的坑

體驗 獲取 get ref 通過 個人開發 ima 創建 key 前言 絕大多數網站都集成了第三方登錄,降低了註冊門檻,增強了用戶體驗。最近看了看 QQ 互聯上 QQ 登錄的接口文檔。接入 QQ 登錄的一般流程呢,是這樣的:先申請開發者 -> 然後創建應用(拿到一組

微信紅包店小程序開發過程遇到的問題 php獲取附近周邊商家 顯示最近商家

企業 使用 發出 微信紅包 status 不用 發放 經緯 appid 最近公司在做一個項目就是微信紅包店。仿照的是微信官方在做的那個紅包店的模式。客戶搶紅包,搶到以後到店消費,消費以後就可以拿到商家的紅包了。 項目中的兩個難點: 1通過小程序來發紅包 這個之前在

PHP老小白---跨部門對接需求過程的總結

場景描述:       近期我被安排幫助樓上的同事開發一個後臺系統和一個前臺系統,後臺系統放到他們已有的系統上就行,算是一個模組; 而前臺系統,是一個新的獨立的系統. 我平時都是組長讓我完成一個功能或者介面什麼的,我哪有做過這種表自己設計啊,系統系統自己搭建,然後全程瞭解所