領導說PHP已經過時了, 讓我滾! !

領導說PHP已經過時了, 讓我滾! !

點選載入圖片

作為一名程式設計師,我們應該都聽過這樣一個梗:

PHP

程式語言,是世界上最好用的程式語言~~~但是今天領導讓我滾,我不服氣寫下了這篇PHP入門基礎吊打領導。

PHP介紹

PHP又名超文字預處理器,是一種通用開源指令碼語言。PHP主要適用於Web開發領域,語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛。其獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的程式語言相比,PHP是將程式嵌入到HTML文件中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和最佳化程式碼執行,使程式碼執行更快。

瞭解了PHP的基本概念後,下面分享PHP的基礎知識,希望對PHP學習有所幫助~

一、PHP網頁基礎

一、靜態網站&動態網站

靜態網站:(純HTML頁面,頁面固定,不會變化),沒有與後臺伺服器的互動,沒有資料庫的支援。

動態網站:(可以根據互動情況動態顯示不同內容),需要與後臺伺服器進行資料互動,需要資料庫的支援。

二、支援動態網站的語言

Java—JSP

PHP——PHP

asp——asp

三、常見的伺服器

Apache:Apache公司旗下伺服器,用於解析PHP類網站

Tomcat:Apache公司旗下的另一款伺服器,用於解析JSP類的網站;

四、常見的資料庫

mysql,Access,Oracle,SQLServer……

我們PHP一般匹配MySQL使用。當然,PHP可以連線幾乎所有的主流資料庫。

五、B/S C/S

B/S:瀏覽器/伺服器結構。使用者只需要透過瀏覽器即可訪問的網站。大部分操作功能集中在後臺伺服器。

C/S:客戶端/伺服器結構。使用者需要安裝客戶端使用的程式。客戶端可以分擔一定的操作功能。

六、常見的開發PHP整合環境

安裝一個軟體,內建多種開發需要的軟體或語言環境

Wamp:windows+Apache+mysql+PHP

Lamp:Linux+Apache+mysql+PHP

PHPStudy:

APPServer:

注:PHP開發首選Linux系統,但是PHP能夠友好的相容各種作業系統。

(Windows, Linux, Unix, MacOS……)

二、PHP入門基礎

PHP中“+“只有運算功能,沒有連線功能。連線功能用”。”連線。

一PHP標記的種類

PHP檔案中,如果要使用PHP語法,必須要將php語言放到標記當中。PHP支援如下四種標記方式:

這是PHP官方推薦的寫法,也是我們主要採用的寫法!這種標籤可以插入到HTML文件的任意位置;

注:如果頁面中,只有PHP語言,推薦省略結束表示’?>’。

原因:如果包含結束符號,在匯入PHP檔案時,可能會將檔案最後的多餘換行匯入進來。

長標記寫法。這種寫法,總是可以使用,但是我們不推薦。

③ ?>

短標記風格。預設不開啟,需要修改php。ini檔案中“short_open_tag = On”開啟。

但是,由於和XML中的標記衝突,不推薦使用。

ASA風格。預設不開啟,需要修改php。ini檔案中“asp_tags = On”開啟。但是,由於和ASP,JSP中的標記衝突,不推薦使用。

二、PHP中的指令分隔符

1、PHP中的“結構定義語句”(分支,迴圈,類,函式等{}結尾),不需要使用分號結尾。

2、PHP中的“功能執行語句”,不用{}結尾的,必須使用分號結尾。

3、特例:最後結束標籤?>前的最後一條語句,可以省略分號。

三、PHP中的變數

1、PHP中的變數,宣告與使用,必須用開頭。 2、PHP是一種弱型別語言,變數其實並不需要宣告,可以直接給變數賦任何型別的 3、PHP中可以使用連等同時宣告多個變數,而不能使用逗號分隔;eg:開頭。2、PHP是一種弱型別語言,變數其實並不需要宣告,可以直接給變數賦任何型別的3、PHP中可以使用連等同時宣告多個變數,而不能使用逗號分隔;eg:num1 = $num2 = num3 = 5; 4、常用變數函式: unset;刪除並釋放變數; isset;檢驗變數是否設定; empty;檢驗變數是否為空(未設定或值為null都算空); 5、變數的命名:只能由數字,字母,下劃線組成,開頭不能是數字。而且,PHP中變數區分大小寫!num3=5;4、常用變數函式:unset;刪除並釋放變數;isset;檢驗變數是否設定;empty;檢驗變數是否為空(未設定或值為null都算空);5、變數的命名:只能由數字,字母,下劃線組成,開頭不能是數字。而且,PHP中變數區分大小寫!name $Name $NAME 都是不同變數!但是,PHP內建函式或類名不區分大小寫!echo EcHo 都是有效的!

6、PHP中的資料型別(8種)

4種標量型別:

布林型

Boolean

整型

Integer

浮點型

Float/Double

字串

String

2種複合型別:

陣列

Array

物件

Object

2種特殊型別:

資源

Resource

null

7、整型的範圍:-231~(231-1),超過這個範圍,自動轉為浮點型

四、PHP中算false的情況

1、Boolan false

2、整形 0

3、浮點型 0。0

4、字串“” “0” (“0。0” “000” 都算對!只有一個0算錯!)

5、空陣列

6、空物件 僅在PHP4算false。其他版本,物件都算true。

7、null和尚未定義的變數;

8、所有資源都算對!(除PHP4,所有物件都算對!!!)

五、PHP中字串的宣告

PHP支援三種方式宣告字串:

1、’’:

2、“”:

3、<<

$str = <<

//定界符宣告字串,透過<<

//遇到頂格的定界識別符號結束!!一個空格都不能有!!

//定界識別符號可以是任意字母,只需要保證開始和結束一致即可!

s;(頂格的定界識別符號)

4、三種宣告方式的區別:

①定界符功能,預設與雙引號相同。(但是定界符中可以放雙引號)

②單引號中,不能解析變數,而雙引號、定界符都可以解析變數。

注:雙引號解析變數時,需注意變數名後需用“hahaha{KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 4: num}̲hahaha” “hahaha{num}hahaha”均可!

③單引號中可以放雙引號,雙引號中可以放單引號。但是不能放自身相同型別的引號。

④單引號中不能使用跳脫字元(除了單引號’‘本身,轉義符\本身),雙引號中可以使用跳脫字元。

六、PHP中的偽型別

偽型別:並不是一種真實存在的資料型別。它的存在,僅僅是告訴程式設計師可以是哪種,哪些資料型別,常用於撰寫幫助文件時使用。

mixed:代表引數可以是多種不同資料型別。

Number:代表引數可以是Integer或者Float。

callback:代表引數可以是一個回撥函式。

七、PHP中的資料型別轉換

1、自動型別轉換:表示運算的時候,Boolean,Null,String等型別,會先自動轉為Integer或Float型別

null–>0

true–>1

false–>0

String轉非數值字元前的數字,

沒有的話轉為0 “123a”–>123 “a123”–>0

2、強制型別轉換:根據我們的需要,強制將變數轉為其他型別的變數。

新變數 = (新型別)新變數=(新型別)原變數; $str = (String)1;

//新型別,可以使用全拼,也可以使用縮寫。Integer/int Boolean/bool都行。

可以強制轉換的型別如下:

①使用宣告新型別強轉:

(int),(integer)

轉換成整型

(bool),(boolean)

轉換成布林型

(float),(double),(real)

轉換成浮點型

(string)

轉換成字串

(array)

轉換成陣列

(object)

轉換成物件

②使用setType;函式強轉:

bool setType(mixed var,String type);第一個引數表示任何型別的變數,第二個引數表示字串型別的資料型別,返回Boolean結果。

③兩種轉換的區別:

第①種:是將轉換之後的結果,賦給新變數;

第②種:直接修改了原變數的資料型別。

八、PHP中判斷型別

is_bool

判斷是否是布林型

is_int、is_integer和is_long

判斷是否為整型。

is_float、is_double和is_real

判斷是否為浮點型

is_string

判斷是否為字串

is_array

判斷是否為陣列

is_object

判斷是否為物件

is_resource

判斷是否為資源型別

is_null

判斷是否為null

is_scalar

判斷是否為標量

is_numeric

判斷是否是任何型別的數字和數字字串

is_callable

判斷是否是有效的函式名

九、PHP中的輸出語句

echo “……”

輸出變數的值

var_dump(num)

輸出變數的資料型別&值[&一些其他資訊]

print_r(arr)

專門用於列印陣列

//單行註釋/*

* 多行註釋

*//**

* 文件註釋

*/

三、指令碼註釋

#echo“①形式”;

十、PHP中的常量

1、常量的定義:bool define(String 常量名,mixed 常量值[,bool 是否區分大小寫]);2、常量的注意事項:

①常量定義,只能使用define函式;

②常量名,原則上要求必須使用大寫宣告。而且必須不能帶符號(符號(只能是變數);

③常量宣告以後,預設全域性範圍有效。沒有作用域之說。

④常量不但不能改,而且不能刪!unset,setType等函式均無效

⑤常量預設區分大小寫!!!但是,可以在宣告常量時,將define第三個引數設為true,即可改為不區分大小寫。

⑥常量必須使用define定義後才能使用。如果使用未宣告常量,則預設轉為常量字串。但是,會有警告。

var_dump(NUM);–>String “NUM”

⑦常量的值只能是標量Boolean String Float Integer

3、可以使用echo constant(“NUM”);讀取常量值!注意!!!

可以使用get_defined_constants,獲取所有已定義的常量!!包括系統自定義的N多個常量。

我是一名滲透測試工程師,為了感謝讀者們,我想把我收藏的一些網路安全/滲透測試學習乾貨貢獻給大家,回饋每一個讀者,希望能幫到你們。

乾貨主要有:

①2000多本網安必看電子書(主流和經典的書籍應該都有了)

②PHP標準庫資料(最全中文版)

③網路安全基礎入門、Linux運維,web安全、滲透測試方面的影片(適合小白學習)

④ 網路安全學習路線圖(告別不入流的學習)

⑤ 滲透測試工具大全

⑥ 2021網路安全/Web安全/滲透測試工程師面試手冊大全

相關文章