特別鳴謝:@NLER提供雨課堂數(shù)據(jù)
(未完待續(xù),請(qǐng)持續(xù)關(guān)注此板塊)
【計(jì)科三四】雪課堂PHP期末模擬題:https://ks.wjx.top/vm/tUAmjxq.aspx#
【計(jì)科一二】PHP第一章練習(xí)題 https://ks.wjx.top/vm/QnjHad4.aspx#
【計(jì)科一二】PHP第二章練習(xí)題 https://ks.wjx.top/vm/h2FvEVI.aspx#
【計(jì)科一二】PHP第三章練習(xí)題 https://ks.wjx.top/vm/mDvpYRP.aspx#
【計(jì)科一二】PHP第四章練習(xí)題 https://ks.wjx.top/vm/Pj7n0AW.aspx#
【計(jì)科一二】PHP第五章練習(xí)題 https://ks.wjx.top/vm/wBNmk7o.aspx#
【計(jì)科一二】PHP第六章練習(xí)題 https://ks.wjx.top/vm/tU0jnyJ.aspx#
【計(jì)科一二】PHP第七章練習(xí)題 https://ks.wjx.top/vm/eqtTMy8.aspx#
以下內(nèi)容都是博主根據(jù)上面的練習(xí)題逆向整理的
第1章
1.1 PHP入門
PHP開發(fā)環(huán)境有:Notepad++、NetBeans、Zend Studio、PhpStorm、Visual Studio Code
PHP可以在 windows環(huán)境上跑,也可以在linux環(huán)境下運(yùn)行
PHP是基于B/S架構(gòu)的腳本語言,運(yùn)行于服務(wù)器端,不能通過瀏覽器運(yùn)行
1.2 Apache
Apache 默認(rèn)監(jiān)聽的端口號(hào)是 80
安裝Apache 時(shí),conf目錄
是Apache服務(wù)器的配置目錄
- 主文件配置:
httpd.conf
- 輔文件配置:extra目錄下的
httpd-vhosts.conf
等
默認(rèn)情況下,輔配置文件不開啟。
1.2.1 配置 Apache
將Apache解壓后,需要配置安裝路徑才可以使用
(安裝完還不能直接使用)。
Apache默認(rèn)是不支持PHP運(yùn)行的,我們可以通過在Apache的配置文件中加載PHP模塊功能。
1、加載模塊
LoadModule php7_module “c:/web/php7.4/php7apache2_4.dll”
2、指定php的文件類型
AddType application/x-httpd-php .php
3、指定配置目錄
PHPIniDir “c:/web/php7”
配置安裝路徑
ServerRoot
配置項(xiàng)用于配置Apache的安裝目錄
使用Notepad++編輯器打開Apache的配置文件“htdocs\httpd.conf”,執(zhí)行文本替換,將原來的“c:/Apache24”全部替換為“c:/web/apache2.4”。
配置服務(wù)器域名
ServerName
配置項(xiàng)用于配置Apache的服務(wù)器域名
打開
httpd.conf
,在里面搜索“ServerName”,找到下面一行配置(如下面的代碼塊)。下述代碼開頭的“#”表示該行是注釋文本,應(yīng)刪去“#”使其生效,如下所示。#ServerName www.example.com:80
上述配置中,“www.example.com”是一個(gè)示例域名,若不需要指定域名,也可以更改為本機(jī)地址,如“127.0.0.1”或“l(fā)ocalhost”。
ServerName www.example.com:80
其他配置項(xiàng)
DocumentRoot
指令用來設(shè)置httpd提供服務(wù)的目錄。即你所在項(xiàng)目入口處的文件夾。
Deny from all
表示拒絕所有的訪問Allow from all
表示允許所有的訪問
1.2.2 安裝 Apache
- 切換命令行到 Apache 安裝目錄
cd C:\web\apache2.4\bin
-
Apache核心安裝命令:
httpd.exe -k install
1.2.3 啟動(dòng) Apache
在命令提示符下輸入net start apache2.4
命令來啟動(dòng)apache2.4服務(wù)
1.2.4 其他
通過編輯apache配置文件httpd.conf,找到AddType application/x-httpd-php 進(jìn)行修改,修改為:
AddType application/x-httpd-php .php .jsp
,這樣PHP就可以執(zhí)行擴(kuò)展名為“.jsp”的程序。
1.3 MySQL
MySQL 的默認(rèn)端口:3306
當(dāng)需要使用PHP操作MySQL數(shù)據(jù)庫時(shí),需要在php.ini文件中開啟的擴(kuò)展為extension=php_mysqli.dll
DDL
查看數(shù)據(jù)庫:SHOW DATABASES; (查看已有的數(shù)據(jù)庫)
創(chuàng)建數(shù)據(jù)庫:CREATE DATABASE `db`; (創(chuàng)建一個(gè)名稱為db的數(shù)據(jù)庫)
選擇數(shù)據(jù)庫:USE `db`; (選擇數(shù)據(jù)庫db進(jìn)行操作)
刪除數(shù)據(jù)庫:`DROP DATABASE `db`; (刪除數(shù)據(jù)庫db)
DTL
DML
其他
在查詢SQL語句中LIKE
或NOT LIKE
用于模糊查詢,%
表示一個(gè)或多個(gè)字符
第二章
2.1 PHP的數(shù)據(jù)類型
- 標(biāo)量數(shù)據(jù)類型:String(字符串)、Integer(整型)、Float(浮點(diǎn)型)、Boolean(布爾型)
- 復(fù)合數(shù)據(jù)類型:Array(數(shù)組)、Object(對(duì)象)
- 特殊數(shù)據(jù)類型:NULL(空值)、Resource(資源)
2.2 PHP 傳值賦值 和 引用賦值
PHP 支持引用賦值,使用
$var = &$othervar;
語法。
引用賦值意味著兩個(gè)變量指向了同一個(gè)數(shù)據(jù),沒有拷貝任何東西。
示例:
<?php
$a = 10;
$b = &$a;
$b = 20;
echo $a. '--'. $b;
// 運(yùn)行結(jié)果:20--20
?>
2.3 PHP中的 foreach 循環(huán)
<?php
$info = ['id' => 1, 'Jac', 'age' => 18];
foreach ($info as $k => $v) {
echo $k . ': ' . $v . ' ';
}
// 運(yùn)行結(jié)果:id: 1 0: Jac age: 18
2.4 && || and or的區(qū)別
優(yōu)先級(jí)從高到低:&&
> ||
> and
>> or
- && 和 || 的優(yōu)先級(jí)高于 and 和 or
- && 和 || 是左結(jié)合的,而 and 和 or 是右結(jié)合的
- && 和 || 的運(yùn)算結(jié)果是布爾值,而 and 和 or 的運(yùn)算結(jié)果是最后一個(gè)計(jì)算的操作數(shù)
舉個(gè)例子:
<?php
$a = true;
$b = false;
$c = true;
var_dump($a && $b || $c); // bool(true)
var_dump($a and $b || $c); // bool(false)
var_dump($a || $b && $c); // bool(true)
var_dump($a or $b && $c); // bool(true)
var_dump(true && false); // bool(false)
var_dump(true and false); // bool(true)
?>
2.5 round(), floor(), ceil() 的區(qū)別
在PHP中,round()、floor()、ceil()都是用于處理數(shù)字的函數(shù),它們的主要區(qū)別如下:
- round():把一個(gè)浮點(diǎn)數(shù)四舍五入為最接近的整數(shù)。如果小數(shù)部分為0.5,則根據(jù)偶數(shù)舍去或進(jìn)位。
- floor():把一個(gè)浮點(diǎn)數(shù)向下取整為最接近的整數(shù)。即舍去小數(shù)部分,返回不大于原數(shù)的整數(shù)。
- ceil():把一個(gè)浮點(diǎn)數(shù)向上取整為最接近的整數(shù)。即進(jìn)位到最接近的整數(shù),返回不小于原數(shù)的整數(shù)。
總的來說,round()函數(shù)在處理小數(shù)時(shí)比較精確,而floor()和ceil()函數(shù)主要用于處理需要向下或向上取整的情況。
2.6 可變變量
在 PHP 中,可變變量是一種非常獨(dú)特的特性,它允許您動(dòng)態(tài)地為變量賦值,并且通過對(duì)變量名進(jìn)行操作,來訪問和修改該變量的值。
可變變量的語法是在變量名前面加上兩個(gè)美元符號(hào)($$
)。例如,假設(shè)您有一個(gè)名為$var
的變量,您可以創(chuàng)建一個(gè)可變變量,以便它的名稱由另一個(gè)變量$var1
指定:
$var = 'Hello World!';
$var1 = 'var';
echo $$var1; // Hello World!
這將輸出 ‘Hello World!’,因?yàn)榭勺冏兞?code>$$var1實(shí)際上是$var
。
可變變量在某些情況下非常有用,例如在使用 關(guān)聯(lián)數(shù)組
時(shí),您可以動(dòng)態(tài)地為數(shù)組項(xiàng)賦值:
$fruit = 'apple';
$$fruit = 5;
echo $apple; // 5
這將輸出 5,因?yàn)橥ㄟ^可變變量,我們?yōu)閿?shù)組項(xiàng) $apple
賦值為5。
需要注意,可變變量在某些情況下可能會(huì)使您的代碼更難以閱讀和維護(hù),因此應(yīng)該謹(jǐn)慎使用。
2.7 字符串拼接
在 PHP 中,可以使用點(diǎn)(.)運(yùn)算符來拼接字符串。
例如,如果要拼接兩個(gè)字符串 $str1 和 $str2,可以使用以下語法:
$newstr = $str1 . $str2;
也可以使用復(fù)合賦值運(yùn)算符 .= 來將另一個(gè)字符串添加到已有字符串的末尾:
$str1 = "hello";
$str1 .= " world";
// $str1 現(xiàn)在為 "hello world"
另外,在 PHP 5.6+ 版本中,還可以使用雙引號(hào)字符串插值來拼接字符串。例如:
$name = "John";
echo "My name is $name"; // 輸出 "My name is John"
上述例子中,在字符串中使用變量名 $name 就會(huì)自動(dòng)替換成變量的值。這種方式更簡便快捷,使用起來更加方便。
2.8 全局變量和局部變量
在 PHP 中,全局變量和局部變量的使用和其他編程語言類似。
全局變量是定義在函數(shù)外部的變量,可以在腳本中的任何位置訪問和使用。例如:
$global_var = "Hello";
function print_global_var(){
global $global_var; // 必須使用 global 關(guān)鍵字聲明外部變量
echo $global_var;
}
print_global_var(); // 輸出 "Hello"
需要注意的是,在函數(shù)中使用全局變量時(shí),必須通過 global 關(guān)鍵字聲明變量,否則該變量會(huì)被認(rèn)為是局部變量。
局部變量是定義在函數(shù)內(nèi)部的變量,只能在該函數(shù)范圍內(nèi)訪問和使用。例如:
function print_local_var(){
$local_var = "World";
echo $local_var;
}
print_local_var(); // 輸出 "World"
echo $local_var; // 報(bào)錯(cuò):Undefined variable: local_var
需要注意的是,局部變量的作用域只限于該函數(shù),函數(shù)執(zhí)行結(jié)束后,局部變量的值就會(huì)被銷毀。而全局變量的作用域則為整個(gè)腳本,除非顯式銷毀變量或腳本執(zhí)行結(jié)束,否則全局變量的值會(huì)一直存在。
因此,在編寫 PHP 代碼時(shí),應(yīng)謹(jǐn)慎使用全局變量,以防止意外修改變量值或引起其他問題。而對(duì)于需要在多個(gè)函數(shù)或頁面中使用的變量,可以考慮使用常量或 session 變量來實(shí)現(xiàn)。
2.9 關(guān)聯(lián)數(shù)組
PHP的關(guān)聯(lián)數(shù)組是一種特殊的數(shù)組類型,其中每個(gè)元素都有一個(gè)關(guān)聯(lián)的鍵來標(biāo)識(shí)它。在關(guān)聯(lián)數(shù)組中,鍵可以是字符串或整數(shù),而不僅僅是數(shù)字。這使得關(guān)聯(lián)數(shù)組更靈活,因?yàn)槟梢允褂镁哂幸饬x的鍵來組織和訪問數(shù)據(jù)。
創(chuàng)建關(guān)聯(lián)數(shù)組時(shí),需要使用array()函數(shù),并將每個(gè)鍵和對(duì)應(yīng)的值作為參數(shù)傳遞。下面是一個(gè)示例:
$person = array("name" => "John", "age" => 30, "city" => "New York");
在上面的示例中,我們創(chuàng)建了一個(gè)名為$person的關(guān)聯(lián)數(shù)組,其中包含三個(gè)元素:name、age和city。每個(gè)元素都有一個(gè)對(duì)應(yīng)的鍵,分別為"name"、“age"和"city”。
要訪問關(guān)聯(lián)數(shù)組中的元素,可以使用其鍵作為索引。例如,要輸出$person數(shù)組中的名稱,可以使用以下代碼:
echo $person["name"];
這將輸出"John",因?yàn)?name"鍵對(duì)應(yīng)的值是"John"。
您還可以使用foreach循環(huán)遍歷關(guān)聯(lián)數(shù)組中的所有元素。例如,以下代碼將遍歷$person數(shù)組中的所有元素,并輸出它們的鍵和值:
foreach ($person as $key => $value) {
echo $key . ": " . $value . "<br>";
}
這將輸出以下內(nèi)容:
name: John
age: 30
city: New York
總的來說,關(guān)聯(lián)數(shù)組是PHP中一種非常有用的數(shù)據(jù)類型,可以讓您使用有意義的鍵來組織和訪問數(shù)據(jù)。
2.10 unset()
PHP中的unset()函數(shù)用于銷毀指定變量,使其不再存在于內(nèi)存中。當(dāng)使用unset()函數(shù)刪除一個(gè)變量時(shí),PHP會(huì)回收變量的內(nèi)存空間,從而釋放內(nèi)存并提高程序的性能。
此外,unset()函數(shù)不僅可以用于刪除變量,還可以用于刪除數(shù)組中的元素,例如:
$fruit = array('apple', 'orange', 'banana');
unset($fruit[1]); // 刪除數(shù)組中的第二個(gè)元素('orange')
print_r($fruit); // 輸出:Array([0] => apple [2] => banana)
需要注意的是,unset()函數(shù)只能刪除變量本身,而不能刪除變量指向的值。如果想要清空變量的值,可以使用賦值為null的方式,例如:
$name = 'John';
$name = null; // 清空$name變量的值
2.11 使用字符串函數(shù)獲取文件的擴(kuò)展名
<?php
$file_name = "apple.jpg";
$file_array = explode(".", $file_name);
$file_ext = end($file_array);
echo $file_ext;
// 運(yùn)行結(jié)果:jpg
第3章
- mysqli_query()函數(shù)用于執(zhí)行MySQL操作語句
- 在更新數(shù)據(jù)時(shí),如果沒有指定where條件,則所有記錄行都將被更新
- 可以在like之前使用not關(guān)鍵字,用來查詢與指定通配符不匹配的記錄
- mysql_query()函數(shù)執(zhí)行“use 數(shù)據(jù)庫名”這條SQL語句可以實(shí)現(xiàn)數(shù)據(jù)庫的選擇
- limit的第一個(gè)參數(shù)表示的是每次讀取的起始位置
- 操作MySQL數(shù)據(jù)庫的PDO擴(kuò)展的文件名是extension=php_pdo_mysql.dll
- 使用like模糊搜索時(shí),“%Y%”這樣的條件將匹配包含字符“Y”的字符串
- 在MySQL中,數(shù)據(jù)表中的數(shù)據(jù)條目是從0開始計(jì)算的
- 在使用insert語句添加數(shù)據(jù)時(shí),數(shù)據(jù)的值的順序需要與數(shù)據(jù)表中的字段順序保持一致
- 使用limit子句可以實(shí)現(xiàn)分頁獲取數(shù)據(jù),它的第一個(gè)參數(shù)是起始位置
- mysql_fetch_assoc()函數(shù)從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組
- PHP操作MySQL數(shù)據(jù)庫時(shí),需要使用mysqli_query()函數(shù)執(zhí)行SQL語句
- select * from
itcast_info
limit 0,100可以查詢出前100條數(shù)據(jù) - mysqli擴(kuò)展在默認(rèn)情況下已經(jīng)安裝好了,在php.ini中開啟該擴(kuò)展的配置項(xiàng)是extension=php_mysqli.dll
- PRIMARY KEY可以唯一標(biāo)識(shí)表中的某一條記錄
- 在MySQL中更新數(shù)據(jù)時(shí),一條SQL語句可以更新多行數(shù)據(jù)
- mysql_query()函數(shù)在執(zhí)行查詢語句時(shí),返回的數(shù)據(jù)需要使用類似mysqli_fetch_array()等函數(shù)獲取,并處理后輸出
- mysql_query()僅對(duì)SELECT、SHOW、EXPLAIN或DESCRIBE語句返回一個(gè)資源標(biāo)識(shí)符,如果查詢執(zhí)行不正確則返回FALSE
- 使用mysqli擴(kuò)展連接到數(shù)據(jù)庫需要調(diào)用mysqli_connect()函數(shù),并判斷連接是否成功
- SQL語句可以使用ORDER BY關(guān)鍵字實(shí)現(xiàn)排序,DESC表示降序排序,ASC表示升序排序
- 使用SQL語句可以創(chuàng)建數(shù)據(jù)表,指定數(shù)據(jù)表的字段名、類型、主鍵、自增等信息
- 在選擇數(shù)據(jù)庫前必須指定字符集,可以使用SET NAMES關(guān)鍵字指定
- 使用limit子句可以實(shí)現(xiàn)分頁獲取數(shù)據(jù),包括起始位置和每頁顯示的記錄數(shù)
以上是PHP操作MySQL數(shù)據(jù)庫的主要知識(shí)點(diǎn)總結(jié)。在實(shí)際應(yīng)用中,需要根據(jù)不同的需求,靈活運(yùn)用這些知識(shí)點(diǎn)進(jìn)行開發(fā)。
第4章
- output_buffering = 4096表示輸出緩沖區(qū)大小為4096字節(jié)
- 使用session_start()函數(shù)開啟一個(gè)會(huì)話,并可以在$_SESSION超全局變量中保存會(huì)話數(shù)據(jù)
- 超全局變量
$_GET
、$_POST
、$_SERVER
、$_COOKIE
、$_SESSION
、$_REQUEST
等是PHP預(yù)定義好的變量,可以在腳本的任何位置使用 - session會(huì)話ID在客戶端和服務(wù)器端都保存,用于區(qū)別不同的用戶
- 使用setcookie()函數(shù)創(chuàng)建Cookie,可以設(shè)置Cookie的名稱、值、過期時(shí)間、作用域等參數(shù)
- JavaScript表單驗(yàn)證只能做簡單的驗(yàn)證,在服務(wù)器端進(jìn)行表單驗(yàn)證可以保證系統(tǒng)的安全穩(wěn)定
- Session是一種服務(wù)器端的技術(shù),它的生命周期從用戶訪問頁面開始,直到關(guān)閉瀏覽器結(jié)束
- Content-Type字段用于表示實(shí)體內(nèi)容的MIME類型
- 可以通過setcookie()函數(shù)為保存到Cookie中的SessionID設(shè)置HttpOnly屬性,使其只能通過HTTP協(xié)議訪問
- 在使用表單時(shí),相同name的單選按鈕如果都沒有選中,則不會(huì)提交該數(shù)據(jù)
- HTTP協(xié)議是一種明文傳輸協(xié)議,對(duì)于安全性敏感的網(wǎng)站,應(yīng)使用HTTPS協(xié)議進(jìn)行加密傳輸
- 使用setcookie()函數(shù)創(chuàng)建Cookie時(shí)必須在其他信息輸出前調(diào)用,否則會(huì)導(dǎo)致程序出錯(cuò)
- 可以通過trim()、intval()、strip_tags()、htmlspecialchars()等函數(shù)對(duì)用戶輸入數(shù)據(jù)進(jìn)行過濾和轉(zhuǎn)換
- 可以使用preg_match()函數(shù)進(jìn)行正則表達(dá)式匹配
- 使用HTTP協(xié)議發(fā)送響應(yīng)消息時(shí),可以在響應(yīng)頭中增加Set-Cookie響應(yīng)頭字段來設(shè)置Cookie
- HTTP協(xié)議中常見的狀態(tài)碼有404、200、403、500等
- Web服務(wù)器可以為每個(gè)用戶的瀏覽器創(chuàng)建一個(gè)供其獨(dú)享的Session文件
- Session數(shù)據(jù)保存在服務(wù)器端,但是sessionid是保存在客戶端的,因此需要通過Cookie來進(jìn)行傳遞
- 可以使用$_SESSION超全局變量從Session中讀取數(shù)據(jù)
- 可以使用HTTP協(xié)議中的GET和POST方法來向服務(wù)器提交數(shù)據(jù),GET方法將數(shù)據(jù)置于URL中,而POST方法將數(shù)據(jù)置于請(qǐng)求體中
以上是PHP會(huì)話管理和HTTP協(xié)議相關(guān)的主要知識(shí)點(diǎn)總結(jié),對(duì)于實(shí)際開發(fā)中的應(yīng)用,需要根據(jù)不同的需求靈活運(yùn)用這些知識(shí)點(diǎn)進(jìn)行開發(fā)和維護(hù)。
第5章
- 圖像處理函數(shù):
- imagesetpixel(): 用于在圖像中繪制一個(gè)像素點(diǎn)。
- imageline(): 用于在圖像中繪制一條直線。
- imagerectangle(): 用于在圖像中繪制一個(gè)矩形。
- imageellipse(): 用于在圖像中繪制一個(gè)橢圓形。
- imagecreatetruecolor(): 用于創(chuàng)建一個(gè)真彩色圖像,支持各種顏色。
- getimagesize(): 用于獲取圖像的信息,包括寬度、高度和類型等。
- 文件操作函數(shù):
- basename(): 用于獲取路徑中的文件名部分。
- pathinfo(): 用于返回文件路徑的信息,包括目錄名、文件名、文件基本名和擴(kuò)展名。
- copy(): 用于復(fù)制文件。
- file(): 將整個(gè)文件讀入數(shù)組中,數(shù)組中每個(gè)元素為一行數(shù)據(jù)。
- fgets(): 用于在打開文件時(shí)獲取一行數(shù)據(jù)。
- file_get_contents(): 將文件全部內(nèi)容讀取到一個(gè)字符串中。
- fgetc(): 在打開文件時(shí)獲取一個(gè)字符。
- fopen(): 用于打開文件。
- fclose(): 用于關(guān)閉文件。
- fread(): 用于讀取文件內(nèi)容。
- fwrite(): 用于寫入文件內(nèi)容。
- filesize(): 用于獲取文件大小。
- unlink(): 用于刪除文件。
- rmdir(): 用于刪除目錄,但只能刪除空目錄。
- dirname(): 用于返回路徑中的目錄部分。
- is_file(): 用于判斷文件是否存在。
- is_dir(): 用于判斷目錄是否存在。
- scandir(): 用于獲取目錄中的文件列表。
- mkdir(): 用于創(chuàng)建目錄。
- 文件上傳:
- $_FILES數(shù)組:用于獲取上傳文件的相關(guān)信息。
- move_uploaded_file()函數(shù):用于將上傳文件移動(dòng)到指定位置。
- enctype屬性值設(shè)置為multipart/form-data:用于實(shí)現(xiàn)文件上傳。
- HTTP請(qǐng)求方法:
- GET:用于從服務(wù)器獲取數(shù)據(jù)。
- POST:用于向服務(wù)器提交數(shù)據(jù)。
- 超全局?jǐn)?shù)組:
- $_GET:用于獲取由HTTP_GET方式提交至PHP腳本的變量。
- $_POST:用于獲取由HTTP_POST方式提交至PHP腳本的變量。
- $_REQUEST:用于獲取由GET、POST和COOKIE方式提交至PHP腳本的變量。
- $_FILES:用于獲取上傳文件的相關(guān)信息。
- 圖片水?。?/li>
- imagecopy(): 用于將一個(gè)圖像復(fù)制到另一個(gè)圖像上。
- imagecopymerge(): 用于將一個(gè)圖像復(fù)制到另一個(gè)圖像上并設(shè)置透明度。
- 文字水?。?/li>
- imagefttext(): 使用FreeType 2字體將文本寫入圖像。
- imagettftext(): 用TrueType字體向圖像寫入文本。
- 文件下載:
- header()函數(shù):用于設(shè)置HTTP響應(yīng)頭。
- Content-type:用于指定下載文件的MIME類型。
- Session技術(shù):
- 用于驗(yàn)證碼的驗(yàn)證。
- 文件指針指向:
- 打開文件時(shí)根據(jù)打開模式和參數(shù)決定。
- 文件打開模式:
- r:只讀方式打開,將文件指針指向文件頭。
- r+ :讀寫方式打開,將文件指針指向文件頭。
- w:寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。
- w+ :讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。
- a:寫入方式打開,將文件指針指向文件尾。如果文件不存在則嘗試創(chuàng)建之。
- a+ :讀寫方式打開,將文件指針指向文件尾。如果文件不存在則嘗試創(chuàng)建之。
第6章
回答每一個(gè)問題,如下:
-
在PHP的類中,提供了三個(gè)訪問修飾符 公有 public 、保護(hù)protected 、私有private。 答案:對(duì)。
-
在類中可以使用 self 關(guān)鍵字表示當(dāng)前的對(duì)象。 答案:錯(cuò)。self是在類內(nèi)調(diào)用靜態(tài)成員的方式。
-
在PHP類中可以使用final關(guān)鍵字禁止繼承和重寫。 答案:對(duì)。
-
類的繼承是指在一個(gè)現(xiàn)有類的基礎(chǔ)上去構(gòu)建一個(gè)新類,構(gòu)建出的新類稱為子類,現(xiàn)有類稱為父類。 答案:對(duì)。
-
在PHP中,可以通過 abstract 關(guān)鍵字聲明抽象類, 抽象類中可以有非抽象方法、成員屬性和常量。 答案:對(duì)。
-
spl_autoload_register()可以實(shí)現(xiàn)類庫的自動(dòng)加載。 答案:對(duì)。
-
保證一個(gè)類僅有一個(gè)實(shí)例,這句話描述的是單例模式。 答案:對(duì)。
-
在PHP語言中,抽象類不能被實(shí)例化。 答案:對(duì)。
-
在子類中重寫的方法需要和父類被重寫的方法具有相同的方法名、參數(shù),而不僅僅是相同的方法名,如果想要調(diào)用父類中被重寫的方法,就需要使用parent關(guān)鍵字, parent關(guān)鍵字用于訪問父類的成員。由于parent關(guān)鍵字引用的是一個(gè)類而不是一個(gè)方法,因此需要使用范圍解析操作符(::)。子類方法重寫父類方法時(shí),訪問權(quán)限不能小于父類方法的訪問權(quán)限。 答案:對(duì)。
-
在創(chuàng)建對(duì)象時(shí),如果不需要傳遞參數(shù),則可以省略類名后面的括號(hào)。 答案:對(duì)。
-
面向?qū)ο蟮娜筇卣魇欠庋b、多態(tài)、繼承,其中繼承的實(shí)現(xiàn)非常簡單,在編寫一個(gè)類文件的時(shí)候使用extends關(guān)鍵字來繼承另一個(gè)類即可,可以通過重寫來實(shí)現(xiàn)多態(tài)效果。 答案:對(duì)。
-
在類中聲明的成員變量被稱為成員屬性,聲明的方法被稱為成員方法。 答案:對(duì)。
-
接口不能直接被實(shí)例化,即不能使用new關(guān)鍵字創(chuàng)建接口對(duì)象。PHP提供implements關(guān)鍵字用于實(shí)現(xiàn)接口。 答案:對(duì)。
-
如果抽象類中所有的成員方法都是抽象的,則可以將這個(gè)類定義為接口,其語法格式如下: interface 接口名{ // 成員 常量 // 抽象方法 } 其中,關(guān)鍵字interface用來定義接口。接口中的成員屬性只能是使用const修飾的常量,不能是變量,而抽象類中可以定義成員變量。接口中所有的方法都是抽象方法,因此方法名前就不需要使用abstract關(guān)鍵字修飾了。 答案:對(duì)。
-
這個(gè)符號(hào)“::”被稱為靜態(tài)訪問符,訪問靜態(tài)成員都需要通過這個(gè)操作符來完成。 答案:對(duì)。
-
self是在類內(nèi)調(diào)用靜態(tài)成員的方式,而類名在類內(nèi)和類外都可以調(diào)用。 答案:錯(cuò)。類名在類外可以調(diào)用,在類內(nèi)需要使用self。
-
如果一個(gè)類繼承了某個(gè)抽象類,則它必須實(shí)現(xiàn)該類的所有抽象方法。 答案:對(duì)。
-
抽象類不能直接被實(shí)例化,即不能使用new關(guān)鍵字創(chuàng)建抽象類對(duì)象,必須先繼承該抽象類,然后再實(shí)例化子類。抽象類中至少要包含一個(gè)抽象方法。如果類方法被聲明為抽象的,那么其中就不能包括具體的功能實(shí)現(xiàn),即只有聲明沒有方法體,不能被調(diào)用。 答案:對(duì)。
-
子類在繼承父類時(shí),會(huì)繼承父類的所有公共成員和受保護(hù)的成員,而不會(huì)繼承父類的私有成員。 答案:對(duì)。
-
類中定義的__construct()表示構(gòu)造方法,它會(huì)在類實(shí)例化對(duì)象時(shí)自動(dòng)調(diào)用,用于初始化類中的成員。在一個(gè)對(duì)象被銷毀時(shí),被自動(dòng)調(diào)用的方法是析構(gòu)方法__destruct()。 答案:對(duì)。
-
類與對(duì)象的關(guān)系就如模具和鑄件的關(guān)系,類的實(shí)例化結(jié)果就是對(duì)象,而對(duì)一類對(duì)象的抽象就是類。 答案:對(duì)。
-
在類中聲明靜態(tài)成員的關(guān)鍵字是static。
-
在PHP中,可以創(chuàng)建對(duì)象的關(guān)鍵字是 new。
-
在類中,屬性是通過成員變量實(shí)現(xiàn)的,而行為是通過成員函數(shù)(又稱為方法)實(shí)現(xiàn)的。定義類的語法格式:類名【成員變量;成員方法;】。
-
對(duì)象復(fù)制可以通過clone關(guān)鍵字來完成。
第7章
PDO (PHP Data Object) 是一種用于訪問數(shù)據(jù)庫的擴(kuò)展,可以統(tǒng)一不同數(shù)據(jù)庫的訪問接口,實(shí)現(xiàn)代碼的可移植性。其核心類是PDO類,使用方式分為面向?qū)ο蠛兔嫦蜻^程兩種語法形式。
PDO的數(shù)據(jù)源(DSN)包括PDO驅(qū)動(dòng)名、主機(jī)名、端口號(hào)、數(shù)據(jù)庫名稱等信息。PDO處理結(jié)果集的方法包括fetch()、fetchColumn()和fetchAll(),其中fetch()方法用于獲取下一行數(shù)據(jù),需與while配合使用以獲取所有數(shù)據(jù);fetchColumn()方法以字符串方式返回指定列的值;fetchAll()方法以數(shù)組形式返回所有行。
PDO執(zhí)行SQL語句有三種方法:exec()方法主要用于沒有結(jié)果集合返回的操作,如INSERT、UPDATE、DELETE等操作;query()方法主要用于有記錄結(jié)果返回的操作,特別是SELECT操作;預(yù)處理語句可以解決重復(fù)分析和編譯的問題,提高運(yùn)行速度。
PDO錯(cuò)誤處理模式包括ERRMODE_ERROR、ERRMODE_SILENT、ERRMODE_WARNING和ERRMODE_EXCEPTION;errorCode()和errorInfo()方法用于檢查語句和數(shù)據(jù)庫對(duì)象是否有錯(cuò)誤。在使用PDO的預(yù)處理語句時(shí),bindParam()方法可以將變量參數(shù)綁定到占位符上,execute()方法用于執(zhí)行預(yù)處理語句。
PDO的缺點(diǎn)是維護(hù)困難和可移植性差,但其解決了不同數(shù)據(jù)庫擴(kuò)展的應(yīng)用程序接口互不兼容的問題。文章來源:http://www.zghlxwxcb.cn/news/detail-471257.html
重點(diǎn)知識(shí)點(diǎn):PDO的數(shù)據(jù)源(DSN)、處理結(jié)果集的方法、預(yù)處理語句、執(zhí)行SQL語句的三種方法、錯(cuò)誤處理模式。文章來源地址http://www.zghlxwxcb.cn/news/detail-471257.html
到了這里,關(guān)于PHP復(fù)習(xí)資料(未完待續(xù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!