0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式系統(tǒng)開發(fā)小白必懂的簡單知識(shí)點(diǎn)梳理

lhl545545 ? 來源:電子發(fā)燒友網(wǎng) ? 2018-01-29 16:57 ? 次閱讀

嵌入式系統(tǒng)開發(fā)小白必懂的簡單知識(shí)點(diǎn)

1. Include 與 require之前的區(qū)別,require與require_once的效率哪個(gè)高?

PHP在遇到include時(shí)就解釋一次,如果頁面中出現(xiàn)10次include,php就解釋10次,而php遇到require時(shí)只解釋一次,即使頁面出現(xiàn)多次require也只解釋一次,因此require的執(zhí)行表率比include高。

Php使用require包含文件時(shí)將被包含的文件當(dāng)成當(dāng)前文件的一個(gè)組成部分,如果被包含的文件中有語法錯(cuò)誤或者被包含的文件不存在,則php腳本將不再執(zhí)行,并提示錯(cuò)誤。

Php使用include包含文件時(shí)相當(dāng)于指定了這個(gè)文件的路徑,當(dāng)被包含的文件有語法錯(cuò)誤或者被包含的文件不存在時(shí)給出警告,不影響本身腳本的運(yùn)行。

Include在包含文件時(shí)可以判斷文件是否包含,而require則不管任何情況都包含進(jìn)來。

Require的效率比require_once的效率更高,因?yàn)閞equire_once在包含文件時(shí)要進(jìn)行判斷文件是否已經(jīng)被包含。

2. Cookie和session的區(qū)別,禁止了cookie后session能正常使用嗎?session的缺點(diǎn)是什么?session在服務(wù)器端是存在哪里的?是共有的還是私有的?

COOKIE保存在客戶端,用戶通過手段可以進(jìn)行修改,不安全,單個(gè)cookie允許的最大值是3k。而SESSION保存在服務(wù)器端,相對(duì)比較安全,大小沒有限制。禁用了cookie之session不能正常使用。

Session的缺點(diǎn):保存在服務(wù)器端,每次讀取都從服務(wù)器進(jìn)行讀取,對(duì)服務(wù)器有資源消耗。

Session保存在服務(wù)器端的文件或數(shù)據(jù)庫中,默認(rèn)保存在文件中,文件路徑由php配置文件的session.save_path指定。

Session文件是公有的。

3. 怎么防止sql注入?

1、過濾掉一些常見的數(shù)據(jù)庫操作關(guān)鍵字:select,insert,update,delete,and,*等

或者通過系統(tǒng)函數(shù):addslashes(需要被過濾的內(nèi)容)來進(jìn)行過濾。

2、在PHP配置文件中

Register_globals=off;設(shè)置為關(guān)閉狀態(tài) //作用將注冊全局變量關(guān)閉。

比如:接收POST表單的值使用$_POST[‘user’],如果將register_globals=on;直接使用$user可以接收表單的值。

3、SQL語句書寫的時(shí)候盡量不要省略小引號(hào)(tab鍵上面那個(gè))和單引號(hào)

4、提高數(shù)據(jù)庫命名技巧,對(duì)于一些重要的字段根據(jù)程序的特點(diǎn)命名,取不易被猜到的

5、對(duì)于常用的方法加以封裝,避免直接暴漏SQL語句

6、開啟PHP安全模式

Safe_mode=on;

7、打開magic_quotes_gpc來防止SQL注入

Magic_quotes_gpc=off;默認(rèn)是關(guān)閉的,它打開后將自動(dòng)把用戶提交的sql語句的查詢進(jìn)行轉(zhuǎn)換,把‘轉(zhuǎn)為’,這對(duì)防止sql注入有重大作用。

因此開啟:magic_quotes_gpc=on;

8、控制錯(cuò)誤信息

關(guān)閉錯(cuò)誤提示信息,將錯(cuò)誤信息寫到系統(tǒng)日志。

9、使用mysqli或pdo預(yù)處理。

4. 數(shù)據(jù)庫索引有幾類,分別是什么?什么時(shí)候該用索引

普通索引、主鍵索引、唯一索引

并非所有的數(shù)據(jù)庫都以相同的方式使用索引,作為通用規(guī)則,只有當(dāng)經(jīng)常查詢列中的數(shù)據(jù)時(shí)才需要在表上創(chuàng)建索引。

5. 引用傳值和非引用傳值的區(qū)別,什么時(shí)候該用引用傳值?什么時(shí)候該用非引用傳值?

按值傳遞:函數(shù)范圍內(nèi)對(duì)值的改變在函數(shù)外都會(huì)被忽略。

按引用傳遞:函數(shù)范圍內(nèi)對(duì)值的任何改變在函數(shù)外也將反應(yīng)出這些修改。

按值傳遞時(shí),php必須復(fù)制值,如果操作的是大型的對(duì)象和字符串,這將是一個(gè)代價(jià)很大的操作。按引用傳遞不需要復(fù)制值,因此對(duì)性能的提高有好處。

當(dāng)需要在函數(shù)內(nèi)改變源變量的值時(shí)用引用傳遞,如果不想改變原變量的值用傳值。

6. 寫幾個(gè)魔術(shù)方法并說明作用?

__call()當(dāng)調(diào)用不存在的方法時(shí)會(huì)自動(dòng)調(diào)用的方法

__autoload()在實(shí)例化一個(gè)尚未被定義的類是會(huì)自動(dòng)調(diào)用次方法來加載類文件

__set()當(dāng)給未定義的變量賦值時(shí)會(huì)自動(dòng)調(diào)用的方法

__get()當(dāng)獲取未定義變量的值時(shí)會(huì)自動(dòng)調(diào)用的方法

__construct()構(gòu)造方法,實(shí)例化類時(shí)自動(dòng)調(diào)用的方法

__destroy()銷毀對(duì)象時(shí)自動(dòng)調(diào)用的方法

__unset()當(dāng)對(duì)一個(gè)未定義變量調(diào)用unset()時(shí)自動(dòng)調(diào)用的方法

__isset()當(dāng)對(duì)一個(gè)未定義變量調(diào)用isset()方法時(shí)自動(dòng)調(diào)用的方法

__clone()克隆一個(gè)對(duì)象

__tostring()當(dāng)輸出一個(gè)對(duì)象時(shí)自動(dòng)調(diào)用的方法

7. $_REQUEST、$_POST、$_GET、$_COOKIE、$_SESSION、$_FILE的意思是什么?

它們都是PHP預(yù)定義變量。

$_REQUEST用來獲取post或get方式提交的值

$_POST用來獲取post方式提交的值

$_GET用來獲取get方式提交的值

$_COOKIE用來獲取cookie存儲(chǔ)的值

$_SESSION用來獲取session存儲(chǔ)的值

$_FILE用來獲取上傳文件表單的值

8. 數(shù)組中下標(biāo)最好是什么類型的,為什么?

數(shù)組的下標(biāo)最好是數(shù)字類型的,數(shù)字類型的處理速度快。

9. ++i和i++哪一個(gè)效率高,為什么?

++i效率比i++的效率更高,因?yàn)?+i少了一個(gè)返回i的過程。

10.magic_quotes_gpc()、magic_quotes_runtime()的意思是什么?

Magic_quotes_gpc()是php配置文件中的,如果設(shè)置為on則會(huì)自動(dòng)POST,GET,COOKIE中的字符串進(jìn)行轉(zhuǎn)義,在‘之前加

Magic_quotes_runtime()是php中的函數(shù),如果參數(shù)為true則會(huì)數(shù)據(jù)庫中取出來的單引號(hào)、雙引號(hào)、反斜線自動(dòng)加上反斜杠進(jìn)行轉(zhuǎn)義。

11.Echo()、print()、print_r()的區(qū)別?

Echo() 是PHP語法,可以輸出多個(gè)值,不能輸出數(shù)組。

Print() 是php的語言結(jié)構(gòu),可以輸出單個(gè)簡單類型的變量值。

Print_r() 是php函數(shù),可以打印出復(fù)雜類型變量的值,如數(shù)組,對(duì)象。

12.談?wù)勀銓?duì)Mvc的認(rèn)識(shí)

MVC是一種設(shè)計(jì)模式,強(qiáng)制使輸入、處理、輸出分開,MVC的三個(gè)核心部分:M模型,V視圖,C控制器。

視圖就是用戶看到并與之交互的界面。

模型就是程序的數(shù)據(jù)業(yè)務(wù)規(guī)則。

控制器接收用戶的數(shù)組調(diào)用模型和視圖去完成用戶需求。

使用MVC的優(yōu)點(diǎn):低耦合、高重用性、較低的生命周期成本、快速開發(fā)部署、可維護(hù)性、可擴(kuò)展性,有利于軟件工程化管理。

MVC的缺點(diǎn):沒有明確的定義,完全理解并不容易。小型項(xiàng)目不適合用MVC。

13.框架中什么是單一入口和多入口,單一入口的優(yōu)缺點(diǎn)

多入口就是通過訪問不同的文件來完成用戶請(qǐng)求。

單一入口只web程序所有的請(qǐng)求都指向一個(gè)腳本文件的。

單一入口更容易控制權(quán)限,方便對(duì)http請(qǐng)求可以進(jìn)行安全性檢查。

缺點(diǎn):URL看起來不那么美觀,特別是對(duì)搜索引擎來說不友好。

14.打印一個(gè)用‘?!溄拥淖址畷r(shí)候,還可以用什么代替‘?!溄有矢咝??

可以用,代替。效率更高。

15.提示類型200、404、502是什么意思?

200是請(qǐng)求成功,404是文件未找到,502是服務(wù)器內(nèi)部錯(cuò)誤。

16.編寫一個(gè)自定義函數(shù)提取這段路徑的的后綴名。

“Www/hello/test.php.html?a=3&b=4”

Function geturltype($url){

$info=parse_url($url);

Return end(explode(’。‘,$info[’path‘]));

}

17.你對(duì)Memcach的理解,優(yōu)點(diǎn)有哪些?

Memcache是一種緩存技術(shù),在一定的時(shí)間內(nèi)將動(dòng)態(tài)網(wǎng)頁經(jīng)過解析之后保存到文件,下次訪問時(shí)動(dòng)態(tài)網(wǎng)頁就直接調(diào)用這個(gè)文件,而不必在重新訪問數(shù)據(jù)庫。使用memcache做緩存的好處是:提高網(wǎng)站的訪問速度,減輕高并發(fā)時(shí)服務(wù)器的壓力。

Memcache的優(yōu)點(diǎn):穩(wěn)定、配置簡單、多機(jī)分布式存儲(chǔ)、速度快。

總之,這些知識(shí)的學(xué)習(xí)不是一蹴而就的,過程會(huì)很漫長,也沒有什么特別的技巧。需要去看大量的技術(shù)文檔和源碼,而這些文檔大部分又都是英文的。在工作和做具體項(xiàng)目的過程中會(huì)學(xué)習(xí)的比較快,理論結(jié)合實(shí)踐才是王道。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式C語言知識(shí)點(diǎn)總結(jié)

    怎么才能做好嵌入式開發(fā)?學(xué)好C語言吧!今天就來推薦一篇大佬寫的嵌入式C語言知識(shí)點(diǎn)總結(jié)。
    發(fā)表于 09-27 09:53 ?1177次閱讀

    嵌入式開發(fā)教程之程序設(shè)計(jì)與開發(fā)維護(hù)

      干貨來了,本文創(chuàng)客學(xué)院嵌入式linux培訓(xùn)講師和學(xué)員分享嵌入式程序設(shè)計(jì)和系統(tǒng)開發(fā)與維護(hù)的相關(guān)知識(shí)點(diǎn)。希望對(duì)學(xué)習(xí)嵌入式開發(fā)的學(xué)員有所幫助。
    發(fā)表于 05-26 14:59

    嵌入式開發(fā)學(xué)習(xí)路線 零基礎(chǔ)入門嵌入式技術(shù)知識(shí)點(diǎn)

    熟悉下列相關(guān)的知識(shí)點(diǎn)?! ?b class='flag-5'>嵌入式開發(fā)學(xué)習(xí)路線 零基礎(chǔ)入門嵌入式技術(shù)知識(shí)點(diǎn):  1、嵌入式系統(tǒng)的定
    發(fā)表于 06-30 13:45

    基于Vxwoks OS的嵌入式系統(tǒng)開發(fā)

    如何跨入嵌入式系統(tǒng)開發(fā)BSP的移植Vxwoks的內(nèi)核機(jī)制中斷的處理應(yīng)用程序的開發(fā)Vxwoks的調(diào)試環(huán)境Q/A這些知識(shí)點(diǎn)你都是可以在里面看到的可以下載來學(xué)哦。
    發(fā)表于 05-08 11:07

    嵌入式軟件開發(fā)需要學(xué)習(xí)哪些知識(shí)點(diǎn)

    本來對(duì)于嵌入式開發(fā)的要求就比較高,學(xué)員選擇嵌入式軟件開發(fā)應(yīng)該也是深思熟慮的結(jié)果,那么在這里如果你在掌握了嵌入式軟件開發(fā)
    發(fā)表于 11-08 08:40

    嵌入式開發(fā)入門知識(shí)點(diǎn)大合集

    嵌入式開發(fā)八大入門知識(shí)點(diǎn)
    發(fā)表于 11-16 06:33

    嵌入式涉及的知識(shí)點(diǎn)有哪些

    嵌入式入門學(xué)習(xí)筆記1 二.嵌入式涉及的知識(shí)點(diǎn) 1.QT應(yīng)用的開發(fā) 2.系統(tǒng)驅(qū)動(dòng)的安裝,以及系統(tǒng)驅(qū)
    發(fā)表于 12-17 07:44

    嵌入式系統(tǒng)概述知識(shí)梳理

    嵌入式系統(tǒng)》 |(一)嵌入式系統(tǒng)概述 知識(shí)梳理嵌入式
    發(fā)表于 12-22 06:53

    嵌入式系統(tǒng)開發(fā)的基礎(chǔ)知識(shí)

    # 嵌入式系統(tǒng)開發(fā)的基礎(chǔ)知識(shí)(2)版權(quán)聲明:未經(jīng)博主允許,所有轉(zhuǎn)載皆算侵。 準(zhǔn)備結(jié)合“全國計(jì)算機(jī)等級(jí)考試三級(jí)嵌入式系統(tǒng)開發(fā)技術(shù)考試大綱”,將
    發(fā)表于 12-22 06:13

    嵌入式系統(tǒng)開發(fā)的基礎(chǔ)知識(shí)相關(guān)資料推薦

    # 嵌入式系統(tǒng)開發(fā)的基礎(chǔ)知識(shí)(1)版權(quán)聲明:未經(jīng)博主允許,所有轉(zhuǎn)載皆算侵。 準(zhǔn)備結(jié)合“全國計(jì)算機(jī)等級(jí)考試三級(jí)嵌入式系統(tǒng)開發(fā)技術(shù)考試大綱”,將
    發(fā)表于 12-22 06:30

    嵌入式知識(shí)點(diǎn)總結(jié)

    嵌入式知識(shí)點(diǎn)總結(jié)(arm嵌入式開發(fā)led過程)-嵌入式知識(shí)點(diǎn)總結(jié)? ? ? ? ? ? ? ? ? ??
    發(fā)表于 07-30 14:20 ?23次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>知識(shí)點(diǎn)</b>總結(jié)

    嵌入式】基于ARM的嵌入式Linux開發(fā)總結(jié)

    前言嵌入式知識(shí)點(diǎn)復(fù)習(xí)一嵌入式知識(shí)點(diǎn)復(fù)習(xí)二 --體系結(jié)構(gòu)嵌入式知識(shí)點(diǎn)復(fù)習(xí)三 --ARM-LINUX
    發(fā)表于 10-19 18:32 ?26次下載
    【<b class='flag-5'>嵌入式</b>】基于ARM的<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>開發(fā)</b>總結(jié)

    嵌入式知識(shí)點(diǎn)

    嵌入式知識(shí)點(diǎn)復(fù)習(xí)一1、 嵌入式系統(tǒng)的一般組成結(jié)構(gòu)2、嵌入式硬件系統(tǒng)的結(jié)構(gòu)(1)
    發(fā)表于 10-21 12:06 ?6次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>知識(shí)點(diǎn)</b>

    嵌入式C語言知識(shí)點(diǎn)總結(jié)

    導(dǎo)讀:怎么做好嵌入式?相信這個(gè)問題無論問誰你都會(huì)得到一句學(xué)好C語言!今天推薦一篇大佬寫的嵌入式C語言知識(shí)點(diǎn)總結(jié),非常值得一讀。
    的頭像 發(fā)表于 04-13 11:12 ?2715次閱讀

    嵌入式系統(tǒng)開發(fā)三大核心技術(shù)

    對(duì)于嵌入式系統(tǒng)開發(fā),我想我們只要接觸過嵌入式研發(fā)的人都是比較了解的,但是作為一個(gè)合格的嵌入式系統(tǒng)開發(fā)人員,你了解過
    的頭像 發(fā)表于 04-13 15:39 ?2650次閱讀