日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

《细说PHP》读书笔记

發布時間:2023/12/10 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《细说PHP》读书笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第1-5章 略

第6章 PHP基本語法

6.1 PHP的應用

  • 收集表單數據
  • 生成動態網頁
  • 字符串處理
  • 動態輸出圖像
  • 處理服務器端文件系統
  • 編寫數據庫支持的網頁
  • 會話跟蹤控制
  • 處理XML文件
  • 支持利用大量的網絡協議
  • 服務器端的其他相關操作

6.2 PHP語言標記

  • 標準風格:開始標記是<?php,結束標記是?>
  • 指令分隔符:分號
  • 程序注釋:多行注釋/* */,單行注釋//或#
  • 空白的處理:
    • 使用兩個空行:一個源文件的兩個代碼片段之間、兩個類的聲明之間
    • 使用一個空行:兩個函數聲明之間、注釋之前。

6.3 變量

  • 變量的聲明:使用$后面跟變量名表示,弱類型語言不區分類型
  • 判空:使用isset()函數檢測變量是否設置,使用empty()函數檢查變量是否為空。對于""、0、“0”、NULL、FALSE、array()、var、$var,以及沒有任何屬性的對象都被認為是空。
  • 變量的命名:嚴格區分大小寫、以字母或下劃線開頭。
  • 可變變量:$num等價于num等價于num{$num},即一個可變變量獲取一個普通變量的值作為這個可變變量的變量名。
  • 變量的引用賦值:使用&符號,例如:car="BWM";car = "BWM";car="BWM";bike = &car;兩個變量的值會互相關聯,一個修改;另一個自動被修改。但unset(car;兩個變量的值會互相關聯,一個修改;另一個自動被修改。但unset(car;unset(car)只會取消兩個變量的關聯關系,而變量$bike不會消失
  • 變量的類型:PHP支持8種原始類型,四種標量類型(boolean、integer、float、string)、兩種復合類型(array、object)、兩種特殊類型(resource、NULL)
  • 定界符<<<:從<<<之后的標識符開始,到最后是同樣的標識符結束字符串。
  • 數組:使用逗號分隔的key=>value參數。例如:$arr = array(“foo” => “bar”, 12 => true);
  • 對象://創建對象 $p = new Person; //屬性賦值 $p->name = “Taylor”; //調用方法 $p->say();
  • 強制類型轉換:若參與運算:true->1.false->0,null->0,例如:num1="100Swift";num1 = "100Swift";num1="100Swift";num2 = 11;$result = $num1 + $num2; // 結果 result = 111
  • 常量的定義:例如 define(“PI”, 3.1415926); echo PI; 常量的定義默認區分大小寫,當define函數的第三個參數為true,則不區分大小寫。
  • 運算符,字符串運算符:英文句號.可將字符串與變量相連。比較運算符:全等于===,操作數相同并且類型相同。

第7章 PHP的流程控制結構

7.1 分支結構

  • if else
  • switch

7.2 循環結構

  • while
  • do while
  • for

7.3 特殊的流程控制語句

  • break
  • continue
  • exit:直接退出當前腳本

第8章 PHP的函數應用

8.1 自定義函數

例如:

function getName($name) { echo "姓名 = $name"; return $name; }$result = getName("函數調用"); echo "函數執行結果 = $result";

8.2 PHP變量的范圍

  • 局部變量:只作用于函數內部
  • 全局變量:在函數中使用需要用global關鍵字聲明,或使用$GLOBALS[“age”]
  • 靜態變量:內部動態變量在函數調用結束后自動釋放,而靜態變量在函數執行結束后依然保存在內存中,在所有對該函數的調用之間共享

8.3 聲明及應用各種形式的PHP函數

  • 常規參數的函數:string chr(int ascii)
  • 偽類型參數的函數:mixed funName(mixed $args)
  • 引用參數的函數:void funName(array &arg),PHP默認是按值傳遞參數,在函數內部改變參數的值并不會改變函數外部的值。
  • 默認參數的函數:function getDefault($m_name=“LiZongWei”, $m_age=“11”) {}
  • 可變個數參數的函數:使用系統的func_get_args()函數接收多個參數。
function more_args() { $args = func_get_args(); echo print_r($args); }more_args("Taylor", "Swift", "LinDan", "LiZongWei");
  • 回調函數:變量函數
function add($num1, $num2) { return $num1 + $num2; }$result = "add"; echo "運算結果:".$result(2, 3);

8.4 使用自定義函數庫

  • include函數:讀入指定文件并執行程序,用于流程控制或設置配置文件和攔截器。
  • require函數:讀入目標文件內容并替換,用于文件的開頭/結尾處或定義類的映射關系。
  • include_once 函數:在腳本執行期間包含并運行指定文件。與 include 語句類似,唯一區別是如果該文件中已經被包含過,則不會再次包含;
  • require_once 函數:和 require 語句完全相同,唯一區別是 PHP 會檢查該文件是否已經被包含過,如果是則不會再次包含。

第9章 PHP中的數組與數據結構

9.1 數組的分類

  • 數組分為索引數組和關聯數組兩種

9.2 數組的定義

  • 直接賦值的方式聲明數組:例如:list[0]="WuLei";list[0] = "WuLei";list[0]="WuLei";list[1] = 27;若沒有指定索引值,則緊跟索引值元素中最高的索引值遞增。
  • 輸出數組的所有值:使用系統的print_r()或var_dump()函數(輸出變量類型)
  • 使用array()新建數組:例如:$soccer = array(2, “name” => “WuLei”, 8 => 27, “Man”);
  • 多位數組的聲明:例如:
$user = array( "InsertUser" => [ 'connection' => 'dzone', 'exchange' => [ 'name' => 'dzone', 'type' => 'direct' ], 'queue' => [ 'name' => 'InsertUser' ], 'routing_key' => 'saveusertask', 'count' => 2 ], 'UpdateUser' => [ 'connection' => 'dzone', 'exchange' => [ 'name' => 'dzone', 'type' => 'direct' ], 'queue' => [ 'name' => 'UpdateUser' ], 'routing_key' => 'handleusertask', 'count' => 2 ] );echo "多維數組"; echo print_r($user["UpdateUser"]);

9.3 數組的遍歷

  • 數組的遍歷:使用for循環或foreach,例如:
for ($i=0; $i < count($list); $i++) { echo $list[$i].",\n"; }foreach ($list as $value) { echo "value=".$value.",\n"; }foreach ($list as $key => $value) { echo "key=".$key.",value=".$value.";\n"; }
  • 聯合使用list()、each()、while循環遍歷數組

9.4 預定義數組

  • $_SERVER:服務器信息
  • $_ENV:執行環境提交至腳本的變量
  • $_GET:由URL請求提交至腳本的變量
  • $_POST:由HTTP POST方法提交至腳本的變量
  • $_COOKIE:由HTTP Cookies方法提交至腳本的變量
  • $_REQUEST:包含 $_GET、 $_POST、 $_COOKIE中的全部內容。

9.5 數組的相關處理函數

方法名作用
array_values()返回數組中的所有元素值
array_keys()返回數組中的所有鍵名
in_array()檢查數組中是否存在某個值 若可選第三個參數為true,只有元素存在于數組中且數據類型相同時才返回true
array_search()搜索給定值,若存在返回相應的鍵名 若可選第三個參數為true,只有元素存在于數組中且數據類型相同才返回對應的key
array_flip()交換數組中的鍵值,返回一個反轉后的數組 若同一個值出現了多次,則最后一個鍵名作為它的值
array_reverse()將原數組中的元素順序翻轉,創建新的數組并返回
count()計算數組中的元素數目或對象中的屬性個數 對于數組的其它值會返回1,若參數是變量而變量沒有定義或變量包含一個空的數組則返回0
array_count_values()統計數組中所有值出現的次數
array_unique()刪除數組中重復的值,并返回沒有重復值的新數組
array_filter()用回調函數過濾數組中的元素
array_walk()對數組中的每個元素應用回調函數的處理
array_map()可處理多個數組,將回調函數作用到給定數組的元素上 比array_walk()函數更靈活
sort()升序排序
rsort()降序排序
usort()按用戶自定義的回調函數對數據排序
asort()對數組進行升序排序并保持索引關系
arsort()對數組進行降序排序并保持索引關系
uasort()按用戶自定義的回調函數對數組進行升序排序并保持索引關系
ksort()按鍵名對數組進行升序排序 為數組值保留原來的鍵
uksort()按用戶自定義的回調函數按鍵名對數組進行升序排序
natsort()用自然順序算法對給定數組中的元素排序
natcasesort()用不區分大小寫的自然順序算法對給定數組中的元素排序
array_multisort()對多個數組或多維數組進行排序
array_slice()在數組中根據條件取出一段值并返回
array_splice()選擇數組中的一系列元素用入參代替
array_combine()合并兩個數組來創建一個新數組,其中一個數組作為鍵,一個數組作為值 若其中一個數組為空或兩個數組的元素個數不同,則會返回false
array_merge()把一個或多個數組合并為一個數組 若鍵名有重復,則取最后一個鍵名對應的值
array_intersect()計算數組的交集 鍵名保留不變。僅有值用于比較
array_diff()返回兩個數組的差集數組 返回的數組中,鍵名保持不變
array_rand()從數組中隨機選出一個或多個元素并返回
shuffle()將數組中的元素按隨機順序重新排列
array_sum()返回數組中所有值得總和
range()創建并返回一個包含特定范圍的元素的數組

第10章 PHP面向對象的程序設計

10.1 面向對象的示例

class Person { var $name; private $age;// 構造方法1 function Person($name="Taylor") { $this->name = $name; }/* 構造方法2 function __construct($age="my_default") { $this->age = $age; } */ public function __set($propertyName, $propertyValue) { $this->$propertyName = $propertyValue; }public function __get($propertyName) { return $this->$propertyName; }function say() { echo "<br>姓名:".$this->name.",年齡:".$this->age; }private function walk() { echo "行走 <br>"; }function __destruct() { echo "<br>再見".$this->name; } }$p = new Person(); $p->say(); // 姓名:Taylor $p2 = new Person("Swift"); $p2->say(); // 姓名:Swift // $p2->walk(); 調用報錯,不能在外部調用私有方法 // 若無預定義__set()會調用報錯,因為不能在外部調用私有屬性 $p2->age = 66; echo $p2->age; $p2->say();// 繼承class Student extends Person { var $school; static $score;static function getScore() { return "<br>分數:".self::$score; }function study() { echo "<br>學生:".$this->name.",正在學習".$this->school." <br>"; }// 方法重寫 function say() { echo "<br>學生:".$this->name.",正在說話。。。 <br>"; } }$s = new Student("Tom"); $s->study(); $s->school = "math"; $s->study(); $s->say();Student::$score = 99;// 靜態變量的調用 echo Student::$score; echo Student::getScore();

10.2 預定義方法

方法名作用備注
__set()對所用私有屬性能進行賦值操作可在外部調用
__get()對所用私有屬性能進行獲取操作可在外部調用
__isset()檢查私有屬性是否存在可在外部調用
__unset()刪除對象中私有屬性的方法可在外部調用

10.3 常見的關鍵字和魔術方法

  • final:可加在類或方法前,表示類不能被繼承、方法不能被覆蓋。但不能標識成員屬性。
  • static:用來表示屬性和方法,多個對象之間共享,類似于全局變量。訪問靜態變量:Person::$count
  • 單例設計模式:一個類只實例化一個對象。
class Singleton { private static $instance;protected function __construct() {}public static function getInstance() { // if (false == self::$instance instanceof self) { if (is_null(self::$instance)) { self::$instance = new self(); } return self::$instance; }function query($content) { echo $content; } }$db = Singleton::getInstance(); echo $db->query("select * from singlton");
  • const關鍵字:將類的成員屬性定義為常量
class Teacher { const NAME = 'TEACHER';function showConstant() { echo self::NAME."<br>"; } }echo Teacher::NAME."<br>"; $t = new Teacher(); $t->showConstant(); // echo $t::NAME; 不能通過對象名稱訪問常量
  • instanceof關鍵字:判斷一個對象是類的實例、類的子類,還是實現了某個特定接口。
  • 克隆對象:使用clone關鍵字創建一個對象的副本,改變原對象不影響副本,例如:$p2 = clone $p1;
  • 類中的通用方法:
    • __toString():獲取對象的字符串表示
    • __call():調用對象不存在的方法就會自動調用call()方法,并且程序可以繼續向下執行。
    • __autoload()全局函數提供了類的自動加載功能
    • serialize():對象串行化

10.4 抽象類與接口

  • 抽象類:
  • 接口
  • 只能繼承一個類,但可實現多個接口。

第11章 字符串處理

  • 常用的字符串處理函數
方法名作用
sprintf()將格式化的字符串以返回值的形式寫入一個變量中
ltrim()從字符串左側刪除空格或其它預定義字符
trim()從字符串的兩端刪除空白字符和其它預定義字符
strtolower()把字符串轉換為小寫
strtoupper()把字符串轉換為大寫
strrev()反轉字符串
md5()將一個字符串進行MD5計算
strcmp()按字節順序進行字符串的比較

第12章 正則表達式

12.1 正則表達式語法

元字符含義描述
*匹配0次、1次或多次前面的字符
+匹配1次或多次前面的字符
匹配0次或1次前面的字符
.匹配除了換行符外的任意一個字符
{n}表示前面的字符恰好出現了n次
{n,m}表示前面的字符至少出現n次,最多出現m次
^或\A匹配輸入字符串的開始位置
$或\Z匹配輸入字符串的結束位置
\b匹配單詞的邊界
\B匹配除單詞邊界以外的部分
[ ]匹配方括號中指定的任意一個字符
[ ^ ]匹配除方括號中的字符以外的任意一個字符
()模式單元,即由多個字符組成的匹配單元

12.2 與Perl兼容的正則表達式

  • preg_match():對字符串進行搜素和匹配一次。
  • perl_grep():匹配數組中的元素,返回正則表達式匹配的數組單元。
  • preg_replace():執行正則表達式的搜素和替換。

第13章 PHP的錯誤和異常處理

13.1 錯誤處理

  • openlog():打開一個和當前系統中日志器的連接
  • syslog():向系統日志中發送一個定制消息
  • closelog():向系統日志中發送完成定制消息以后調用。

13.2 異常處理

  • 使用try catch語句塊,可捕獲多個異常
  • 擴展異常處理類

第14章 PHP的日期和時間

  • 常用的日期處理函數
方法名作用
mktime()將日期和時間轉變為UNIX時間戳
getdate()返回一個由時間戳組成的關聯數組
microtime()返回當前UNIX時間戳和微秒數

第15-19章略

第20章 PHP訪問MySQL

  • 連接MySQL,例如:$link = mysql_connect(“localhost”, “root”, “123456”);
  • 輸出版本信息:echo mysql_get_server_info();
  • 選擇數據庫:mysql_select_db(“mysql”);
  • 插入數據:mysql_query(“insert into qgl_my_user(id,name,age,type) values (2, ‘Swift’, 22, 5)”);
  • 更新數據:mysql_query(“update qgl_my_user set age = 29 where type = 3”);
  • 刪除數據:mysql_query(“delete from qgl_my_user where type = 3”);
  • 查詢數據:$result = mysql_query(“select id,name,age,type from qgl_my_user”);
  • 獲取查詢結果
    • 從結果集中獲取行數:mysql_num_rows($result);
    • 從結果集中獲取列數:mysql_num_fields($result);
    • 將一條結果以普通索引數組的形式保存:mysql_fetch_row($result);
    • 將一條結果以普通關聯數組的形式保存:mysql_fetch_assoc($result);

總結

以上是生活随笔為你收集整理的《细说PHP》读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。