1. 程式人生 > >PHP學習—瞭解篇

PHP學習—瞭解篇

瞭解PHP

  • 瞭解神器:PhpStudy 一鍵搭建PHP環境

語法:

​ PHP是一種可以巢狀在HTML頁面的指令碼語言

  • 巢狀HTML檔案:

    <!DOCTYPE html>
    <html>
        <head>
            <title>PHP</title>
        </head>
        <body>
          <?php
              // php程式碼;
          ?>
        </body>
    </html>

    PHP同時也可以以 “*.php” 檔案單獨儲存和被訪問,但是在php檔案中,也必須以 “< ? " 開頭, ”?>”結束!php程式碼只會在這裡被執行和解析

  • PHP對大小寫敏感識別
  • PHP支援目前主流的三種註釋:雙斜槓,“#”號,多行註釋

變數:

變數規則:

  • 變數以$符號開頭
  • 變數名必須字母或下劃線開頭,由數字、字母、下劃線組成變數名

  • PHP沒有建立變數名的命令,變數賦值的過程就是建立的過程

作用域:

  • local(區域性):只允許自己語法結構的語句訪問(函式內部宣告)

  • global(全域性):允許當前PHP程式中所有的語法結構內的語句訪問(函式之外宣告)

    全域性變數訪問:

    ​ global關鍵字用於在函式內訪問全域性變數,在內部函式中訪問全域性變數必須在訪問前使用global關鍵字。

    <?php
        $x = 5 ; 
      $y = 10 ; 
      function myTest(){
            global $x , $y ;
            $y = $x + $y ;
        }
      myTest();
      echo $y ;
    ?>
  • static(靜態):變數執行的結果,下一回合不復位

    靜態訪問:

    ​ 在變數宣告時,新增static宣告,就可以在多次訪問該變數而變數的變化不復位

    <?php
        function myTest(){
        static $x = 0 ; 
        echo $x ; 
        $x ++ ; 
      }
      myTest();
      myTest();
      myTest();
    ?>

輸出:

echo輸出:

  • 可以輸出一個以上的字串
<?php 
    echo '<p>Hello,World!</p>';
 ?>

print輸出:

資料型別:

字串:

  • 字串是字元序列,引號內的文字都屬於字串

整數:

  • 沒有小數的數字組合(包括負數)

浮點數:

  • 不是整數的所有數字組合,以及科學計數

布林邏輯數:

  • true和false

陣列:

  • 一個變數中儲存一個或多個值

  • 陣列建立使用關鍵字“array”

    <?php
        $cars = array ("HUAWEI","China","GO!")s
        var_dump($cars);//返回陣列的型別和值
    ?>
        // 執行結果
    // “array(3) { [0]=> string(6) "HUAWEI" [1]=> string(5) "China" [2]=> string(3) "GO!" }”

    關鍵字:var_dump 返回陣列的大小,每一個引數值的資料型別等資訊

物件:

  • 使用 “class” 關鍵字宣告物件資料型別

    <?php
        class Car {
        var $color ; 
        function Car($color = "green") {
            $this -> color = $color;
        }
        function what_color(){
            return $this->color;
        }
      }
    ?>

NULL值:

  • 表示變數為空值(將值設定為null,代表清空變數值)

判斷資料型別:

var_dump():
  • 列印變數的型別和值
  • 語法:void var_dump(mixed $expression)
  • 無返回值

iS函式:
  • is_bool():判斷是否為布林值
  • is_float():判斷是否為浮點型
  • is_int():判斷是否為整型
  • is_numeric():判斷是否為數值型
  • is_string():判斷是否為字串
  • is_array():判斷是否為陣列
  • is_object():判斷是否為物件
  • is_null():判斷是否為空
  • is_resource():判斷是否為資源型別
isset():
  • 檢查變數是否存在
  • 返回:變數存在返回 true
empty():
  • 檢查變數是否為空(isset()只可以檢測是否存在)
  • 返回:變數存在且非空 返回false(var = null 才認為是空)

PHP系統常量:

系統常量 說明
__ FILE __ PHP程式檔名
__ LINE __ PHP程式當前行號
PHP_VERSION PHP程式版本號
PHP_OS 作業系統名稱
TRUE
FALSE
E_ERROR 最近的錯誤
E_WARNING 最近的警告
E_PARSE 解析語法潛在問題
E_NOTICE 不正常的錯誤

運算子:

算術運算子:

// + - * / % ++ --

加 減 乘 除 模 自加 自減

字串運算子:

字串連線符: .(點)

連線等於:. = (點 等於)

賦值運算子:

賦值: =

減等: -=

加等: +=

乘等:*=

除等:/=

取餘等:%=

比較運算子:

大於、小於、大於等於、小於等於、等於、不等於

全等於:===

不全等:! ==

邏輯運算子:

邏輯與: and &&

邏輯或: or ||

邏輯非: not !

三元運算子:

條件運算子: ?:

控制結構:

if分支條件:

Switch條件語句:

While迴圈:

do…while迴圈:

for迴圈:

控制函式:

略(break/continue)

數值的傳遞:*

賦值傳遞:(兩個都不同的記憶體地址)

​ $a = $b ;

引用賦值:(兩個變數同一個地址)

​ $a = &$b ;

陣列:

陣列型別:

  • 列舉陣列:索引下標為整數
  • 關聯陣列:索引下標為字串
  • 多維陣列:陣列元素是陣列

建立陣列:

  • 關鍵字:array() 建立陣列

  • 識別符號:
    • $arr[key] = value ;
    • $arr[] = value ;

陣列函式:

unset():刪除陣列元素
foreach():遍歷陣列元素
array_shift():
  • 將陣列的第一個單元格移出並作為結果返回
array_pop():
  • 將陣列的最後一個單元元素移出並返回
array_unshift():
  • 在陣列最前面插入一個或多個元素
array_push():
  • 在陣列的尾部插入一個或多個元素
array_values():
  • 返回陣列中所有的值並建立數字索引
count():計算數值屬性個數
array_sum():計算數值的和
array_reverse():返回一個反轉陣列
list():將陣列元素賦值給變數
<?php 
    $IntArray = array(2,5,9,13,7,9,21,7,9,24,38) ;
    $MAX = $IntArray[0];
    $MIN = $IntArray[0];
    $MAX_i = $MIN_i = 0;
    for ($i=0; $i < count($IntArray) ; $i++) { 
        if ($MAX < $IntArray[$i]) {
            $MAX = $IntArray[$i] ; 
            $MAX_i = $i ;
        }
        if ($MIN > $IntArray[$i]) {
            $MIN = $IntArray[$i] ;
            $MIN_i = $i ; 
        }
    }
    echo "Array_MAX:".$MAX."<br />MAX_i=".$MAX_i ;
    echo "<br /><br />";
    echo "Array_MIN:".$MIN."<br />MIN_i=".$MIN_i ;
    echo "<hr />";
    // 位置交換
    echo "位置交換前:".print_r($IntArray) ; 
    $M = $IntArray[$MIN_i] ;
    $IntArray[$MIN_i] = $IntArray[$MAX_i] ; 
    $IntArray[$MAX_i] = $M ;
    echo "<br />";
    echo "位置交換後:".print_r($IntArray) ;
    echo "<hr />";
    // 反轉陣列
    echo print_r(array_reverse($IntArray));
 ?>

超全域性變數:

元素/程式碼 描述
$_SERVER['PHP_SELF'] 返回當前執行指令碼的檔名。
$_SERVER['GATEWAY_INTERFACE'] 返回伺服器使用的 CGI 規範的版本。
$_SERVER['SERVER_ADDR'] 返回當前執行指令碼所在的伺服器的 IP 地址。
$_SERVER['SERVER_NAME'] 返回當前執行指令碼所在的伺服器的主機名(比如 www.w3school.com.cn)。
$_SERVER['SERVER_SOFTWARE'] 返回伺服器標識字串(比如 Apache/2.2.24)。
$_SERVER['SERVER_PROTOCOL'] 返回請求頁面時通訊協議的名稱和版本(例如,“HTTP/1.0”)。
$_SERVER['REQUEST_METHOD'] 返回訪問頁面使用的請求方法(例如 POST)。
$_SERVER['REQUEST_TIME'] 返回請求開始時的時間戳(例如 1577687494)。
$_SERVER['QUERY_STRING'] 返回查詢字串,如果是通過查詢字串訪問此頁面。
$_SERVER['HTTP_ACCEPT'] 返回來自當前請求的請求頭。
$_SERVER['HTTP_ACCEPT_CHARSET'] 返回來自當前請求的 Accept_Charset 頭( 例如 utf-8,ISO-8859-1)
$_SERVER['HTTP_HOST'] 返回來自當前請求的 Host 頭。
$_SERVER['HTTP_REFERER'] 返回當前頁面的完整 URL(不可靠,因為不是所有使用者代理都支援)。
$_SERVER['HTTPS'] 是否通過安全 HTTP 協議查詢指令碼。
$_SERVER['REMOTE_ADDR'] 返回瀏覽當前頁面的使用者的 IP 地址。
$_SERVER['REMOTE_HOST'] 返回瀏覽當前頁面的使用者的主機名。
$_SERVER['REMOTE_PORT'] 返回使用者機器上連線到 Web 伺服器所使用的埠號。
$_SERVER['SCRIPT_FILENAME'] 返回當前執行指令碼的絕對路徑。
$_SERVER['SERVER_ADMIN'] 該值指明瞭 Apache 伺服器配置檔案中的 SERVER_ADMIN 引數。
$_SERVER['SERVER_PORT'] Web 伺服器使用的埠。預設值為 “80”。
$_SERVER['SERVER_SIGNATURE'] 返回伺服器版本和虛擬主機名。
$_SERVER['PATH_TRANSLATED'] 當前指令碼所在檔案系統(非文件根目錄)的基本路徑。
$_SERVER['SCRIPT_NAME'] 返回當前指令碼的路徑。
$_SERVER['SCRIPT_URI'] 返回當前頁面的 URI。

函式:

  • 關鍵字:function name() { …… }

函式引數:

  • 值傳遞引數:

    在函式呼叫的時候,允許傳遞引數值給函式,函式可以自由使用引數進行操作

  • 引用傳遞引數:

    如果希望函式可以修改引數值,可以使用引用引數進行傳遞

    引用傳遞,只需要在引數前加上 “&” 符號就可以

    $arr = array(1,2,3,4);
    function addElement(&$arr){
        $arr[count($arr)] = 100;
        print_r($arr);   //在函式內輸出$arr
    }
    addElement($arr);
    print_r($arr);  //在函式外輸出
  • 預設值傳遞:

    function hobby($who,$style=‘運動’){
        echo “$who 喜歡 $style”;
    }
    hobby(“張三”,“唱歌”);
    hobby(“張三”);
  • global關鍵字:

    引用函式外部的引數(引用傳遞性質的引數)

    $name = "Mary";//初始化變數
    function getName(){
        global $name; //引入外部的變數
        echo "我的名字叫:$name";
    }
    getName();

內建函式:

  • echo語句:輸出
  • print語句:輸出
  • include語句:包含並執行指定檔案

  • require語句:包含並執行指定檔案