做為一名合格的前端開發攻城獅,了解一門服務端語言是必須的,所以我選了php。都說學的第一門語言對第二門語言會產生較大的影響,確實,每當我看到一個php知識點時,就同時會想到這個知識點在Javascript中有沒有,有什么不一樣?還有一些知識是共通的,這加快了我的php入門速度。為了加深自己的印象,我準備記錄一下學習php的過程,這個過程中將會穿插一些php與Javascript的異同點。我選的第一份教程是來自w3school,因為上面的教程比較基礎適合入門(當然慕課網的也不錯),我的html也是從那里起步的。
語法
跟js一樣,php也是一門腳本語言,但它運行在服務端,php語句必須以分號結尾,js就不用。相比js,php多了一種注釋方式#。php中只有變量對大小寫敏感。
變量
變量以$開頭,有人說程序員想錢想瘋了,到處都是美元符,$后面是變量名變量名必須以字母或下劃線開頭變量名只能包含數字、字母、下劃線補充:php中沒有變量聲明提升的概念,所有在使用變量或函數前必須先聲明。
跟js一樣,php也不需要定義變量的類型,php會自動轉成正確的數據類型。
常量
常量需要用define(a,b,c)來聲明,a是常量名,b是常量的值,c用來指定該常量是否對大小寫敏感。常量不可重復聲明,也就是說聲明后無法更改其值。常量不同于變量,常量是自動全局的,不管在函數內還是函數外定義,在函數內外都可以訪問,類似于超全局變量。超全局變量:在全部作用域中始終可用的內置變量。注:常量前面沒有錢($)。
作用域
local 局部 :函數內部聲明的變量,在函數外不可訪問(js閉包可以訪問函數內部變量),函數執行完后內存回收機制自動銷毀局部變量(js不會)。global 全局 :函數外聲明的變量,在函數內不可訪問(在js中稱為全局變量,當然可以在函數內訪問),如果要在函數內訪問,需要做處理:在函數內變量前加“global”,如global $name;static 靜態 :用在函數內聲明變量,跟local的區別是static聲明的變量在函數執行完后不會自動銷毀。輸出
echo:可輸出多個字符串,無返回值,比print稍快
print:只能輸出一個字符串,返回值總是1
數據類型
字符串 string整數int,就是非小數浮點數float,即小數或指數形式的數字邏輯 boolean,即true和false數組 array對象 objectNULL null,唯一值即null檢測數據類型的函數是var_dump(),數據類型與js有些許不一樣,php中數字分為了兩種,數組也單獨做為一種數據類型了。
字符串函數
檢測字符串長度的strlen(),長度以字符計,單個數字、英文、空格計一個字符,單個中文計3個字符。js里單個中文計長度1。
在字符串中檢測指定的字符用strpos()函數,相當于js的.indexOf()方法,找到就返回對應的位置,沒找到時strpos()返回false而indexOf返回-1。
運算符
比較多,就只說與js不同的吧。
.運算符在php中叫串接,相當于js中字符串+字符串中的+號的功能,.=也就相當于js字符串拼接時的+=;
比較運算符中有兩個不等于:!=和<>,不知道它們的區別在哪里?度娘和google也未搜到相關答案,有知道的同學還望告知不勝感激!另外還有一個完全不等于!==,值不相等,類型也不同。
邏輯運算符中有一個異或xor,運算符兩邊的值有且只有一個為true結果才為true。
if else/switch/while/for循環大致和js相同。
函數
php中的函數設置默認值直接在函數名后面的括號內設置,如設置$num的默認值為2:
function getNum($num=2){ return $num;}echo getNum(); // 2
數組
php中的關聯數組類似js中的json,如下面是一個關聯數組:
$arr = array("name"=>"wangmeijian","age"=>1024,"sex"=>"boy");
不同與js的是,php中不能直接echo出數組內容,js中可以用alert或console.info打印出來。
數組排序,php就比js豐富了,有正序sort(),倒序rsort(),按鍵正序ksort(),按鍵倒序krsort(),按值正序asort(),按值倒序arsotr()。
最后介紹幾個超全局變量:
$GLOBALS:可以通過$GLOBALS[變量名]讀取php腳本中任意全局變量,其實就相當于js的window。
$_SERVER:保存關于報頭、路徑和腳本位置的信息。
$_REQUEST:用來收集表單提交的數據,根據表單name值來讀取對應表單值,如$_REQUEST['age']讀取年齡。
$_POST:用來收集通過post方式提交的數據,通過name讀取對應值。
$_GET:用來收集通過get方式提交的數據,也可以收集url中發送的數據。
以上,都是入門級別的知識,加上了個人理解,請各位大中小牛勿噴。
PHP編程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答