《PHP程序設(shè)計與微信小程序案例教程》 課件匯 譚麗君 4.3 制作“購物車”頁面-7.微信小程序的發(fā)布_第1頁
《PHP程序設(shè)計與微信小程序案例教程》 課件匯 譚麗君 4.3 制作“購物車”頁面-7.微信小程序的發(fā)布_第2頁
《PHP程序設(shè)計與微信小程序案例教程》 課件匯 譚麗君 4.3 制作“購物車”頁面-7.微信小程序的發(fā)布_第3頁
《PHP程序設(shè)計與微信小程序案例教程》 課件匯 譚麗君 4.3 制作“購物車”頁面-7.微信小程序的發(fā)布_第4頁
《PHP程序設(shè)計與微信小程序案例教程》 課件匯 譚麗君 4.3 制作“購物車”頁面-7.微信小程序的發(fā)布_第5頁
已閱讀5頁,還剩158頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

4.3制作“購物車”頁面微信小程序開發(fā)

4.3.1“購物車”頁面wxml文件

購物車”頁面包括右上角編輯、中間的商品信息和下面的結(jié)算。

4.3.1“購物車”頁面wxml文件

1.“編輯/完成”框架②text組件內(nèi)容為三元運算表達式,adminShow值為真時,顯示“完成”,adminShow值為假時,顯示“編輯”。①text組件,綁定了點擊事件adminTap。

4.3.1“購物車”頁面wxml文件

2.“購物車”頁面會有以下兩種情況:購物車是空的和購物車有商品購物車是空的購物車有商品

4.3.1“購物車”頁面wxml文件

3.每個商品信息效果和框架結(jié)構(gòu)如下圖,

4.3.1“購物車”頁面wxml文件

4.“購物車”中底部結(jié)算效果和框架結(jié)構(gòu),

4.3.2“購物車”頁面wxss文件

1.“編輯/完成”效果和框架結(jié)構(gòu),序號選擇器樣式內(nèi)容①.edit寬度、高度、背景顏色、行高、固定定位、頂上位置為0、彈性布局、右對齊②.edit>text右外邊距、字顏色、字大小、“編輯/完成”wxss樣式設(shè)置“編輯/完成”wxss樣式代碼

4.3.2“購物車”頁面wxss文件

2.每個商品信息的效果和框架,wxss樣式設(shè)置序號選擇器樣式內(nèi)容1.shop寬度、頂上內(nèi)邊距、底下內(nèi)容邊距、自適應(yīng)居中、底下外邊距2.empty文本水平居中、內(nèi)邊距、字顏色3.shop-content底下外邊距、溢出隱藏、彈性布局4.shop_check_box頂上外邊距、左邊外邊距5.check_img寬度、高度、頂上外邊距、左邊外邊距6.shop_img寬度、高度、外邊距7.shop_detail該元素flex為1即填滿剩下的寬,右外邊距8.shop_name字大小、行高9.shop_detail_bottom彈性布局、頂上外邊距10.shop_price行高、本元素flex為1即填滿剩下的寬,11.num_change彈性布局、頂上內(nèi)邊距12.minus_icon寬度、高度13.shop_num行高、高度、寬度、文本居中、字大小14.add_icon寬度、高度

4.3.2“購物車”頁面wxss文件

3.結(jié)算框架效果和框架結(jié)構(gòu),wxss樣式設(shè)置序號選擇器樣式內(nèi)容1.footer

寬度、高度、固定定位、底下0px、背景色、彈性布局2.check_box該元素flex為1即填滿剩下的寬,彈性布局、行高、字大小3.check_img寬度、高度、頂上外邊距、左邊外邊距4.check_text左外邊距、行高5.footer_total_text字顏色、行高、該元素flex為1即填滿剩下的寬6.footer_tatal_price字顏色7.footer_total,.deleteshop寬度、高度、背景色、字大小、字顏色、文本水平居中、行高

4.3.3“購物車”頁面js文件

1.顯示“購物車”頁面時,會運行cart.js文件中onShow函數(shù),并發(fā)送網(wǎng)絡(luò)請求給后臺接口cartList,前后端數(shù)據(jù)交互,接口地址

4.3.3“購物車”頁面js文件

,單擊Preview,可以查看cartList接口返回給前端的數(shù)據(jù)

4.3.3“購物車”頁面js文件

2.在購物車頁面,單擊“加號”或“減號”時,會運行cart.js文件中numchangeTap事件函數(shù),并發(fā)送網(wǎng)絡(luò)請求給后臺接口syncNum,前后端數(shù)據(jù)交互如下圖,

4.3.3“購物車”頁面js文件

在導(dǎo)入的點餐小程序項目中,在購物車頁面,單擊思戀絲娃娃“加號”,在調(diào)試器中,單擊syncNum接口,單擊Headers,可以查看接口地址和網(wǎng)絡(luò)請求方式RequestMethod的值。如左下圖

。還可以查看接口從前端接收的數(shù)據(jù),如右下圖。,

4.3.3“購物車”頁面js文件

,單擊Preview,可以查看goodsList接口返回給前端的數(shù)據(jù)

4.3.3“購物車”頁面js文件

3.在購物車頁面,選擇商品,單擊右下角刪除時,會運行cart.js文件中delete事件函數(shù),并發(fā)送網(wǎng)絡(luò)請求給后臺接口syncDelete,前后端數(shù)據(jù)交互如下圖,

4.3.3“購物車”頁面js文件

在導(dǎo)入的點餐小程序項目中,在購物車頁面,點擊“編輯”,選擇“紅湯羊肉火鍋”,點擊刪除,在調(diào)試器中,單擊syncDelete接口,單擊Headers,可以查看接口地址和網(wǎng)絡(luò)請求方式RequestMethod的值。如左下圖。還可以查看接口接收的前端數(shù)據(jù),如右下圖。,

4.3.3“購物車”頁面js文件

單擊Preview,可以查看syncDelete接口返回給前端的數(shù)據(jù)

4.3.3“購物車”頁面js文件

4.在購物車頁面,選擇商品后,單擊結(jié)算按鈕,會運行cart.js文件中g(shù)oClearing事件函數(shù),跳轉(zhuǎn)到確認(rèn)訂單頁面,如下圖,

4.3.3“購物車”頁面js文件

在導(dǎo)入的點餐小程序項目中,在購物車頁面,選擇思戀絲娃娃,單擊結(jié)算按鈕,打開調(diào)試器,單擊Headers,可以查看跳轉(zhuǎn)地址,如左下圖。還可以查看跳轉(zhuǎn)頁面時傳遞的參數(shù),如右下圖,

4.3.3“購物車”頁面js文件

,單擊Preview,可以查看“確認(rèn)訂單”頁面中,發(fā)送網(wǎng)絡(luò)請求給confirm接口,返回給前端的數(shù)據(jù)

4.3.3“購物車”頁面js文件

,序號代碼劃分說明①constutils=require('../../utils/util.js');引入utils.js文件②Page

初始數(shù)據(jù)data初始化以下數(shù)據(jù):adminShow:false,//編輯items:[],//購物車數(shù)據(jù)total:0,//總金額checkedAll:false,//全選checkedGoods:[],//已選擇的商品

函數(shù)onShow功能:調(diào)用getList。getList功能:utils._get函數(shù),發(fā)送網(wǎng)絡(luò)請求給后臺接口cartList,并返回購物車表中商品數(shù)據(jù)信息到前端。adminTap功能:切換顯示“編輯”或“完成”checkTap功能:點擊單個復(fù)選框,如果選中了該商品,則計算商品價格。judgmentAll功能:判斷是否為全選numchangeTap功能:調(diào)用syncNum函數(shù)syncNum功能:調(diào)用utils._post函數(shù),發(fā)送網(wǎng)絡(luò)請求給后臺接口syncNum。對選中的商品進行數(shù)量修改。allcheckTap功能:實現(xiàn)全選或全部未選中g(shù)oClearing功能:結(jié)算已經(jīng)選中商品,并跳轉(zhuǎn)到確認(rèn)訂單頁面,并把購物車id號傳給確認(rèn)訂單頁面中onLoad中options里。delete功能:調(diào)用syncDelete函數(shù)。syncDelete功能:調(diào)用utils._post函數(shù),發(fā)送網(wǎng)絡(luò)請求給后臺接口syncDelete?!百徫镘嚒眂ard.js文件代碼模塊如下表4.4制作“確認(rèn)訂單”頁面主講人:譚麗君微信小程序開發(fā)

4.4.1“確認(rèn)訂單”wxml文件

在“確認(rèn)訂單”頁面,上面是訂單商品信息,底部是立即結(jié)算。

4.4.1“確認(rèn)訂單”wxml文件

1.每個訂單商品信息序號名稱組件部分屬性、內(nèi)容說明①商品列表wx:for="{{items.goods}}"列表渲染,數(shù)組名為items.goods②商品圖片src="{{item.cover}}"src屬性值綁定了數(shù)組中當(dāng)前元素的cover的值③商品標(biāo)題<viewclass="list-name">{{item.title}}</view>view內(nèi)容綁定了items.goods數(shù)組中當(dāng)前元素的title值。

④商品價格<textclass="list-detail-left">¥{{item.price}}</text>text內(nèi)容綁定了items.goods數(shù)組中當(dāng)前元素的price值。

⑤商品數(shù)量<textclass="list-detail-right">x{{item.num}}</text>text內(nèi)容綁定了items.goods數(shù)組中當(dāng)前元素的num值。商品信息框架中,數(shù)據(jù)綁定每個訂單商品信息wxml代碼

4.4.1“確認(rèn)訂單”wxml文件

2.立即結(jié)算效果和框架結(jié)構(gòu)立即結(jié)算wxml代碼序號名稱使用組件類名組件部分屬性、內(nèi)容說明①金額viewfooter-left<viewclass="footer-left">¥{{item.total_price}}</view>view內(nèi)容綁定了items中total_price值。

②立即結(jié)算viewfooter-rightbindtap="submitOrder"綁定了事件,函數(shù)名為submitOrder。立即結(jié)算中數(shù)據(jù)綁定和事件綁定4.4.2“確認(rèn)訂單”wxss文件1.每個訂單商品信息效果和框架結(jié)構(gòu),序號選擇器樣式內(nèi)容1.nav-item寬度、高度、居中、背景色、頂上間距、邊框圓角、底下外邊距、彈性布局2.nav-item-img寬度、高度3.nav-item-img>image寬度、高度4.nav-item-text寬度、高度、字大小、文本左對齊5.list-name字顏色、溢出隱藏、頂上外邊距、右外邊距6.list-detail彈性布局、頂上外邊距、

space-between兩端對齊,項目之間的間隔都相等,7.list-detail-left字顏色8list-detail-right字顏色、右外邊距wxss樣式設(shè)置

4.4.2“確認(rèn)訂單”wxss文件

2.立即結(jié)算效果和框架結(jié)構(gòu),wxss樣式設(shè)置序號選擇器樣式內(nèi)容1.footer-buy寬度、高度、固定定位、底下10px、自適應(yīng)居中、彈性布局、space-between兩端對齊,項目之間的間隔都相等,2.footer-left字大小、顏色、加粗、左內(nèi)邊距3.footer-right寬度、高度、背景色、文本水平居中、行高、字大小、字顏色、倒圓角邊框

4.4.3“確認(rèn)訂單”js文件

,1.在“購物車”頁面點擊“結(jié)算”時,才能跳轉(zhuǎn)到“確認(rèn)訂單”頁面,加載“確認(rèn)訂單”頁面,運行confirm-order.js文件中onLoad函數(shù),并發(fā)送網(wǎng)絡(luò)請求給后臺接口confirm,前后端數(shù)據(jù)交互如下圖。

4.4.3“確認(rèn)訂單”js文件

,在4.3.3.節(jié)中“購物車”頁面點擊“結(jié)算”時,已經(jīng)跳轉(zhuǎn)到“確認(rèn)訂單”頁面,并加載“確認(rèn)訂單”頁面,單擊Preview,可以查看confirm接口返回給前端的數(shù)據(jù)

4.4.3“確認(rèn)訂單”js文件

,2.在“確認(rèn)訂單”頁面單擊立即結(jié)算時,會運行confirm-order.js文件中submitOrder事件函數(shù),并發(fā)送網(wǎng)絡(luò)請求給后臺接口submitOrder,前后端數(shù)據(jù)交互如下圖

4.4.3“確認(rèn)訂單”js文件

在導(dǎo)入的點餐小程序項目中,在“確認(rèn)訂單”頁面單擊“立即結(jié)算”,打開調(diào)試器,單擊submitOrder接口,單擊Headers,可以查看接口地址和網(wǎng)絡(luò)請求方式RequestMethod的值。如左下圖。還可以查看接口接收的前端數(shù)據(jù),如右下圖。

4.4.3“確認(rèn)訂單”js文件

,單擊Preview,可以查看submitOrder接口返回給前端的數(shù)據(jù)

4.4.3“確認(rèn)訂單”js文件

,confirm-order.js文件代碼模塊如下序號代碼劃分說明①constutils=require('../../utils/util.js');引入utils.js文件②Page初始數(shù)據(jù)data初始化以下數(shù)據(jù):items:{},//商品信息goodsData:[],//要購買的商品信息cartIds:'',//購物車id函數(shù)onLoad功能:調(diào)用getList函數(shù)。getList功能:調(diào)用utils._get,發(fā)送網(wǎng)絡(luò)請求給后臺confirm接口,獲取要購買商品列表。submitOrder功能:發(fā)送網(wǎng)絡(luò)請求給后臺submitOrder接口,把商品信息存入訂單商品表。4.5制作“訂單”頁面主講人:譚麗君微信小程序開發(fā)

4.5.1“訂單”wxml文件

“訂單”頁面效果和框架結(jié)構(gòu),如下圖

4.5.1“訂單”wxml文件

“訂單”my-order.wxml文件中,數(shù)據(jù)綁定如下表序號名稱使用組件類名組件部分屬性、內(nèi)容說明①訂單列表vieworderwx:for="{{items}}"列表渲染,數(shù)組名為items②商品列表viewshopwx:for="{{order.goods}}"列表渲染,數(shù)組名為order.goods③商品標(biāo)題viewlist-name<viewclass="list-name">{{item.title}}</view>view內(nèi)容綁定了{{item.title}}④商品價格textlist-detail-left<textclass="list-detail-left">¥{{item.price}}</text>text內(nèi)容綁定了{{item.price}}⑤商品數(shù)量textlist-detail-right<textclass="list-detail-right">x{{item.num}}</text>text內(nèi)容綁定了{{item.num}}⑥支付金額textmeny-font02<textclass="meny-font02">¥{{item.total_price}}</text>text內(nèi)容綁定了{{item.total_price}}⑦下單時間viewtime<viewclass="time">下單時間:{{order.create_time}}</view>view內(nèi)容綁定了{{order.create_time}}4.5.2“訂單”wxss文件“訂單”頁面效果和框架結(jié)構(gòu),序號選擇器樣式內(nèi)容1.order寬度、高度、背景色、內(nèi)邊距、上外邊距、溢出2.shop寬度、高度、上外邊距、彈性布局3.shop-img寬度、高度4.shop-textflex=1、寬度、高度、左外邊距5.shop-name字大小、字顏色、溢出6.shop-num字大小、字顏色、上外邊距、底外邊距7.shop-detail字大小、字顏色8.meny-font01字顏色9.meny-font02字顏色10.time寬度、高度、行高、上外邊距、字大小、字顏色11.null寬度、高度、背景色、上外邊距

4.5.3“訂單”js文件

,1.“訂單”頁面顯示時,會運行my-order.js文件中onShow函數(shù),并發(fā)送網(wǎng)絡(luò)請求給后臺接口orderLis,前后端數(shù)據(jù)交互如下圖

4.5.3“訂單”js文件

,在導(dǎo)入的點餐小程序項目中,打開“訂單”頁面,打開調(diào)試器,單擊orderList接口,單擊Headers,可以查看接口地址和網(wǎng)絡(luò)請求方式RequestMethod的值。如下圖

4.5.3“訂單”js文件

,單擊Preview,可以查看orderList接口返回給前端的數(shù)據(jù),如下圖,并發(fā)送網(wǎng)絡(luò)請求給后臺接口submitOrder,前后端數(shù)據(jù)交互如下圖

4.5.3“訂單”js文件

,“訂單”my-order.js文件代碼模塊如下表序號代碼劃分說明①constutils=require('../../utils/util.js');引入utils.js文件②Page初始化數(shù)據(jù)data初始化以下數(shù)據(jù):items:[]函數(shù)onShow功能:調(diào)用getList函數(shù)。getList功能:調(diào)用utils._get函數(shù),發(fā)送網(wǎng)絡(luò)請求給后臺orderList接口,獲取訂單商品信息,再返回給前端。5.1PHP入門主講人:譚麗君微信小程序開發(fā)

5.1.1PHP概念及用途

1.PHP概念即“超文本預(yù)處理器”,PHP是一種簡單高效、應(yīng)用廣泛、最流行的Web服務(wù)器端腳本語言。PHP文件的后綴名是".php"。PHP文件能夠包含HTML、CSS以及PHP代碼。目前PHP最常用的版本是7.0。

5.1.1PHP概念及用途

2.PHP在微信小程序后端的用途接收客戶端的請求、操作數(shù)據(jù)庫、返回數(shù)據(jù)給客戶端。

5.1.2PHP開發(fā)環(huán)境搭建

選擇phpStudy(Apache+PHP+MySQL)集成開發(fā)環(huán)境,一次性安裝,無須配置即可使用PHP服務(wù)器1.phpStudy開發(fā)環(huán)境搭建(1)啟動Apache和MySQL后臺要運行PHP代碼和操作數(shù)據(jù)庫,必須啟動Apache和MySQL

5.1.2PHP開發(fā)環(huán)境搭建

單擊“網(wǎng)站”,默認(rèn)網(wǎng)站域名為localhost,端口80,物理路徑D:/phpstudy_pro/WWW。(2)查看默認(rèn)網(wǎng)站

5.1.2PHP開發(fā)環(huán)境搭建

(3)創(chuàng)建點餐小程序網(wǎng)站①把本教材素材庫中shop目錄里所有內(nèi)容復(fù)制到d:/phpstudy_pro/www文件夾下。②運行phpstudy_pro,啟動Apache2.2.39和MySQL5.7.26成功。③單擊左側(cè)“網(wǎng)站”-->單擊“創(chuàng)建網(wǎng)站”,彈出網(wǎng)站窗口,輸入網(wǎng)站域名:,單擊“瀏覽”按鈕,選擇目錄D:/phpstudy_pro/www/shop/public。5.2搭建點餐數(shù)據(jù)庫主講人:譚麗君微信小程序開發(fā)

5.2.1導(dǎo)入點餐數(shù)據(jù)庫

1.運行phpstudy,啟動Apache2.4.39和MySQL5.7.26成功。

5.2.1導(dǎo)入點餐數(shù)據(jù)庫

2.創(chuàng)建新數(shù)據(jù)庫之前,必須要修改root用戶的默認(rèn)密碼。①單擊左側(cè)“數(shù)據(jù)庫”,單擊數(shù)據(jù)庫root后面的“操作”下拉選項,單擊“修改密碼”②彈出“修改密碼”窗口,輸入新密碼123456,單擊確認(rèn)。

5.2.1導(dǎo)入點餐數(shù)據(jù)庫

3.單擊創(chuàng)建數(shù)據(jù)庫,彈出“數(shù)據(jù)庫”窗口,輸入數(shù)據(jù)庫名稱:myshop,輸入用戶名:tlj,輸入密碼:123456。單擊確認(rèn)。

5.2.1導(dǎo)入點餐數(shù)據(jù)庫

4.單擊myshop數(shù)據(jù)庫后的“操作”,單擊“導(dǎo)入”,彈出“選擇文件”窗口,單擊瀏覽按鈕,選擇要導(dǎo)入的數(shù)據(jù)庫文件d:\phpstudy_pro\www\shop\backup\my_shop.sql,單擊確認(rèn),完成導(dǎo)入數(shù)據(jù)庫。

5.2.2使用Navicatpremium操作點餐數(shù)據(jù)庫

1.Navicatpremium軟件是一款快速、可靠的數(shù)據(jù)庫管理工具,Navicat是專為簡化數(shù)據(jù)庫的管理及降低系統(tǒng)管理成本而設(shè)計,用此工具連接數(shù)據(jù)庫,可以對數(shù)據(jù)庫進行各種操作。2.使用Navicatpremium連接點餐數(shù)據(jù)庫操作步驟步驟1:運行Navicatpremium,單擊工具欄上“連接”下拉選項,選擇MySQL。

5.2.2使用Navicatpremium操作點餐數(shù)據(jù)庫

步驟2:彈出“新建連接”窗口,輸入連接名shop,輸入用戶名:tlj,輸入密碼:123456步驟3:雙擊shop連接名,雙擊打開myshop數(shù)據(jù)庫,雙擊表,顯示點餐數(shù)據(jù)庫里有4個表,分別為hr_goods商品表、hr_cart購物車表、hr_order訂單表、hr_order_goods訂單商品表。雙擊hr_cart表,可以瀏覽該表信息。

5.2.2使用Navicatpremium操作點餐數(shù)據(jù)庫

3.商品表hr_goods,該表的結(jié)構(gòu)如下表

5.2.2使用Navicatpremium操作點餐數(shù)據(jù)庫

4.購物車表hr_cart,該表的結(jié)構(gòu)如下表5.訂單表hr_order,該表的結(jié)構(gòu)如下表

5.2.2使用Navicatpremium操作點餐數(shù)據(jù)庫

6.訂單商品表hr_order_goods,該表的結(jié)構(gòu)如下表5.3使用submile創(chuàng)建第一個PHP文件主講人:譚麗君微信小程序開發(fā)

5.3使用submile創(chuàng)建第一個PHP文件

submile:是一款簡潔、體積小巧、高效、跨平臺的代碼編輯器。使用submile編輯器創(chuàng)建第一個PHP程序文件步驟①運行sublime編輯軟件步驟②單擊”file”-->單擊”O(jiān)penFolder”打開文件夾,選擇d:/phpstudy_pro/www

5.3使用submile創(chuàng)建第一個PHP文件

使用submile編輯器創(chuàng)建第一個PHP程序文件步驟③鼠標(biāo)右擊www文件夾,彈出快捷菜單,單擊“NewFolder”,在窗口底部FolderName后面輸入5-3,即新文件夾名。步驟④單擊“file”-->單擊“newfile”

5.3使用submile創(chuàng)建第一個PHP文件

使用submile編輯器創(chuàng)建第一個PHP程序文件步驟⑤在代碼編輯區(qū)中輸入以下代碼,單擊“file”-->單擊“save”,將文件保存在“D:\phpstudy_pro\WWW\5-3”文件夾下,文件名為“index.php”文件。運行phpStudy,啟動Apache成功。瀏覽器地址欄中輸入“http://localhost/5-3/index.php<?php?>:是PHP的標(biāo)記對,PHP代碼必須寫在PHP標(biāo)記符之間。echo是PHP的輸出語句,可以輸出字符串或變量值。PHP語句要以分號“;”結(jié)尾。5.4PHP基礎(chǔ)編程主講人:譚麗君微信小程序開發(fā)

5.4.1PHP變量、數(shù)據(jù)類型、常量

1.變量:其值可以改變的量稱為變量。PHP變量名:以$符號開頭,其后是變量的名稱。變量名稱必須以字母或下劃線開頭不能以數(shù)字開頭。變量名是區(qū)分大小寫的。約定變量名用小寫。php是一種弱類型的語言,使用變量前不用聲明變量,賦值時就是創(chuàng)建了變量。

5.4.1PHP變量、數(shù)據(jù)類型、常量

2.PHP常用數(shù)據(jù)類型(1)整型(integer):只能包含整數(shù)?!臼纠?-1】給一個變量賦值100,并輸出該變量的值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test1.php”。代碼運行效果①單行注釋格式://注釋內(nèi)容②多行注釋格式:/*注釋內(nèi)容*/運行phpStudy,啟動Apache成功。

5.4.1PHP變量、數(shù)據(jù)類型、常量

2.PHP常用數(shù)據(jù)類型(2)字符串型(string):使用雙引號"",或者單引號''包含的連續(xù)的字符序列,由數(shù)字、字母和符號組成?!臼纠?-2】給一個變量賦值”貴州歡迎您?。?!”,并輸出該變量的值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test2.php”。代碼運行效果運行phpStudy,啟動Apache成功。

5.4.1PHP變量、數(shù)據(jù)類型、常量

2.PHP常用數(shù)據(jù)類型(3)布爾型(boolean):只有兩個值,真(true)和假(false),其中true和false是PHP的內(nèi)部關(guān)鍵字?!臼纠?-3】給一個變量賦值true,并輸出該變量的值和數(shù)據(jù)類型。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test3.php”。運行效果var_dump()函數(shù),輸出變量的數(shù)據(jù)類型和值。運行phpStudy,啟動Apache成功。代碼

5.4.1PHP變量、數(shù)據(jù)類型、常量

2.PHP常用數(shù)據(jù)類型(4)浮點型(float):可以用來存儲整數(shù),也可以存儲小數(shù),它提供的精度比整數(shù)大得多?!臼纠?-4】給一個變量賦值3.56,并輸出該變量的值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test4.php”運行效果運行phpStudy,啟動Apache成功。代碼

5.4.1PHP變量、數(shù)據(jù)類型、常量

2.PHP常用數(shù)據(jù)類型(5)數(shù)組:數(shù)組是一組數(shù)據(jù)的集合,數(shù)組中的每個數(shù)據(jù)稱為一個數(shù)組元素。每個數(shù)組元素包括鍵名和值兩個部分,數(shù)組元素效果如下圖。元素的鍵名(key)可以是數(shù)字或字符串組成,元素的值(value)可以是任意類型。

5.4.1PHP變量、數(shù)據(jù)類型、常量

2.PHP常用數(shù)據(jù)類型(5)數(shù)組創(chuàng)建數(shù)組格式數(shù)組名=array(key=>value,...key=>value);代碼運行效果【示例5-5】定義一個數(shù)組,包含5個元素,該數(shù)組的鍵名是數(shù)字,先輸出該數(shù)組第一個元素的值,換行后,再輸出整個數(shù)組的所有元素鍵名和值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test5.php”。print_r():除了輸出基本數(shù)據(jù)類型的值,還可以輸出數(shù)組、對象的值。echo:只能輸出基本數(shù)據(jù)類型的值。運行phpStudy,啟動Apache成功。

5.4.1PHP變量、數(shù)據(jù)類型、常量

2.PHP常用數(shù)據(jù)類型(6)對象:是類的實例化,后面章節(jié)會詳細(xì)介紹。(7)空值:表示該變量沒有值,唯一的值就是null。

5.4.1PHP變量、數(shù)據(jù)類型、常量

3.PHP常量:常量的值在腳本中不能改變,不可再次對該常量進行賦值。自定義常量格式:define(“name”,value)name即常量名稱,value即常量的值。代碼運行效果【示例5-6】定義一個常量,并輸出該常量的值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test6.php”。運行phpStudy,啟動Apache成功。

5.4.2運算符和表達式1.算術(shù)運算包括加、減、乘、除、取余、自增、自減、對應(yīng)的運算符分別為+、-、*、/、%、++、--?!臼纠?-7】分別對2個變量進行幾種算術(shù)運算,并輸出結(jié)果。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test7.php”。運行效果代碼運行phpStudy,啟動Apache成功。2.關(guān)系運算關(guān)系(比較)運算符用于比較兩個值,包括:>、<、>=、<=、==(等于)、!=(不等于)、===(全等)、!==(全不等)。關(guān)系運算符的運算結(jié)果是布爾值(true或false)?!臼纠?-8】簡單關(guān)系運算后賦值給變量$a,并輸出變量$a值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test8.php”。代碼運行效果

5.4.2運算符和表達式

運行phpStudy,啟動Apache成功。3.邏輯運算符邏輯運算符包括&&或and(邏輯與)、||或or(邏輯或)、!(邏輯非)。邏輯運算符的運算結(jié)果,只有true或false兩個值。"邏輯與"運算即所有條件都為true,運算結(jié)果才為true。"邏輯或"運算即條件中只要有一個true,運算結(jié)果為true。"邏輯非"運算即取反,true變false,false變true?!臼纠?-9】簡單邏輯運算后賦值給變量,最后輸出變量的值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test9.php”。代碼運行效果

5.4.2運算符和表達式

運行phpStudy,啟動Apache成功。4.字符運算符連接字符的運算符,即英文的“.”,它將兩個字符串連接起來?!臼纠?-10】連接兩個字符串,并輸出值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test10.php”。代碼運行效果

5.4.2運算符和表達式

運行phpStudy,啟動Apache成功。5.賦值運算符PHP常用的賦值運算符如下表

5.4.2運算符和表達式

5.賦值運算符【示例5-11】賦值運算符演示。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test11.php”。代碼運行效果

5.4.2運算符和表達式

運行phpStudy,啟動Apache成功。6.三元運算符三元運算符可以提供簡單的邏輯判斷,語法格式如下:條件?結(jié)果1:結(jié)果2【示例5-12】三元運算符演示。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test12.php”。代碼運行效果

5.4.2運算符和表達式

運行phpStudy,啟動Apache成功。一、分支語句1.單分支語句:如果條件為真,就執(zhí)行這段代碼,否則就不執(zhí)行這段代碼。if(條件){ 條件成立時(為真時),要執(zhí)行的代碼;}【示例5-13】單分支語句演示。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test13.php”。代碼運行效果

5.4.3流程控制語句

運行phpStudy,啟動Apache成功。一、分支語句2.雙分支語句:條件為真時,執(zhí)行代碼段1;條件為假時,執(zhí)行代碼段2。if(條件){ 條件成立時(為真時),要執(zhí)行的代碼段1; }else{ 條件不成立時(為假時),要執(zhí)行的代碼段2; }【示例5-14】雙分支語句演示。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test14.php”。代碼運行效果

5.4.3流程控制語句

運行phpStudy,啟動Apache成功。一、分支語句3.多分支語句:用于多個條件判斷,不同的條件執(zhí)行不同的代碼.

5.4.3流程控制語句

語法格式【【示例5-15】多分支語句演示。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test15.php”。代碼運行效果運行phpStudy,啟動Apache成功。二、循環(huán)語句1.for循環(huán):如果滿足循環(huán)條件,就重復(fù)執(zhí)行同一段代碼塊。語法格式

5.4.3流程控制語句

(1)聲明一個變量,賦初始值;(2)判斷變量的值是否滿足條件表達式;(3)如果滿足條件,執(zhí)行循環(huán)語句代碼塊,如果不滿足條件,退出循環(huán);(4)如果滿足條件,執(zhí)行循環(huán)語句代碼塊后,變量自增或自減;(5)重復(fù)第2步,判斷變量的值是否滿足條件變達式。至條件不滿足時退出循環(huán)。for循環(huán)的執(zhí)行步驟二、循環(huán)語句1.for循環(huán):如果滿足循環(huán)條件,就重復(fù)執(zhí)行同一段代碼塊。

5.4.3流程控制語句

【示例5-16】輸出20遍“我愛我的祖國”。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test16.php”。運行效果代碼運行phpStudy,啟動Apache成功。二、循環(huán)語句2.foreach循環(huán):主要用于遍歷數(shù)組。有以下兩種語法格式

5.4.3流程控制語句

二、循環(huán)語句【示例5-17】定義一個數(shù)組,用foreach的第一種格式,輸出數(shù)組中每個元素的值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test17.php”。

5.4.3流程控制語句

2.foreach循環(huán):主要用于遍歷數(shù)組。運行效果代碼運行phpStudy,啟動Apache成功。二、循環(huán)語句【示例5-18】定義一個數(shù)組,用foreach的第二種格式,輸出數(shù)組中每個元素的值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test18.php”。

5.4.3流程控制語句

2.foreach循環(huán):主要用于遍歷數(shù)組。運行效果代碼運行phpStudy,啟動Apache成功。1.數(shù)組是一組數(shù)據(jù)的集合,數(shù)組中的每個數(shù)據(jù)稱為一個數(shù)組元素。數(shù)組元素包括鍵名和值兩部分。元素的鍵名可以是數(shù)字或字符串組成,元素的值可以是多種數(shù)據(jù)類型。2.數(shù)組分類:

5.4.4數(shù)組

數(shù)字索引數(shù)組關(guān)聯(lián)數(shù)組①數(shù)字索引數(shù)組:數(shù)組下標(biāo)(鍵名)只能由數(shù)字組成,默認(rèn)從0開始。②關(guān)聯(lián)數(shù)組:數(shù)組的鍵名可以是字符串或者是數(shù)值和字符串混合的形式。3.創(chuàng)建一維數(shù)組有以下兩種方法:

5.4.4數(shù)組

①使用array()函數(shù)創(chuàng)建數(shù)組,格式如下數(shù)組名=array(key=>value,...key=>value,);如果鍵名key是數(shù)值,可以用下列簡約格式:數(shù)組名=array(value,value,value,……);②使用數(shù)組名[]直接給數(shù)組元素賦值,格式如下數(shù)組名[key]=value;key表示鍵名,value表示值,鍵名key可以是數(shù)值,也可以是字符串。如果鍵名是字符串,該鍵名要加上單引號(')或者雙引號(")。3.創(chuàng)建一維數(shù)組:

5.4.4數(shù)組

【示例5-19】使用array()函數(shù)創(chuàng)建數(shù)組。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test19.php”。代碼運行效果運行phpStudy,啟動Apache成功。3.創(chuàng)建一維數(shù)組:

5.4.4數(shù)組

【示例5-20】使用數(shù)組名[]創(chuàng)建數(shù)組.代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test20.php”。運行效果代碼運行phpStudy,啟動Apache成功。3.創(chuàng)建一維數(shù)組:

5.4.4數(shù)組

使用array(),創(chuàng)建空數(shù)組使用數(shù)組名=[],創(chuàng)建空數(shù)組運行效果【示例5-21】分別使用兩種方法創(chuàng)建空數(shù)組。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test21.php”。代碼運行phpStudy,啟動Apache成功。4.創(chuàng)建二維數(shù)組

5.4.4數(shù)組

二維數(shù)組的元素是數(shù)組。二維數(shù)組的創(chuàng)建和使用與一維數(shù)組相同。一般從數(shù)據(jù)庫提取出來的數(shù)據(jù)都是關(guān)聯(lián)二維數(shù)組運行效果【示例5-22】使用array()函數(shù)創(chuàng)建二維數(shù)組。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test22.php”。代碼運行phpStudy,啟動Apache成功。4.創(chuàng)建二維數(shù)組

5.4.4數(shù)組

二維數(shù)組的元素是數(shù)組。二維數(shù)組的創(chuàng)建和使用與一維數(shù)組相同。一般從數(shù)據(jù)庫提取出來的數(shù)據(jù)都是關(guān)聯(lián)二維數(shù)組運行效果【示例5-23】使用數(shù)組名[]方法創(chuàng)建二維數(shù)組。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test23.php”。代碼運行phpStudy,啟動Apache成功。5.使用foreach遍歷二維數(shù)組

5.4.4數(shù)組

foreach(數(shù)組名as$value){...}運行效果【示例5-24】使用foreach遍歷二維數(shù)組,獲取整個二維數(shù)組的值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test24.php”。運行phpStudy,啟動Apache成功。代碼5.使用foreach遍歷二維數(shù)組

5.4.4數(shù)組

foreach(數(shù)組名as$value){...}運行效果【示例5-25】使用foreach遍歷二維數(shù)組,獲取某一列的值。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test25.php”。代碼運行phpStudy,啟動Apache成功。

5.4.5函數(shù)自定義函數(shù)

是獨立的一段代碼段。把一段實現(xiàn)特定功能的代碼段定義在函數(shù)中,程序員要執(zhí)行這個特定功能時,無需重復(fù)編寫相同的代碼,只要直接調(diào)用該函數(shù),即可實現(xiàn)特定的功能。2.函數(shù)的分類①系統(tǒng)內(nèi)置函數(shù)1.函數(shù)②自定義函數(shù)PHP內(nèi)部已經(jīng)預(yù)定義好的函數(shù),用戶可以直接使用用戶根據(jù)實際需要編寫的代碼段,自定義函數(shù)必須定義之后,才可以使用。

5.4.5函數(shù)自定義函數(shù)

3.定義函數(shù)的語法格式4.調(diào)用函數(shù)的語法格式return:可選項,如果有return,就將值返回,立即結(jié)束函數(shù)的運行。任何類型數(shù)據(jù)都可以返回,包括列表和對象。如果沒有return,就不返回值。function:必選項,聲明自定義函數(shù)的關(guān)鍵字函數(shù)名:必選項,要創(chuàng)建的函數(shù)名稱,函數(shù)命名與變量命名規(guī)則相同,但函數(shù)名不能以$開頭。參數(shù)1,參數(shù)2,...,參數(shù)n:可選項。

5.4.5函數(shù)自定義函數(shù)

【示例5-26】創(chuàng)建無參數(shù)的函數(shù),并調(diào)用。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test26.php”。運行效果代碼運行phpStudy,啟動Apache成功。

5.4.5函數(shù)自定義函數(shù)

【示例5-27】創(chuàng)建帶參數(shù)的函數(shù),并調(diào)用。代碼保存在“D:\phpstudy_pro\WWW\5-4”文件夾下,文件名為“test27.php”。運行效果代碼運行phpStudy,啟動Apache成功。5.5PHP面向?qū)ο笾髦v人:譚麗君微信小程序開發(fā)

5.5PHP面向?qū)ο?/p>

面向?qū)ο箝_發(fā)模式是當(dāng)今開發(fā)模式的主流,PHP面向?qū)ο蟮拈_發(fā)模式,是PHP能夠成為web開發(fā)領(lǐng)域主流語言的重要原因之一。采用面向?qū)ο箝_發(fā)模式,就是把現(xiàn)實的事物進行抽象,把現(xiàn)實的事物直接映射為開發(fā)的對象,例如可以設(shè)計一個Car類來表示現(xiàn)實中的汽車,這種方式非常直觀明了,也非常接近人們的正常思維。

5.5.1類和對象

1.類的定義是一種抽象的概念,是屬性和方法的集合,類是面向?qū)ο箝_發(fā)模式的核心和基礎(chǔ),類需要實例化才能變成對象。類就像是一個模板,對象就是按照這個模板生產(chǎn)出來的具體實物。語法格式如下2.定義類

5.5.1類和對象

3.對象的創(chuàng)建一個類可以實例化多個對象,每個對象都是獨立的,對象之間沒有任何聯(lián)系?!臼纠?-31】創(chuàng)建洗衣機類,在類中定義1個屬性和2個方法。實例化2個對象,并打印輸出這2個對象。代碼運行效果運行phpStudy,啟動Apache成功。

5.5.2訪問類中成員

類中包括成員屬性和成員方法,在對類實例化后,對象通過對象運算符,可以訪問類中的公有屬性和公有方法,即被關(guān)鍵字public修改的屬性和方法。語法格式如下1.對象運算符->:訪問類的屬性和方法

5.5.2訪問類中成員

【示例5-32】創(chuàng)建洗衣機類,在類中定義2個屬性和2個方法。實例化2個對象,并訪問為類的屬性和方法。代碼運行效果運行phpStudy,啟動Apache成功。

5.5.2訪問類中成員

2.”$this”的用法$this用來讀取類里面的屬性和方法。$this只指向當(dāng)前對象,表示對對象本身的引用。格式如下$this->屬性名;//注意屬性名前沒有”$”$this->方法();

5.5.2訪問類中成員

【示例5-33】示例”$this”的用法代碼運行效果運行phpStudy,啟動Apache成功。

5.5.3構(gòu)造函數(shù)

構(gòu)造函數(shù)是對象創(chuàng)建后第一個被對象自動調(diào)用的函數(shù),構(gòu)造函數(shù)適合在使用對象之前做一些初始化配置。構(gòu)造函數(shù)可以接受參數(shù),能夠在創(chuàng)建對象時賦值給對象屬性,構(gòu)造函數(shù)可以調(diào)用類方法或其他函數(shù)。構(gòu)造函數(shù)格式

5.5.3構(gòu)造函數(shù)

【示例5-34】示例構(gòu)造函數(shù)代碼運行效果運行phpStudy,啟動Apache成功。

5.5.4面向?qū)ο蟮睦^承

繼承:子類繼承并擁有父類的屬性和方法。使用關(guān)鍵字extends實現(xiàn)繼承關(guān)系。語法格式如下

5.5.4面向?qū)ο蟮睦^承

【示例5-35】示例繼承運行效果代碼運行phpStudy,啟動Apache成功。

5.5.5面向?qū)ο蟮亩鄳B(tài)

【示例5-36】示例多態(tài)運行效果多態(tài):子類繼承父類時,對父類方法可以繼承,也可以進行重寫,實現(xiàn)多種狀態(tài)。重寫即子類中的方法對父類中繼承的方法進行替換。方法重寫時,子類中創(chuàng)建與父類中相同的方法,包括方法名、參數(shù)和返回值類型。代碼運行phpStudy,啟動Apache成功。

5.5.6面向?qū)ο蟮姆庋b

封裝即把成員屬性和方法封裝到類中,隱藏屬性和方法。

對所有用戶公開,所有用戶都可以直接進行調(diào)用??梢栽诒绢惡妥宇愔姓{(diào)用和修改,其他地方不能調(diào)用。public公有類型protected受保護類型private私有類型只能在本類調(diào)用和修改,子類和外部對象不能調(diào)用。在屬性和方法聲明時,使用關(guān)鍵字public、protected或者private開頭,限定成員的訪問權(quán)限,將類中成員分為公共成員、保護成員和私有成員。

5.5.6面向?qū)ο蟮姆庋b

【示例5-37】示例受保護的變量運行效果代碼運行phpStudy,啟動Apache成功。

5.5.6面向?qū)ο蟮姆庋b

【示例5-38】示例私有變量運行效果代碼運行phpStudy,啟動Apache成功。

5.5.7"::"操作符

【示例5-39】調(diào)用父類中成員方法運行效果代碼"::"操作符又叫范圍解析符,用來對類屬性和方法設(shè)定范圍。操作符“::”的有以下三種使用方法:1.調(diào)用父類中成員變量、成員方法和常量運行phpStudy,啟動Apache成功。

5.5.7"::"操作符

2.調(diào)用當(dāng)前類中的靜態(tài)屬性/靜態(tài)方法/常量通過static關(guān)鍵字修飾的成員屬性稱為靜態(tài)屬性,靜態(tài)屬性不屬于任何一個對象,而只屬于該類本身,當(dāng)前類中不能使用$this->調(diào)用靜態(tài)屬性,當(dāng)前類中只能使用self::調(diào)用靜態(tài)屬性。通過static關(guān)鍵字修飾的成員方法稱為靜態(tài)方法,可以通過對象調(diào)用靜態(tài)方法,也可以通過類調(diào)用靜態(tài)方法.(1)靜態(tài)屬性(2)靜態(tài)方法

5.5.7"::"操作符

【示例5-40】調(diào)用靜態(tài)屬性運行效果代碼運行phpStudy,啟動Apache成功。

5.5.7"::"操作符

【示例5-41】通過對象調(diào)用類中的靜態(tài)方法運行效果代碼運行phpStudy,啟動Apache成功。

5.5.7"::"操作符

3.調(diào)用類的靜態(tài)屬性、靜態(tài)方法、常量通過static關(guān)鍵字修飾的靜態(tài)成員,不屬任何對象的限制,所以可以不通過類的實例化直接引用類中的靜態(tài)方法?!臼纠?-42】不通過類的實例化,直接引用類中的靜態(tài)方法運行效果代碼運行phpStudy,啟動Apache成功。

5.5.8抽象類和抽象方法

1.抽象類:是一種不能被實例化的類,只能作為其他類的父類使用。抽象類聲明語法格式如下:2.抽象方法:沒有方法體,子類必須重寫父類中的抽象方法。抽象方法語法格式如下:★抽象類使用abstract關(guān)鍵字來聲明,★抽象類和普通類相似,包含成員變量、成員方法。區(qū)別在于,抽象類至少要包含一個抽象方法?!锍橄蠓椒ㄊ褂胊bstract關(guān)鍵字來聲明?!锍橄蠓椒ê竺姹仨氁蟹痔枴?”。

5.5.8抽象類和抽象方法

【示例5-43】聲明一個容器抽象類,該類中定義一個形狀屬性和用途抽象方法,分別聲明杯子類和箱子類繼承容器類,并重寫用途方法,實例化杯子和箱子類,分別調(diào)用用途方法。實例化容器類,會報錯。運行效果代碼運行phpStudy,啟動Apache成功。5.6Thinkphp6.0框架主講人:譚麗君微信小程序開發(fā)

5.6.1Thinkphp6.0框架基礎(chǔ)

1.ThinkPHP6.0ThinkPHP是一個快速、簡單、免費開源的、面向?qū)ο蟮妮p量級國產(chǎn)PHP開發(fā)框架,是為了WEB應(yīng)用開發(fā)而誕生的。用ThinkPHP開發(fā)項目,就想搭積木一樣,非常方便,不再重復(fù)造輪子,規(guī)范開發(fā)流程、降低開發(fā)難度、提高開發(fā)效率。目前ThinkPHP最新版本是6.0。

5.6.1Thinkphp6.0框架基礎(chǔ)

2.ThinkPHP6.0安裝本教程素材庫中,shop目錄里已經(jīng)安裝好ThinkPHP6.0,在前面5.1章節(jié)中,已經(jīng)把shop目錄所有內(nèi)容復(fù)制到d:/phpstudy_pro/www文件夾下。shop目錄就是本教程的點餐小程序的項目目錄。

5.6.1Thinkphp6.0框架基礎(chǔ)

vendor目錄:是存放框架源碼的位置,在vendor/topthink/src/think目錄下存放的就是框架源碼。app目錄:是應(yīng)用目錄,保存用戶正在開發(fā)的應(yīng)用。config目錄:是整個框架的配置目錄,該目錄里的database.php文件,對數(shù)據(jù)庫進行配置。public目錄:WEB目錄(對外訪問目錄)。該目錄里的index.php文件是入口文件。route目錄:是用戶自定義的路由。controller控制器目錄model模型目錄common.php公共函數(shù)文件3.ThinkPHP6.0目錄結(jié)構(gòu)

5.6.1Thinkphp6.0框架基礎(chǔ)

【示例5-45】在d:\phpstudy_pro\www\app\Controller\Test.php里面定義接口函數(shù)index,該函數(shù)功能是打印6個8。代碼為域名index.php為入口文件,是整個Web應(yīng)用的起點。Test為控制器名,即類文件名。index為操作方法名,即函數(shù)名。運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫,啟動Apache和MySQL成功。運行效果

5.6.2ThinkPHP6.0請求

當(dāng)瀏覽器向Web服務(wù)器發(fā)出請求時,它向服務(wù)器傳遞了數(shù)據(jù),也就是請求信息。在Thinkphp6.0中,獲取請求對象數(shù)據(jù),是由think\Request類負(fù)責(zé),通過Request對象完成全局輸入變量的檢測、獲取和安全過濾。支持$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系統(tǒng)變量,以及文件上傳信息。要使用請求對象必須使用門面方式(think\facade\Request類負(fù)責(zé))調(diào)用。運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫,啟動Apache和MySQL成功。

5.6.2ThinkPHP6.0請求

1.獲取當(dāng)前域名【示例5-46】:在d:\phpstudy_pro\www\shop\app\Controller\Test.php里面定義接口函數(shù)test1,代碼運行效果

5.6.2ThinkPHP6.0請求

如果只需要獲取當(dāng)前請求的部分參數(shù),采用only方法能夠安全的獲取需要的變量。Request::only(['參數(shù)']);2.獲取部分變量示例:只獲取當(dāng)前請求的id變量Request::only(['id']);

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

查詢構(gòu)造器(querybuilder)提供方便、流暢的接口,可以有效的提高數(shù)據(jù)存取的代碼清晰度和開發(fā)效率。一、查詢數(shù)據(jù)1.單條數(shù)據(jù)查詢find如果查詢結(jié)果不存在,返回null,否則返回結(jié)果為數(shù)組。格式:Db::name('表名')->field('字段名1,字段名2...')->where('字段名','查詢表達式','查詢條件')->find();①數(shù)據(jù)庫操作統(tǒng)一入口:Db::②name('表名'):用于定義要操作的數(shù)據(jù)表名稱③field('字段名1,字段名2...'):設(shè)置查詢字段列表④where('字段名','查詢表達式','查詢條件'):查詢表達式為等于(=)時,可以省略等于(=)⑤在數(shù)據(jù)庫配置文件database.php中,設(shè)置了數(shù)據(jù)庫表前綴,在PHP代碼中表名就可以不寫前綴了。

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

【示例5-47】:在d:\phpstudy_pro\www\shop\app\Controller\Test.php文件里,定義接口函數(shù)demo1,查詢點餐小程序shop數(shù)據(jù)庫hr_goods商品表中id為1的記錄,并且只查看id、title和price字段,并打印輸出。商品表中數(shù)據(jù)如下圖5-67所示,代碼如下。運行效果代碼運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫,啟動Apache和MySQL成功。

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

2.多條數(shù)據(jù)查詢select【示例5-48】:定義接口函數(shù)demo2,查詢點餐小程序shop數(shù)據(jù)庫hr_goods商品表記錄,并且按照價格降序排列,并打印輸出。代碼select方法查詢結(jié)果是一個二維數(shù)組,如果結(jié)果不存在,返回空數(shù)組。Db::name('表名')->field('字段名1,字段名2…')->where('字段名','查詢表達式','查詢條件')->order('字段desc')->select();降序排列方法:order('字段desc')升序排列方法:order('字段名asc')運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫啟動Apache和MySQL成功。運行效果

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

(1)toArray()

select方法查詢結(jié)果是一個數(shù)據(jù)集對象,如果需要轉(zhuǎn)換為數(shù)組可以使用toArray()Db::name('表名')->field('字段名1,字段名2…')->where('字段名','查詢表達式','查詢條件')->order('字段desc')->select()->toArray();【示例5-49】:定義接口函數(shù)demo3,查詢點餐小程序shop數(shù)據(jù)庫hr_goods商品表記錄,把查詢結(jié)果轉(zhuǎn)換成數(shù)組,并用foreach循環(huán)遍歷出來。代碼運行效果運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫,啟動Apache和MySQL成功。

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

(2)array_column()返回數(shù)組中某個單一列的值。

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

【示例5-50】:定義接口函數(shù)demo4,查詢點餐小程序shop數(shù)據(jù)庫hr_goods商品表記錄,把查詢結(jié)果轉(zhuǎn)換成數(shù)組,取出數(shù)組中price列,用"id"列作為鍵名。代碼如下代碼運行效果運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫.啟動Apache和MySQL成功。

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

二、添加數(shù)據(jù)1.insert方法:添加一條記錄insert方法添加數(shù)據(jù)成功返回添加成功的條數(shù),通常情況返回1。Db::name('表名')->insert($data);注意:要先給$data賦值代碼運行效果【示例5-51】:定義接口函數(shù)demo5,給點餐小程序shop數(shù)據(jù)庫hr_goods商品表添加1條記錄,添加成功,輸出影響的記錄數(shù)。運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫,啟動Apache和MySQL成功。

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

2.insertGetId方法:新增數(shù)據(jù)并返回主鍵值。Db::name('表名')->insertGetId($data);注意:要先給$data賦值【示例5-52】:定義接口函數(shù)demo6,給點餐小程序shop數(shù)據(jù)庫hr_goods商品表添加1條記錄,添加成功,輸出影響新增記錄的主鍵值。運行效果代碼運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫啟動Apache和MySQL成功。

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

3.insertAll方法:添加多條數(shù)據(jù),添加數(shù)據(jù)成功返回添加成功的條數(shù)Db::name('表名')->insertAll($data);注意:要先給$data賦值【示例5-53】:定義接口函數(shù)demo7,給點餐小程序shop數(shù)據(jù)庫hr_goods商品表添加3條記錄,添加成功,輸出影響的記錄數(shù)。代碼運行效果運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫。啟動Apache和MySQL成功。

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

三、修改數(shù)據(jù)updateupdate方法返回影響數(shù)據(jù)的條數(shù),如果沒修改任何數(shù)據(jù),則返回0。格式:Db::name('表名')->where(條件)->update($data);注意:要先給$data賦值【示例5-54】:定義接口函數(shù)demo8,把點餐小程序shop數(shù)據(jù)庫hr_goods商品表中id為10的記錄中price值改為20,修改成功,輸出影響的記錄數(shù)。運行效果代碼運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫。啟動Apache和MySQL成功。

5.6.3使用查詢構(gòu)造器操作數(shù)據(jù)庫

四、刪除數(shù)據(jù)delete返回影響數(shù)據(jù)的條數(shù),如果沒有刪除,則返回0。Db::name('表名')->where(條件)->delete();【示例5-55】:定義接口函數(shù)demo9,給點餐小程序shop數(shù)據(jù)庫中hr_goods商品表中刪除price字段小于30的記錄,刪除成功,輸出影響的記錄數(shù)。運行效果代碼運行phpStudy,創(chuàng)建網(wǎng)站,域名,導(dǎo)入點餐數(shù)據(jù)庫。啟動Apache和MySQL成功。

5.6.4ThinkPHP6.0模型

1.ThinkPHP6.0模型的基本概念把傳統(tǒng)的數(shù)據(jù)庫進行面向?qū)ο蟮姆庋b,數(shù)據(jù)庫中每一個表對應(yīng)一個模型類,類文件就是PHP文件,數(shù)據(jù)庫表里的每一條記錄對應(yīng)一個模型對象,數(shù)據(jù)庫表里每一個字段對應(yīng)模型中的屬性??梢杂妹嫦?qū)ο蟮姆绞剑褂媚P皖悂聿僮鲾?shù)據(jù)表。一張簡單的表對應(yīng)模型

5.6.4ThinkPHP6.0模型

2.TP6模型類的創(chuàng)建(1)創(chuàng)建一個跟控制器平級的目錄,目錄名:model(2)在model目錄里創(chuàng)建模型類,模型類名必須與數(shù)據(jù)庫同名,類名用駝峰法命名

5.6.4ThinkPHP6.0模型

2.TP6模型類的創(chuàng)建示例:創(chuàng)建微信小程序中訂單表模型類Order示例:創(chuàng)建微信小程序中訂單商品表模型類OrderGoods

5.6.4ThinkPHP6.0模型

3.模型關(guān)聯(lián):通過模型關(guān)聯(lián)操作把數(shù)據(jù)表的關(guān)聯(lián)關(guān)系對象化,避免在模型內(nèi)部使用復(fù)雜的join查詢和視圖查詢。更高效的操作數(shù)據(jù)。

hasOne('關(guān)聯(lián)模型類名','外鍵','主鍵');hasMany('關(guān)聯(lián)模型類名','外鍵','主鍵');hasOne:有一個hasMany:有很多belongsTo:屬于hasMany('關(guān)聯(lián)模型類名');常見的3種表與表的關(guān)系,hasOne、hasMany、belongsTo。關(guān)聯(lián)模型(必選):關(guān)聯(lián)模型類名外鍵(可選):默認(rèn)的外鍵規(guī)則是當(dāng)前模型名(不含命名空間,下同)+_id主鍵(可選):當(dāng)前模型主鍵,默認(rèn)會自動獲取也可以指定傳入6.1

Base.php文件主講人:譚麗君微信小程序開發(fā)

1.Base.php文件功能

定義全局?jǐn)?shù)據(jù)和公用的方法。

2

Base.php文件代碼框架

序號代碼塊說明

(1)declare(strict_types=1);namespaceapp\controller;useapp\common\controller\Controller;申明嚴(yán)格模式定義命名空間使用類

(2)classBaseextendsController{protected$imagePath;//__construct函數(shù)//resultJson(

)函數(shù)

//resultSuccess()函數(shù)

//resultError()函數(shù)

}定義Base類定義圖片根域名變量定義構(gòu)造函數(shù)定義resultJson函數(shù)定義resultSuccess函數(shù)定義resultError函數(shù)3.

Base類中定義的成員函數(shù)序號Base類中定義的函數(shù)函數(shù)功能①publicfunction__construct(\think\App$app){//繼承父類的構(gòu)造函數(shù):parent::__construct($app);//獲取域名$t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論