【PHP】最詳細PHP從入門到精通(一)

轉載來自:https://www.cnblogs.com/liuyongqi/p/6885669.html

(一)PHP簡介和基本知識

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

首先,我們來了解一些關於PHP的一些基礎知識


【靜態網站與動態網站】
1、靜態網站:(純HTML頁面,頁面固定,不會變化),沒有與後臺服務器的交互,沒有數據庫的支持;
2、動態網站:(可以根據交互情況動態顯示不同的內容),需要與後臺服務器進行數據交互,需要數據庫的支持。

【支持動態網站的語言】
Java----->jsp
PHP----->php
asp----->asp

【常見服務器】
Apache:阿帕奇公司旗下服務器,用於解析PHP類網站;
Tomcat:阿帕奇公司旗下的另一款服務器,用於解析JS類網站;


【常見的數據庫】
MySQL、Access、Oracle、SQLServer……
我們PHP一般配合MySQL使用。當然PHP可以連接幾乎所有主流數據庫。

【B/S C/S】
B/S結構:(Browser/Server,瀏覽器/服務器模式)。用戶只需要通過瀏覽器即可訪問的網站,大部分操作功能集中在後臺服務器。
C/S結構:Client/Server結構是客戶端和服務器結構。用戶需要安裝客戶端。客戶端可以分擔一定的操作功能。

【常見的開發PHP集成環境】

  1. wamp:Windows+Apache+MySQL+php;
  2. lamp:linux+Apache+MySQL+php;
  3. PHPstudy:
  4. PHPserver:

PHP開發首選Linux系統,但是PHP能夠友好的兼容支持各種操作系統(Windows,Linux,macOs、Unix……);

PHP中的入門知識                                                                               
 

【PHP標記的種類】
PHP文件中,如果使用php語法,必須將PHP語言放到標記當中。PHP支持如下四種標記方式:
①<?php?>這是PHP的官方推薦寫法,也就是我們主要採用的寫法!這種標記可以插入到HTML文檔的任意位置;
>>>注!!!:如果頁面中只有PHP語言,推薦省略結束標記?>
原因:空格部分……
②<script language="php"></script>長標記寫法:總是可以使用,但是,我們不推薦。
③<??>短標記寫法。默認不開啓,需要修改php.ini文件中“short_open_tag=On”打開。但是,由於與HTML標籤衝突,不推薦使用。
④<% %>ASP風格,默認不開啓,需要修改php.ini文件的"asp-tag = On"打開,但是和ASP,JSP中的標記衝突,不推薦

【PHP中的指令分隔符;】
1、PHP中的"結構定義語句"(分支、循環、類、函數等帶{}的),不需要使用分號結尾。
2、PHP中的"功能執行語句",(不用{}結尾的),必須使用分號結尾。
3、特例:最後結束標籤?>前的最後一條語句,可以省略分號。


//單行註釋
/*
* 多行註釋
*/
/**
* 文檔註釋
*/

#腳本註釋

【PHP中的變量】
①PHP中的變量,聲明與使用,必須使用$開頭。
②PHP是一種弱類型語言,變量其實並不需要聲明,可以直接給變量賦任何類型的值;
③PHP中可以使用連等同時聲明多個變量。而不能使用逗號分隔。
eg:$num1=$num2=$num3=5;
④常用變量函數:
unset():刪除並釋放變量;
isset():檢測變量是否設置;
empty():檢測變量是否爲空(未設置或值爲Null都算空);
⑤變量的命名:只能有字母數字下劃線組成,開頭不能是數字。而且,PHP中變量區分大小寫!!
$name,$Nnme,$NAME都是不同變量;
但是,PHP的內置函數不區分大小寫!echo EcHo都是有效的。


【PHP中的變量類型】
①PHP支持8種數據類型:
    4種標量類型:布爾型Boolean 整形integer 浮點型float/double 字符串string
    2種複合類型:數組Array 對象Object
    2種特殊類型:資源Resource 空null。
②整形的範圍從-2^32~-2^32-1,超出這個範圍,自動轉爲浮點型。

 

【PHP中算false的情況!!!】
1、Boolean false
2、整形 0
3、浮點型0.0
4、字符串"" "0"("0.0" "0000"都算對)
5、空數組
6、空對象只在PHP4版本算false,其他版本都算true。
7、Null和尚未定義的變量
8、所有資源都算對!!(除PHP4,所有對象也算對)

 

【PHP中字符串的聲明】
PHP支持3種方式聲明字符串:
①'':如不需要解析變量,單引號執行效率更快(細微差別)
②"":習慣上比較常用
③<<<(定界符):$str=<<<s(定界標識符)
    //定界標識符聲明字符串,通過<<<(定界標識符)開始
    //遇到定界標識符結束!!!前面連一個空格都不能有!
    //定界標識符可以是任意字母,只需要保持開始和結束一致即可。
s;
④三種方式的區別:
    a:定界符功能默認與雙引號相同。定界符中可放雙引號。
    b:單引號中,不能解析變量。而雙引號、定界符都可以解析變量。
    注意:雙引號中解析變量時,變量名應使用空格分隔,推薦使用{}包起來。
    c:各引號中可互相套用,但是不能放與自身相同的引號。
    d:單引號中,不能使用轉義字符(但是除了'本身,轉義字符\本身),雙引號中,可以使用轉義字符。

【PHP中的僞類型】
 僞類型:並不是一種真實存在的數據類型,它的存在僅僅是用來告訴程序員可以是那些、那種數據類型。常用於撰寫幫助文檔時使用:
mixed:代表參數可以是多種數據類型;
Number:代表參數可以是integer或者float;
callback:代表參數可以是一個回調函數;

 

【PHP中的數據類型轉換】
1.自動類型轉換:表示運算的時候,Boolean、Null、String等類型,會自動轉爲integer或float類型。
    Null——>0
    true——>1
    false——>0
    string——>轉非數值前的數字,沒有轉爲0
2.強制類型轉換:根據我們的需要,強制將變量轉換爲其他類型的變量;
    ①使用()聲明新類型強轉;
    ②使用settype();函數強轉;
    bool settype(mixed var,String type);第一個參數表示任何類型的變量;第二個參數表示字符串類型的數據類型,返回Boolean結果。
    ③兩種方式區別:
        第①種,是將轉換後的結果,賦給新變量;
        第②種,直接修改了原變量的數據類型;
$新變量=(新類型)$原變量;
//新類型,可以使用全拼,也可以使用縮寫
(int),(integer) - 轉換成整型
(bool),(boolean) - 轉換成布爾型
(float),(double),(real) - 轉換成浮點型
(string) - 轉換成字符串
(array) - 轉換成數組
(object) - 轉換成對象

bool settype(mixed var,String type)


【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();專用於打印數組。

 

【PHP中常量的定義和使用】
1、常量的定義:bool define(string 常量名,mixed任何類型的常量值[,bool 是否區分大小寫]);
2、常量的注意事項:
     ①常量定義只能使用define()函數;
     ②常量名,原則上要求必須使用大寫聲明。而且必須不能使用$聲明($只能是變量);
     ③常量聲明以後,默認全局範圍有效,沒有作用域之說。
     ④常量不但不能改,而且不能刪!unset,settype等函數均無效。
     ⑤常量默認區分大小寫,但是可以在聲明常量時,將define函數的第三個參數改爲true,即可改爲不區分大小寫。
     ⑥常量必須使用define()定義後才能使用。如果使用未聲明的常量,則默認轉爲常量字符串。但是,會報警告!
     var_dump(NUM);————>String "num"
     ⑦常量的值,只能是標量Boolean、String、integer、float。
3、可以使用constant("")讀取常量值,沒卵用!    
可以使用get_defined_constants(),獲取已定義的常量!包含系統自定義的N多個常量。
代碼示例:

<?php
    
    header ("Content-Type:text/html; charset=utf-8");
    $num=1;
    $num="哈哈";
    echo $num;
    $num1=$num2=$num3=5;
    echo $num1;
    echo isset($num1);
    var_dump(empty($num1));
    $isTrue="";
    if($isTrue){
        echo "這是true";
    }else{
        echo "這是false";
    }
    
    echo "<br/><br/><br/>";
    
    $str1='hahah{$num1}hahah\'ah1 ';
    echo $str1;
    $str2="hahahhah{$num1}ahah2";
    echo $str2;
    $str3=<<<str
        456
str;
    echo $str3;
    
    
    function func1(){
        define("NUM",12,true);
    }
    func1();
    echo "<pre>";
    print_r(get_defined_constants());
    echo "</pre>";
    #var_dump(num);

PHP中的運算符                                                                                         

【運算符】
1、算術運算符:
    +,-,*,/,%,++,--
2、賦值運算符:
    = += -= *= /= %= .=(連接字符串)
3、比較運算符:
    < > <= >= == === <>或!= !==
    ==:要求值相等,而不需要數據類型相等;
    ===:要求之和數據類型都相等;
    !=:只比較值,值相等爲false;
    !==:比較值和類型,都相等爲false;
4、邏輯運算符:
    and/&& or/|| not/! xor(異或)
    &&和||進行運算的時候會發生短路,當左側判斷出結果的時候,右側不再執行(&&左側爲假時,結果爲假;||左側爲真時,結果爲真)
    xor:邏輯異或。兩邊只有一個對的結果爲true;兩邊都對或者都錯結果爲false。
5、位運算符:將10進制轉爲2進制,然後在進行運算。
    &:按位與。轉成2進制後,兩個都爲1,結果才爲1。eg:12&12——>1100&1100=1100=>12;
    |:按位或。轉成二進制之後,有一個爲1,就是1;
    ^:按位異或。轉成2進制後,兩個不相同同爲1;都爲0或都爲1,結果爲0;
    ~:按位取反轉成2進制後,所有位數取反,再轉爲10進制數輸出(!!!!!規律:即~n——>-(n+1))
    <<:按位左移:轉成二進制後,左移幾位,右邊空餘位數補0。(!!!!規律:num<<n——>num*2^n)
    >>:按位右移:轉成二進制後,右移幾位,左邊空餘位數補0。(!!!!規律:num>>n——>num/2^n)

6、其他運算符
    ?::表達式1?表達式2:表達式3:表達式1成立執行表達式2,否則執行3。
    ``:調用系統都是環境下的命令行並執行,但是由於安全性以及跨平臺性,我們並不提倡使用:eg:`ipconfig`
    @:錯誤信息控制符。可以臨時屏蔽掉一些小的錯誤信息。但是不提倡使用!
    =>:數組下標指向
    ->:對象

【可變變量】
在一個 變量名前邊,再加一個$符號。即可將第一個變量的值,作爲新變量的名字。
    $hello="hello1";
    $$hello="world";//$hello1
    $$$hello="liu";//$world
&:取址符號。變量名前加&符號,取到當前變量的引用地址(變量在內存中的地址)。
$num2=&$num1;//取出num1的地址給num2,相當於我們說的引用數據類型。num2和num1的值將同時改變。

代碼示例:

PHP中,利用代碼實現a和b的交換
    $a=10;
    $b=8;
    #智障級
    $c=$a;
    $a=$b;
    $b=$c;
    
    #凡人級
    $a=$a+$b;
    $b=$a-$b;
    $a=$a-$b;
    
    #神經級
    $a=$a^$b;
    $b=$a^$b;//$a^$b^$b
    $a=$a^$b;//$a^$b^$a
    /*
     * 分析:
     * 8-------00001000
     * 10------00001010
     * ^-------00000010
     */
    
    echo $a.",".$b;

PHP中分支和循環結構                                                                            

 

【PHP中的分支結構】
if中的判斷條件:詳見上面講到的判斷條件;
elseif:PHP中elseif語句可以連寫,也可以分開寫;
switch:PHP中的switch結構,採用鬆散比較(==)判斷,與Js不同!!!!!
>>>注意:php中,continue可以用於switch結構,作用與break相同!
PHP中continue和break可以後接數字,表示跳過幾層循環或switch。例如:break 3代表終止3曾循環
do-while:循環最後,必須加;分號。
>>>eg:do{}while();


【流程控制語句】
1、break:終止本層循環;break後面可以接數字,表示終止幾層循環 break 3;終止3層循環
2、continue:跳過本次循環;continue後面可以接數字,表示跳過幾層循環
3、return:結束函數,並返回值(如果有),但是隻有函數中能用,腳本中不建議使用return
4、exit(mixed 結束語)/die(mixed 結束語)函數:直接結束當前的PHP腳本!如果有參數傳入,則先打印出結束語,然後結束當前腳本。

代碼示例:

//利用分支循環結構實現表格並填入指定數字。
echo "<table style='width: 500px; border: 1;  border-collapse: collapse; '>";
    for($i=0;$i<10;$i++){
        if($i%2!=0){
            echo "<tr bgcolor='red'>";
        }else{
            echo "<tr bgcolor='green'>";
        }
        for($j=0;$j<10;$j++){
            echo "<td style='border: 1px solid black';>";
            echo $i.$j;
            echo "</td>";    
        }
        echo "</tr>";
    }
    echo "</table>";

未完、待續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章