PHP基礎知識複習加鞏固

PHP是什麼

  1. PHP全稱:Hypertext preprocessor 超文本預處理器,是一種開源的腳本語言
  2. PHP在服務器上運行,以純html的形式返回給瀏覽器

PHP能做什麼

  • 可以生成動態的頁面
  • 可以創建、打開、讀取、寫入、關閉服務器上的文件。
  • 可以發送、接受cookie信息
  • 可以向服務器發送表單數據
  • 可以添加、修改、刪除數據庫中數據
  • 可以限制用戶訪問網站,或者網站上的某些頁面
  • 可以加密數據

PHP變量

PHP是一門弱類型的語言,因此會根據變量的值,自動變換爲正確的數據類型,在強類型的編程語言中,我們必須在使用變量前先聲明定義變量的類型和名稱。PHP沒有聲明變量的命令,故不需要聲明變量,變量以$符號開始,後邊跟着變量的名稱。

變量作用域

php有四種不同的變量作用域

  • local (局部作用域–>局部變量)
  • global (全局作用域–>全局變量)
  • static (靜態作用域–>靜態量)
  • parameter (參數作用域–>參數)

局部作用域 、全局作用域
函數外定義的變量,要想在函數內部使用,需要使用$ GLOBALS[‘變量名稱’] ,或者使用global關鍵字,在函數內部聲明該變量爲global $ x; 且在此處不能給$ x 賦值;

$x=5;
$y=10;

function myTest()
{
    global $x,$y;
    $y=$x+$y;
}

myTest();
echo $y; // 輸出 15

static 作用域
當一個函數完成時,它的所有變量通常都會被刪除。當你希望這個局部變量不要發生變化時,可以使用static,因此常用於計數器。

function myTest()
{
    static $x=0;
    echo $x;
    $x++;
}

myTest();
myTest();
myTest();

參數作用域
調用函數時傳遞給函數的變量值。

PHP數據類型

String (字符型)、Integar(整型)、float(浮點型)、Boolean(布爾型)、Array(數組),Object(對象)、NULL(空值)
注意點:

  • PHP中對象必須聲明,利用class關鍵字聲明,類中包含屬性和方法。
  • NULL 值表示變量沒有值,NULL是數據類型爲NULL的值
  • 常量是一個簡單的表示符,在腳本中不可改變,設置常量 用define()函數,常量名不用$ 修改符。

PHP運算符

邏輯運算符:! && || and or xor
數組運算符:合併:+、比較:==, != , ! ==, ===
註釋,

  • 關聯數組合並時:
    + 號,會自動去重,保留第一個重複的值;
    array_merge($ arr1,$ arr2),自動去重,保留第二個重複的值
  • 索引數組合並:
    + 號,同上,所以只保留第一個數組
    array_merge(),相當於數組拼接在一起

全局變量

  • $ GLOBA:是一個包含了全部變量的全局組合數組,變量名字即爲鍵名
  • $ _SERVER:是一個包含了諸如頭信息,路徑,以及腳本位置的數組,包含:header、PATH、HTTP_HOST、HTTP_USER_AGENT
  • $ _REQUEST:用於蒐集表單提交的數據
  • $ _ENV:是一個包含服務器端環境變量的數組
  • $ _POST、$ _GET、$ _FILES、$ _SESSION、$ _ENV

魔術變量

  • __ LINE __:文件中的當前行號
  • __ FILE__:文件的完整路徑和文件名
  • __ DIR__ :文件所在的目錄
  • __ FUNCTION__ :函數的名稱
  • __ TRAIT__ :定義/聲明覆用類
  • __ METHOD__ :類方法/函數的名稱
  • __ NAMESPACE__ :命名空間的名稱

PHP引入命名空間作用

  • 可解決用戶代碼與PHP內部類、函數、變量之間的衝突
  • 創建別名的名稱,提高源代碼可讀性

PHP數組排序的函數小結

  1. sort():普通索引數組 升 序排列
  2. rsort():降序排列
  3. asort():關聯數組的 值 :升序
  4. ksort():關聯數組的鍵 :升序
  5. arsort():關聯數組 的值 :降序
  6. krsort():關聯數組的鍵 :降序

PHP文件處理

$ file = fopen(fname,mode);//文件名,打開模式

  1. r :只讀
  2. r+:讀寫
  3. w:只寫;文件不存在,創建文件; 會替換掉文件中原來的內容
  4. w+:讀寫;文件不存在,創建文件; 會替換掉文件中原來的內容
  5. a:追加;文件不存在,創建文件
  6. a+:讀、追加;文件不存在,創建文件
  7. x:只寫;文件不存在,創建文件,文件存在,返回false或報錯
  8. x+:讀寫;文件不存在,創建文件,文件存在,返回false或報錯
    注意點:x 方式會將文件的指針指向文件頭
常用打開文件處理函數:
  • fopen(fname,mode):打開文件
  • fread(fname,length):讀取文件
  • fgets(fname):讀取單行文件,調用後文件指針會自動移至下一行
  • fgetc(fname):讀取單字符,調用後文件指針自動移至下一個字符
  • feof(fname):檢測是否已到文件結尾,對遍歷未知長度的數據有用
  • fclose(fname):關閉文件

Filesystem函數

  • chgrp():改變文件組
  • chmod():改變文件權限
  • chown():改變文件所有者
  • copy():複製文件
  • clearstatcache():清除文件狀態緩存
  • dirname():返回路徑中的目錄
  • basename():返回路徑中文件名
  • fgetss():從打開的文件中返回一行;並過濾掉html和php標籤
  • file():將一個文件讀入數組中
  • file_exists():檢查文件或者目錄是否存在
  • file_get_contents():把文件讀入字符串中
  • file_put_contens():把字符串寫入文件
  • fileperms():返回文件的權限
  • filetype():返回文件的類型
  • filesize():返回文件的大小
  • fseek():在打開的文件中定位
  • fstat():返回一個關於一個打開文件的信息
  • fwrite():寫入打開的文件
  • glob(“*.txt”):返回一個包含匹配模式指定模式的文件名、目錄的數組
  • is_dir():判斷是否是目錄
  • is_file():判斷是否是文件
  • is_executable():判斷是否是可執行文件
  • is_readable():判斷是否可讀
  • is_writeable():判斷是否可寫
  • is_uploaded_file():判斷是否通過http post上傳
  • is_link():判斷文件是否鏈接
  • mkdir():創建目錄
  • move_uploaded_file():移動文件到指定地方
  • pathinfo():返回文件路徑的信息
  • popen():打開一個進程
  • readfile():讀取一個文件,並寫入到輸出緩衝中
  • realpath():返回文件的絕對路徑名
  • rename():重命名文件、目錄
  • rmdir():刪除空的目錄
  • stat():返回關於文件的信息
  • tempfile():創建唯一的臨時文件
  • touch():設置文件的訪問和修改時間
  • unlink():刪除文件

Str 函數

  • addslashes():返回在預定義的字符前添加反斜槓的字符串
  • rtrim():刪除字符串右側的空白字符或其他字符
  • explode(‘’,$ str):字符串打散成數組
  • implode(‘ ’,array):數組分隔成字符串,join是別名
  • htmlspecialchars():把預定義的字符轉爲html實體
  • lcfirst():字符串首字母大寫,注意並不改變原字符串內容
  • ucfirst():字符串首字母小寫
  • lrim(str,length):刪除字符串左側的空白字符或其他字符
  • parse_str():把查詢的字符串解析到變量中
  • str_replace(s1,s2,allstr):在allstr中的s1替換成s2
  • str_split(str,length):把字符串分隔到數組總,length默認0
  • strstr(allstr ,‘str’):查找字符串在另一個字符出現,返回餘下部分字符(含本身)
  • strcmp():比較兩個字符串,返回布爾值
  • strip_tags():過濾字符串中html和php標籤
  • strlen():返回字符串的長度
  • strops():查找字符串在另一個字符出現的位置,返回數字
  • strrev():字符串翻轉
  • substr($ str ,6,10):返回字符串的一部分

Array函數

  • array_column():返回數組中某一單列的值,二維數組好用
  • array_combine():合併數組爲一個新的數組,一個爲鍵名,一個爲鍵值
  • array_diff():比較數組,返回差集(只比較鍵值)
  • array_diff_key():比較數組,返回差集(只比較鍵名)
  • array_diff_assoc():比較數組,返回差集(比較鍵值和鍵名)
  • array_intersect():比較數組,返回交集
  • array_flip():交換數組中的鍵 和 值
  • array_key_exists(‘key’,array):檢查指定鍵名是否存在數組中
  • array_map(function(),array):數組中每個元素都發送函數,返回新值
  • array_merge():合併數組,區別array_merge_recursive(),鍵名相同不會覆蓋,會把鍵名相同的元素從新組成一個數組;如果僅有一個索引數組,返回鍵名會從0開始的新索引數組
  • array_pop():刪除數組中的最後一個元素
  • array_push(array,v1,v2):在數組結尾處插入一個或者多個元素
  • array_search(val,array):搜索指定的值,返回鍵名
  • array_shift():刪除數組中的首個元素,並返回刪除元素
  • array_splice():刪除、替換數組中指定的元素
  • array_unique():數組去重
  • array_values():返回數組中的值
  • in_array(val,array):檢測數組中是否有某值
  • list(val1,val2):數組中值賦給一組變量
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章