第一篇:傳智播客PHP教程.zend.framework視頻教程簡(jiǎn)介
[視頻簡(jiǎn)介:]
本教程貫穿了兩個(gè)軟件公司常用的兩個(gè)項(xiàng)目,數(shù)據(jù)采集系統(tǒng)和購(gòu)物車(chē),共分20講,全面細(xì)致的講解了如何正確的使用zend framework框架到網(wǎng)站開(kāi)發(fā)中,zend framework 是官方推薦的PHP mvc框架,功能強(qiáng)大,后勁十足,也正是它太強(qiáng)大了,所以很多PHP程序員對(duì)它望而生畏,不敢去學(xué)習(xí)掌握它,真的有那么難嗎? 呵呵,看完本教程你就會(huì)發(fā)現(xiàn),喔!不過(guò)如此。
韓老師這套zf視頻教程是目前市面上講解最全面的zend framework視頻教程,從本質(zhì)上深入淺出的分析了zend framework運(yùn)行原理。
韓順平老師從事多年的軟件開(kāi)發(fā)和培訓(xùn)教學(xué),非常清楚那些容易使新手困惑的問(wèn)題,在學(xué)習(xí)過(guò)程中會(huì)碰到的攔路虎,韓老師結(jié)合了多年實(shí)際開(kāi)發(fā)與教學(xué)經(jīng)驗(yàn),收集了眾多學(xué)員在學(xué)習(xí)中常提到的問(wèn)題,對(duì)平時(shí)講課的內(nèi)容進(jìn)行了精心整理。讀者從本視頻中不僅可以學(xué)習(xí)到zend framework框架本身方面的知識(shí),還能學(xué)到了許多編程思想和實(shí)際操作手法,仿佛韓老師在你面前進(jìn)行現(xiàn)場(chǎng)演示一樣。本視頻不僅全面的介紹了zend framework本身,最重要還交會(huì)讀者去掌握編程思想,找到編程感覺(jué),而不是死記硬背語(yǔ)言本身,視頻中涉及到的應(yīng)用問(wèn)題分析,遠(yuǎn)遠(yuǎn)超了一個(gè)PHP程序員在學(xué)習(xí)和應(yīng)用zend framework過(guò)程中所有可能碰到的問(wèn)題。
本視頻不僅講概念,講怎么做,還告訴讀者為什么;不僅講操作技能,還貫穿一些系統(tǒng)的理論,這樣讀者才不至于不明不白,或是似乎明白,但不知道具體該怎么干。本視頻一步步引導(dǎo)讀者深入,使讀者輕松愉快、興趣盎然、水到渠成、潛移默化地掌握PHP編程及許多其他的軟件開(kāi)發(fā)思想。
[聲明:]
本課程是由傳智播客韓順平老師錄制,任何人不能用此教程牟利,違者必究。但是:在不收取其他人費(fèi)用的前提下,您可以自由的分發(fā)此視頻教程。
[聯(lián)系我們:]
在學(xué)習(xí)過(guò)程中如果遇到問(wèn)題可以通過(guò)以下聯(lián)系方式與我們?nèi)〉寐?lián)系,另外還有更多傳智播客PHP內(nèi)部視頻見(jiàn):
網(wǎng)址:http://php.itcast.cn 或者 http://
電話(huà):010-51552111E-mail:hsp@itcast.cn
第二篇:傳智播客 PHP程序員筆記第一天
做網(wǎng)站 Web程序。
需要制作一臺(tái)可以在網(wǎng)絡(luò)上被別人訪(fǎng)問(wèn)到的機(jī)器。
安裝了瀏覽器的計(jì)算機(jī):
browser端 能夠提供網(wǎng)絡(luò)資源的計(jì)算機(jī):(網(wǎng)站在這臺(tái)計(jì)算機(jī)上),能夠提供某種服務(wù)。Server端。
B/S是什么意思? 瀏覽器/服務(wù)器的架構(gòu):
請(qǐng)求:瀏覽器端向服務(wù)器端發(fā)送數(shù)據(jù)。Request 響應(yīng):服務(wù)器向?yàn)g覽器端發(fā)送數(shù)據(jù)?;貞?yīng),Response
什么樣的計(jì)算機(jī)叫做服務(wù)器端? 安裝了服務(wù)器軟件的計(jì)算機(jī)。
Web服務(wù)器軟件:iis,nginx,apache。
其中apache還是目前與php配合使用最多的服務(wù)器軟件:
安裝apache這個(gè)軟件,使jsj成為一臺(tái)web服務(wù)器。
http:// Apache的默認(rèn)的文檔目錄 apache的安裝目錄下/htdocs/
什么是靜態(tài)網(wǎng)站,動(dòng)態(tài)網(wǎng)站?
靜態(tài),網(wǎng)站上所有的內(nèi)容,都是由靜態(tài)頁(yè)面提供的。
動(dòng)態(tài):網(wǎng)站的內(nèi)容,是來(lái)源于某個(gè)數(shù)據(jù)源(數(shù)據(jù)庫(kù),互聯(lián)網(wǎng)),而,在需要展示某些數(shù)據(jù)時(shí),通過(guò)某種語(yǔ)言,將數(shù)據(jù)從數(shù)據(jù)源內(nèi)提取,然后再展示到頁(yè)面上。
如果需要做動(dòng)態(tài)網(wǎng)站,需要
1,數(shù)據(jù)源(數(shù)據(jù)庫(kù))mysql數(shù)據(jù)庫(kù)
2,某種語(yǔ)言(用于提取和展示數(shù)據(jù)之用)PHP
Amp開(kāi)發(fā):
利用apache作為web服務(wù)器,使別人可以訪(fǎng)問(wèn)到我們的網(wǎng)站 利用mysql作為數(shù)據(jù)源,可以保存動(dòng)態(tài)網(wǎng)站所需要的數(shù)據(jù) 利用php來(lái)獲得某個(gè)操作所需要的數(shù)據(jù)。
小測(cè)試: 輸出1-100 編寫(xiě)php文件:
訪(fǎng)問(wèn)這個(gè)php文件:
發(fā)現(xiàn),可以訪(fǎng)問(wèn)到,但是不能解析。
Apache只有提供被訪(fǎng)問(wèn)的功能,而不能提供解析php代碼的功能。
因此需要安裝php程序,提供解析php代碼的功能:
安裝PHP:
所有的請(qǐng)求都是web服務(wù)器來(lái)接收的(apache),但是其中某些資源需要php來(lái)處理。通常的處理方式,是將php作為apache內(nèi)部的一個(gè)模塊來(lái)管理的。
將php安裝成apache模塊:
使用一個(gè)apache的指令,loadModule來(lái)完成:
解壓php的安裝包:
不需要安裝可以直接執(zhí)行 將php軟件復(fù)制到相應(yīng)的目錄: E:/amp/php
由于不需要安裝,目錄內(nèi)的可執(zhí)行文件直接可以使用:
在php目錄內(nèi),有個(gè)文件,就是php為apache提供的apache模塊:
需要使用apache的LoadModule載入這個(gè)模塊即可:
需要在apache的配置文件內(nèi),使用上面的LoadModule指令: apache的配置文件在 apache的安裝目錄/Conf/httpd.conf
增加如下指令即可:
修改配置文件后,需要重啟動(dòng)apache服務(wù)才可以:
配置apache,告知apache,哪樣的前請(qǐng)求需要調(diào)用php來(lái)解析,而哪些不需要: 通過(guò)請(qǐng)求的資源的后綴名
使用apache的FilesMatch指令來(lái)完成: 當(dāng)匹配到php后綴時(shí),調(diào)用php來(lái)處理: Apache的配置文件內(nèi):
請(qǐng)求php文件時(shí),php代碼可以執(zhí)行:
大家可以使用phpinfo()函數(shù)來(lái)測(cè)試以下,當(dāng)前的php運(yùn)行的環(huán)境:
安裝php后,需要配置一些最基本的配置項(xiàng): 修改php的配置文件: Php的安裝目錄/php.ini
根據(jù)需要,將相應(yīng)的更改成php.ini即可:
由于php作為apache一個(gè)模塊,因此需要告知apache,在哪里才能找到php的配置文件。利用apache的指令PhpIniDir來(lái)完成:
修改配置文件,達(dá)到某些目的:
1,時(shí)區(qū)
2, php擴(kuò)展文件的目錄。Php的很多功能,并不是內(nèi)置到php的軟件內(nèi)的。在需要使用某個(gè)功能時(shí),再載入即可。這個(gè)擴(kuò)展的功能文件是被保存到某個(gè)目錄內(nèi)的,稱(chēng)之為php的擴(kuò)展目錄: Extension_dir:
修改完了php的配置,也需要重啟apache才能生效
如果我們的php需要操作數(shù)據(jù)的話(huà),需要利用數(shù)據(jù)軟件了。安裝Mysql。
1,安裝 2,配置
配置mysql的安裝目錄,和mysql數(shù)據(jù)的保存目錄:
安裝完成時(shí),勾選運(yùn)行配置向?qū)?,完成配置的過(guò)程:
配置字符集:
簡(jiǎn)單介紹Mysql: 數(shù)據(jù)庫(kù)服務(wù)器:
屬于server端。因此,需要等待某個(gè)程序請(qǐng)求他才可以運(yùn)行。
能夠?qū)ysql數(shù)據(jù)庫(kù)服務(wù)器發(fā)出請(qǐng)求的我們稱(chēng)之為mysql客戶(hù)端。
C/S Client客戶(hù)端
Server服務(wù)器
在安裝完mysql后,其實(shí)安裝了2個(gè)軟件1,mysql的服務(wù)器端,2,mysql的客戶(hù)端。
我們需要使用php來(lái)操作mysql。
其實(shí) 在php操作mysql的過(guò)程中,php就變成了 mysql的客戶(hù)端。
Php能夠作為mysql的客戶(hù)端,使用php的php_mysql.dll這個(gè)擴(kuò)展完成,而且,這個(gè)擴(kuò)展不是默認(rèn)開(kāi)啟的。
開(kāi)啟相應(yīng)的mysql的操作擴(kuò)展,利用php的指令extension來(lái)完成。Php.ini:
B/S C/S
1,服務(wù)器在監(jiān)聽(tīng)(運(yùn)行),提供某個(gè)服務(wù)
2,瀏覽器或者客戶(hù)端,對(duì)服務(wù)器發(fā)出請(qǐng)求。在發(fā)送請(qǐng)求時(shí),請(qǐng)求的數(shù)據(jù)一定要按照某種數(shù)據(jù)格式才可以。數(shù)據(jù)格式在網(wǎng)絡(luò)數(shù)據(jù)傳輸時(shí)稱(chēng)之為網(wǎng)絡(luò)協(xié)議。3,服務(wù)器接收到請(qǐng)求后,會(huì)根據(jù)請(qǐng)求數(shù)據(jù),進(jìn)行相應(yīng)的操作。4,將處理好的結(jié)果返回給瀏覽器(客戶(hù)端),回應(yīng)。Response 5,瀏覽器端(客戶(hù)端)對(duì)回應(yīng)的數(shù)據(jù)進(jìn)行展示輸出,b/s 都是用瀏覽器發(fā)出請(qǐng)求的。
http https c/s架構(gòu),都是采用某個(gè)服務(wù)專(zhuān)用的客戶(hù)端發(fā)出的請(qǐng)求。
Bs架構(gòu)通常,任何兩次請(qǐng)求回應(yīng)周期是沒(méi)有任何聯(lián)系的。在發(fā)出請(qǐng)求時(shí),都需要先建連接。
Cs通常,在連接一次之后,通常就會(huì)保持住這個(gè)連接,后續(xù)的操作,就不需要再次建立連接了。
PHP與apache聯(lián)系:
1,php作為apache的模塊而存在。loadModule 2,web服務(wù)器與php之間通過(guò) CGI方式產(chǎn)生聯(lián)系。CGI(通用網(wǎng)關(guān)接口),IIS+PHP?,F(xiàn)在CGI被fastCGI。Nginx+PHP
apache的虛擬主機(jī):
通常一個(gè)web服務(wù)器,代理的是一個(gè)網(wǎng)站。
有時(shí)我們需要利用一個(gè)web服務(wù)器,管理多個(gè)站點(diǎn)。不同的站點(diǎn)擁有獨(dú)立的域名。
通過(guò)配置apache服務(wù)器,達(dá)到,訪(fǎng)問(wèn)
Test.kang.com時(shí),看到的是test目錄的內(nèi)容。Shop.kang.com時(shí),看到的是shop目錄的內(nèi)容
Apache的基于域名的虛擬主機(jī)技術(shù):
主機(jī):一個(gè)網(wǎng)站,就是一些php文件的集合,一個(gè)保存php文件的目錄 域名:指向某個(gè)網(wǎng)站的名稱(chēng)。
通過(guò)修改apache配置文件達(dá)到效果:
Apache/comf/httpd.conf 原則上在這個(gè)配置文件內(nèi)寫(xiě)虛擬主機(jī)的配置就可以了。但是通常我們都是將虛擬主機(jī)的配置寫(xiě)到某個(gè)單獨(dú)的配置文件內(nèi),然后將這個(gè)虛擬主機(jī)配置文件再載入到apache的這個(gè)httpd.conf配置文件內(nèi)。引入的操作:
虛擬主機(jī)的專(zhuān)門(mén)的配置文件:
編輯這個(gè)虛擬主機(jī)文件,增加虛擬主機(jī):
在配置文件內(nèi),每一個(gè)
域名和目錄是一個(gè)虛擬虛擬主機(jī)最基本的必備元素。
完成以上的操作,apache配置已經(jīng)完成,apache上已經(jīng)存在兩個(gè)虛擬主機(jī)了:
在配置了虛擬主機(jī)之后,我們對(duì)web服務(wù)器的默認(rèn)訪(fǎng)問(wèn)(沒(méi)有使用配置的虛擬主機(jī)域名的訪(fǎng)問(wèn)),都會(huì)訪(fǎng)問(wèn)到默認(rèn)的主機(jī)上。
默認(rèn)的主機(jī):
1,在配置了虛擬主機(jī)后:默認(rèn)的主機(jī)就是 第一個(gè)配置的虛擬主機(jī) 2,在沒(méi)有配置虛擬主機(jī)時(shí),是htdocs目錄。
那么怎么才能在使用虛擬主機(jī)的前提下,讓localhost訪(fǎng)問(wèn)到原來(lái)的htdocs?
如何能夠通過(guò)在瀏覽器上輸入相應(yīng)的虛擬主機(jī)域名訪(fǎng)問(wèn)到我們的虛擬主機(jī)呢? 在瀏覽器端,需要通過(guò)相應(yīng)的域名,解析成目標(biāo)服務(wù)器的ip地址才可以。
可以通過(guò)過(guò)瀏覽器端操作系統(tǒng)上自帶的 域名解析文件完成。Hosts
配置虛擬主機(jī)時(shí),常用的配置:
目錄的權(quán)限的配置
利用apache的directory指令段完成配置 看 httpd.conf的配置:
目錄級(jí)別的配置,對(duì)當(dāng)前目錄,及其后代目錄有效果。
如果在apache的配置文件內(nèi),沒(méi)有對(duì)某個(gè)目錄進(jìn)行配置,則采用默認(rèn)的目錄配置
可以通過(guò)修改默認(rèn)的配置達(dá)到目的,但是通常是針對(duì)目錄進(jìn)行單獨(dú)配置: 增加一個(gè) Directory指令段:
為了將目錄與虛擬主機(jī)聯(lián)系起來(lái),通常在VirtualHost內(nèi),使用Directory指令 Conf/extra/httpd-vhosts.conf
直接訪(fǎng)問(wèn)目錄的配置:
在訪(fǎng)問(wèn)目錄時(shí),先檢測(cè)當(dāng)前目錄是否配置了目錄索引頁(yè),如果配置了索引頁(yè),則展示索引頁(yè)的內(nèi)容。目錄的索引頁(yè)使用apache的指令 directoryIndex完成配置。這個(gè)指令是可以寫(xiě)到directory段內(nèi)。
如果沒(méi)有配置目錄索引頁(yè):則需要將目錄的的內(nèi)容以列表的形式顯示出來(lái),但是是通過(guò)配置apache的指令options加以配置,是否可以顯示目錄的索引列表。
可以在配置 options時(shí) 增加上允許符號(hào)連接的配置:
Apache的配置文件系統(tǒng):
Apache程序,只會(huì)在apache服務(wù)器啟動(dòng)時(shí),讀取apache配置文件的內(nèi)容,稱(chēng)之為apache主配置文件。
一旦配置文件的語(yǔ)法出錯(cuò),就會(huì)導(dǎo)致apache服務(wù)器啟動(dòng)失敗,提示:
Apache提供一個(gè)apache的配置文件檢查的功能:
也可以通過(guò) cmd,命令行運(yùn)行:
Apache還有一個(gè)配置文件,稱(chēng)之為apache的分布式配置文件,apache允許在某個(gè)目錄內(nèi)部,使用獨(dú)立的配置文件,來(lái)配置當(dāng)前目錄及其后代目錄的中的一些設(shè)置。但是此時(shí)配置文件名稱(chēng),就不是httpd.conf了 而是.htaccess
在這個(gè).htaccess配置文件中配置的內(nèi)容,只能是目錄級(jí)別的配置。
但是默認(rèn)情況下,分布式配置文件是不可以使用的。可以通過(guò)在主配置文件中使用apache的 Allowoverride指令加以配置。由于分布式配置文件是配置目錄的,因此 allowoverride也是需要寫(xiě)到Directory段。
分布式與主配置文件的區(qū)別:
1,主配置文件需要保存到Conf目錄中,而分布式需要保存到所有需要配置的目錄中
2,主配置文件只要在apache啟動(dòng)時(shí),才讀取,而分布式配置文件,在apache訪(fǎng)問(wèn)到某個(gè)目錄時(shí)都會(huì)讀取一次。
作業(yè)
1,每個(gè)人配置一個(gè)虛擬主機(jī): 域名是 test.ip.com Test.100.com
2,在test.ip.com上增加一個(gè)表單頁(yè)面 Welcome.html頁(yè)面
最好在表單提交時(shí),驗(yàn)證姓名不能為空,為空給出提示,不能提交。
分析上面的例子:
發(fā)生了幾次請(qǐng)求和回應(yīng)的過(guò)程。
第三篇:傳智播客PHP教學(xué)之PHP基本語(yǔ)法
PHP基本語(yǔ)法
36講 PHP基本語(yǔ)法介紹 PHP數(shù)據(jù)類(lèi)型介紹.............................................................................2 37講 整型細(xì)節(jié)說(shuō)明........................................................................................................................3 38講 布爾細(xì)節(jié) 浮點(diǎn)數(shù)細(xì)節(jié) 字符串細(xì)節(jié) 算術(shù)運(yùn)算符①..........................................................4 39講 算術(shù)運(yùn)算符② 比較運(yùn)算符 邏輯運(yùn)算符............................................................................5 40講 三元運(yùn)算符 類(lèi)型運(yùn)算符 運(yùn)算符優(yōu)先級(jí)............................................................................9 41講 順序控制 分支控制(if ifelse switch)程序流程圖............................................................10 42講 循環(huán)控制①(for)..................................................................................................................15 43講 循環(huán)控制②(while dowhile)打印金字塔案例..................................................................16 45講 break語(yǔ)句 continue語(yǔ)句 常量.........................................................................................19 46講 函數(shù)基本概念 函數(shù)快速入門(mén)............................................................................................22 47講 函數(shù)使用 函數(shù)調(diào)用初步理解............................................................................................25 48講 函數(shù)調(diào)用深入理解 函數(shù)使用注意事項(xiàng)①........................................................................26 49講 函數(shù)使用注意事項(xiàng)② 函數(shù)作業(yè)布置................................................................................29 50講 函數(shù)再回顧 自定義函數(shù)....................................................................................................30 51講 位運(yùn)算①.............................................................................................................................31 52講 位運(yùn)算②.............................................................................................................................32 53講 數(shù)組介紹 數(shù)組的創(chuàng)建 數(shù)組的遍歷..................................................................................34 54講 數(shù)組的引用 數(shù)組使用細(xì)節(jié)①............................................................................................36 55講 數(shù)組使用細(xì)節(jié)② 數(shù)組運(yùn)算符 數(shù)組作業(yè)評(píng)講① 數(shù)組小結(jié)............................................38 56講 排序介紹 冒泡排序............................................................................................................40 57講 選擇排序 插入排序 快速排序..........................................................................................42 58講 順序查找 二分查找............................................................................................................44 59講 多維數(shù)組 數(shù)組作業(yè)評(píng)講②................................................................................................46
36講 PHP基本語(yǔ)法介紹 PHP數(shù)據(jù)類(lèi)型介紹
更新時(shí)間:2012年11月02日16時(shí)44分 來(lái)源: 1.1
單行注釋 // #
php的基本語(yǔ)法加強(qiáng) Parse : 解析 error : 錯(cuò)誤 syntax : 語(yǔ)法
①
php 可以和 html 混合使用 ②
php 的變量的定義使用
//php中,定義一個(gè)變量要以$符號(hào)打頭
$a=890;//我定義了一個(gè)變量, 該變量名叫 $a , 然后給該變量賦了一個(gè)值890 ③
php 的變量的數(shù)據(jù)類(lèi)型,是變化的,php變量的數(shù)據(jù)類(lèi)型是由運(yùn)行時(shí)的上下文決定 ④
php區(qū)分大小寫(xiě) $i = 89;$I=90;$abc=90;$Abc=900;
⑤
php 的變量的名稱(chēng),應(yīng)當(dāng)以字母或者下劃線(xiàn)開(kāi)頭,不要用數(shù)字開(kāi)頭,也不要用特殊字符開(kāi)頭.$3abc=89;
php 數(shù)據(jù)類(lèi)型有哪些? 有三大類(lèi)
1.基本數(shù)據(jù)類(lèi)型 1.1 整型 1.2 小數(shù)型(浮動(dòng)數(shù))包含單精度和雙精度 1.3 布爾類(lèi)型(表示真,和 假)1.4 字符串 2.復(fù)合數(shù)據(jù)類(lèi)型 2.1 數(shù)組(array)2.2 對(duì)象(object)3.特殊數(shù)據(jù)類(lèi)型 3.1 null
3.2 資源類(lèi)型(resource)
37講 整型細(xì)節(jié)說(shuō)明
更新時(shí)間:2012年11月04日19時(shí)18分 來(lái)源: 基本數(shù)據(jù)類(lèi)型的入門(mén)案例: ■ 整型
整數(shù)類(lèi)型可以表示一個(gè)整數(shù),比如:
$ts=1;$ts=-12;■ 布爾類(lèi)型
布爾型可以表示真或者假,比如:
$ts=true;$ts=false;■ 小數(shù)類(lèi)型
小數(shù)類(lèi)型可以表示一個(gè)小數(shù)(float,double)
$ts=1.12 $ts=3.1415926 ■ 字符串類(lèi)型
字符串類(lèi)型可以表示一個(gè)字符串
$ts=“我是一個(gè)好人 hello” 基本概念: 何為定義一個(gè)變量
$a=90;//相當(dāng)于我們定義了一個(gè)變量 $a,并賦值90 ?>
什么叫給變量賦值
$a=78;
$a=8;//表示用新的值替代 78
$a=”hello”;//表示$a 的類(lèi)型變化.?>
整型的細(xì)節(jié)討論
①在php中一個(gè)整型數(shù)據(jù)可以用十進(jìn)制,也可以用八進(jìn)制和十六進(jìn)制 比如 :
$a = 0123;// 八進(jìn)制數(shù)(是以0開(kāi)頭)$a = 0x1A;// 十六進(jìn)制數(shù)
0123 = 3*8的0次方 + 2*8的1次方+ 1*8的二次方 =3*1+2*8+1*64=83
0x1A= A*16的0次方 +1*16的一次方=10+16=26
$a=123=3*10的0次方+2*10的1此方+1*10的二次方=3+20+100=123 ② php的整數(shù)都是有符號(hào)數(shù).通過(guò)該圖,我們可以看出,php的整數(shù)的二進(jìn)制的最高位表示符號(hào) ③ 通過(guò) PHP_INT_SIZE
可以顯示我們自己的機(jī)器,一個(gè)整數(shù)用幾個(gè)字節(jié)表示 echo PHP_INT_SIZE;
通過(guò)PHP_INT_MAX 可以顯示int 最大的數(shù)有多少 echo PHP_INT_MAX;
請(qǐng)問(wèn)? 為什么 PHP_INT_MAX是 2147483647 我們一起推一下
請(qǐng)問(wèn)? php 的int 型,負(fù)數(shù)最大表示多少? 負(fù)數(shù)和正數(shù)一樣大 2的31次方減一
④ 如果一個(gè)整數(shù)的范圍超過(guò)了最大范圍,則自動(dòng)變成float
38講 布爾細(xì)節(jié) 浮點(diǎn)數(shù)細(xì)節(jié) 字符串細(xì)節(jié) 算術(shù)運(yùn)算符①
更新時(shí)間:2012年11月06日13時(shí)53分 來(lái)源: 學(xué)生的問(wèn)題?
$a=2;問(wèn)在內(nèi)存中 2是怎樣存在的
00000000 00000000 00000000 00000010-> 0*2的0次方+1*2的一次方+..0=0+2=2 $a=-2 問(wèn)在內(nèi)存中形式
布爾類(lèi)型
簡(jiǎn)單的說(shuō) 布爾類(lèi)型就兩個(gè)值 true, 一個(gè)false;舉例: //布爾類(lèi)型 $a=true;$b=false;布爾值 FALSE 自身 整型值 0(零)浮點(diǎn)型值 0.0(零)空 字符串, 以及 字符串“0” 不包括任何元素的數(shù)組
不包括任何成員變量的對(duì)象(僅PHP 4.0 適用)特殊類(lèi)型 NULL(包括尚未設(shè)定的變量)
$conn=mysql_connect(“l(fā)ocalhost”,”root”,”root”);if($conn){
echo ?ok?;}else{
echo ?沒(méi)有ok?;}
浮點(diǎn)數(shù)的細(xì)節(jié)
1.浮點(diǎn)數(shù)(也叫雙精度數(shù)或?qū)崝?shù))
2.浮點(diǎn)數(shù)的字長(zhǎng)和平臺(tái)相關(guān),通常最大值是 1.8e308 并具有 14 位十進(jìn)制數(shù)字的精度(這個(gè)限制很重要)? 精度要從左邊開(kāi)始的第一個(gè)非0的數(shù)字計(jì)算.字符串的細(xì)節(jié) $a=”hello”;
請(qǐng)問(wèn) $a 占用了多個(gè)是字節(jié) 5個(gè)字節(jié) 一個(gè)字符串類(lèi)型可以表示多大的串?
①理論上,我們對(duì)字符串大小沒(méi)有限制,即只有不超過(guò)內(nèi)存就可.②我們定義字符串的時(shí)候,可以用單引號(hào),也可以使用雙引號(hào) 區(qū)別如下: $i=90;
$user1=“hello$i”;
$user2='hello$i';
echo '
user1='.$user1;
echo '
user2='.$user2;
從上面案例我們看出, 當(dāng)一個(gè)變量包含在 “”號(hào)中時(shí),會(huì)輸出它的值,而包含在?? 中是輸出其字符本身.案例2
如果字符串是包圍在單引號(hào)(?)中, 除了來(lái)處理 ” 時(shí),會(huì)輸出 ” 外,其它規(guī)則都一樣
php數(shù)據(jù)類(lèi)型的自動(dòng)轉(zhuǎn)換
php的表達(dá)式
所謂表達(dá)式,就是任何有值的東西.$a=90+89;
php的算術(shù)運(yùn)算符 +、-、*、/、%
39講 算術(shù)運(yùn)算符② 比較運(yùn)算符 邏輯運(yùn)算符
php的算術(shù)運(yùn)算符
更新時(shí)間:2012年11月08日17時(shí)42分 來(lái)源: +、-、*、/、% $a=90;
$b=7;
if($a%$b==0){
echo '能整除';
}else{
echo '不能整除!';
}
++ 和 – 快速入門(mén): $a=90;
$a++;//等價(jià)于 $a=$a+1;
echo $a;
$b=89;
$b--;//等價(jià)于$b=$b-1;
echo '
'.$b;
細(xì)節(jié) 我們的++ 和 – 分為前++ 后 ++ ,--也分為 前--$a=56;$b=$a++;echo $b;echo $a;對(duì)上面代碼的分析如下: $a=56;
//$b=$a++;//等價(jià)于 $b=$a;$a=$a+1;
$b=++$a;//等價(jià)于 $a=$a+1;$b=$a;
echo $b.“||”;//-->$b 57
echo $a;//-->$a 57
左加 += 左減-=
左乘 *= 左除 /= 左取模 %= $a=90;
$a-=90;//$a=$a-90;echo $a;
比較運(yùn)算符
案例: $a=2;$b=2.0
//只有值相等就為true if($a= =$b){
echo ?$a==$b?;}
//全等,要求$a 和 $b 值和類(lèi)型要相等 if($a= = =$b){ }
對(duì)!=!= = 說(shuō)明 //只有值不相等,則為true
if($a!=$b){
echo '$a!=$b';
}
//只要值不相等,或者類(lèi)型不相等,則為true
if($a!==$b){
echo '$a!==$b';
}
請(qǐng)編寫(xiě)一個(gè)程序,該程序可以接收兩個(gè)數(shù)(可以是整數(shù),也可是小 數(shù)),并判斷兩個(gè)數(shù)是大于?小于?還是等于? 對(duì)應(yīng)的案例:
$b=90;
if($a>$b){
echo '$a>$b';
}
if($a<$b)
{
echo '$a<$b';
}
if($a==$b){
echo '$a==$b';
} ?> 邏輯運(yùn)算符
要求大家掌握的知識(shí)點(diǎn)有: 搞清每個(gè)邏輯運(yùn)算的規(guī)則 案例 $a=10;$b=7;
if($a++>8 || $b++>7){
echo 'ok!';
}
echo 'a='.$a.'b='.$b;//把結(jié)果填寫(xiě) $a=10;$b=7;
if($a++>10 && $b++>7){
echo 'ok!';
}
echo 'a='.$a.'b='.$b;$a=10;$b=7;
if($a++>18 && $b++>7){
echo 'ok!';
}
echo 'a='.$a.'b='.$b;
? 面試題: and && 都表示邏輯與,他們的區(qū)別在什么地方 主要體現(xiàn)在優(yōu)先級(jí)上面 and 的優(yōu)先級(jí) and< = <&& or < = < || 配合案例: $e = false || true;$f = false or true;var_dump($e, $f);$e 是 true $f 是 false;.....40講 三元運(yùn)算符 類(lèi)型運(yùn)算符 運(yùn)算符優(yōu)先級(jí)
php基本語(yǔ)法-三元運(yùn)算符 基本語(yǔ)法
表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3 規(guī)則:
更新時(shí)間:2012年11月11日18時(shí)53分 來(lái)源: 如果表達(dá)式1 的運(yùn)算結(jié)果是 true, 則取 表達(dá)式2 的值,否則,取表達(dá)式3的值.舉例 :
$a=90;
$b=180;
$c=$a>$b?(12-10):“hello,world”;
echo 'c=='.$c;?>
php 的字符串運(yùn)算符 案例:
$a=“hello,world”;
$b=123;
$c=$b.$a;//$a 具體表示內(nèi)容和 $b 表示內(nèi)容拼接
echo $c;
從上面案例我們看出,當(dāng)兩個(gè)變量(基本數(shù)據(jù)類(lèi)型)用.連接的時(shí)候,就表示把他們的內(nèi)容拼接
類(lèi)型運(yùn)算符(了解)
基本語(yǔ)法是: instanceof 用于確定一個(gè) PHP 變量是否屬于某一類(lèi) class 的實(shí)例,通常在面向?qū)ο箝_(kāi)發(fā)中可能用的.class Dog{}
class Cat{}
//創(chuàng)建一個(gè)對(duì)象
$cat1=new Cat;
//var_dump($cat1 instanceof Dog);
//在實(shí)際開(kāi)發(fā)中,我們可能需要去判斷某個(gè)變量是否是某個(gè)類(lèi)型
if($cat1 instanceof Cat){
echo '$cat1 是一只貓';
}
運(yùn)算符優(yōu)先級(jí)的說(shuō)明: //****運(yùn)算優(yōu)先級(jí)*****
? 如果將來(lái)你們有一個(gè)表達(dá)式很復(fù)雜,建議使用()來(lái)指定其運(yùn)算優(yōu)先級(jí)
$a=3;
$b=++$a*3;
echo $b;
41講 順序控制 分支控制(if ifelse switch)程序流程圖
更新時(shí)間:2012年11月16日10時(shí)30分 來(lái)源:
php程序的三大流程控制 ①
順序控制(從上到下,從左到右)$a=7;
echo “a=”.a;
echo “hello!”;
$a++;
echo “a=”.a;
echo “O(∩_∩)O”;
$a++;
echo “a=”+a;
所謂順序控制流程,就是不加控制的流程,默認(rèn)情況,會(huì)按照,順序來(lái)執(zhí)行你編寫(xiě)的代碼 ②
分支控制
一個(gè)簡(jiǎn)單的定義: 有選擇的來(lái)執(zhí)行我們的代碼.分為 1.單分支 2.雙分支 3 多分支 1.單分支的基本語(yǔ)法結(jié)構(gòu) if(條件表達(dá)式){
語(yǔ)句;
//...//....}
這里我們,這里的條件表達(dá)式不管多復(fù)雜,最總運(yùn)算的結(jié)果就是 true 或者 false;快速入門(mén):
編寫(xiě)一個(gè)程序,可以輸入人的年齡,如果該同志 的年齡大于18歲,則輸出 “你年齡大于18,要對(duì) 自己的行為負(fù)責(zé)!” $age=7;
if($age>18){
echo '你的年齡大于18';
} 2.雙分支 基本語(yǔ)法結(jié)構(gòu) if(條件表達(dá)式){
//n多語(yǔ)句;}else{
//n多語(yǔ)句;}
編寫(xiě)一個(gè)程序,可以輸入人的年齡,如果該同志 的年齡大于18歲,則輸出 “你年齡大于18,要對(duì)
自己的行為負(fù)責(zé)!”。否則 ,輸出”你的年齡不大
這次放過(guò)你了.” 代碼: $age=4;
if($age>18){
echo '你的年齡大于18';
}else{
echo '你的年齡小于18';
}
echo '
程序結(jié)束!';
3.多重分支 基本語(yǔ)法結(jié)構(gòu)是 if(條件表達(dá)式){ //n多語(yǔ)句
}else if(條件表達(dá)式){ //n 多語(yǔ)句 }else if(條件表示式){ //.}//這里可能還有更多的else if else{ }
? 對(duì)上面的結(jié)構(gòu)請(qǐng)注意:
(1)else if 可以有一個(gè),也可以有多個(gè)(2)else 可以沒(méi)有 快速入門(mén)案例:
編寫(xiě)一個(gè)程序,可以輸入人的年齡,如果該同志 的年齡大于18歲,則輸出 “你年齡大于18,要對(duì)
自己的行為負(fù)責(zé),送入監(jiān)獄”。如果該同志的年
齡大于10歲并且小于等于18,則輸出 “你的年齡
也不小了,把你送少管所.”。其它情況,則輸出
“小孩子,下次注意”。代碼如下: $age=34;【1】 if($age>18【2】){
echo '你要被送入監(jiān)獄';【3】 }else if($age>10 【4】 && $age<=18【5】){ echo '送入少管所';【6】 }else{
echo '下次注意';【7】 }
echo “over”;【8】 流程分析圖:
switch分支語(yǔ)句 基本語(yǔ)法結(jié)構(gòu) switch(表達(dá)式){ case 常量1: //n多語(yǔ)句;break;case 常量2: //n多語(yǔ)句 break;defual:
//n多語(yǔ)句;
break;} ? 請(qǐng)注意:
1.case 語(yǔ)句有一到多
2.defaul 語(yǔ)句可以沒(méi)有(根據(jù)自己代碼的業(yè)務(wù)邏輯)3.通常,在case 語(yǔ)句后,要帶break ,表示退出switch語(yǔ)句 4.常量的類(lèi)型(int, float, 字符串, 布爾型)快速入門(mén)案例: 請(qǐng)編寫(xiě)一個(gè)程序,該程序 可以接收一個(gè)字符,比如 : a,b,c,d,e,f,g
a表示星期一,b表示星期 二 … 根據(jù)用戶(hù)的輸入顯 示相依的信息.要求使用 switch 語(yǔ)句完成 $myChar=“b”;
switch($myChar){
case “a”:
echo '今天星期一,猴子穿新衣';
break;
case “b”:
echo '今天星期二,猴子當(dāng)小二';
break;
case “c”:
echo '今天星期三,猴子爬雪山';
break;
default:
echo '沒(méi)有匹配的日期';
}
echo 'okokook';一個(gè)案例: $i=“11“;
switch($i){
case 10:
echo '10';
case 1.3:
echo '11';
break;
default:
echo 'hello';
//break;
case 11:
echo '12';
break;
}
該案例得出一個(gè)結(jié)論: //最終的結(jié)論是:
首先按照case順序進(jìn)行配置,如果一個(gè)都沒(méi)有匹配到,則執(zhí)行
default語(yǔ)句的內(nèi)容,直到遇到break,則退出switch Default語(yǔ)句放置的位置對(duì)執(zhí)行的結(jié)果沒(méi)有影響 如果$a=”1”,則會(huì)自動(dòng)轉(zhuǎn)化為整型1
42講 循環(huán)控制①(for)
更新時(shí)間:2012年11月19日15時(shí)24分 來(lái)源: 學(xué)生的問(wèn)題: 老師,說(shuō)一下if語(yǔ)句和switch的區(qū)別,及應(yīng)用場(chǎng)景。
回答: 從我們學(xué)習(xí)if 和 switch 分支看,if 對(duì)某個(gè)范圍的判斷,而switch是對(duì)一個(gè)點(diǎn)的判斷, 所以我們可以這樣去選擇他們: 應(yīng)用場(chǎng)景: 當(dāng)我們 的分支就是幾個(gè)點(diǎn)的時(shí)候(比如判斷坦克的方向),就應(yīng)當(dāng)使用swtich ,如果你的分支是幾個(gè)區(qū)域(范圍)的判斷,則考慮使用if ①
循環(huán)控制流程 首先說(shuō) for 循環(huán)控制 基本語(yǔ)法結(jié)構(gòu)
for(循環(huán)初值;循環(huán)的條件;步長(zhǎng)){
//n多語(yǔ)句;}
為什么需要循環(huán)控制 ?
問(wèn)題 : 請(qǐng)輸出9000000句,”你好,北京” 這樣一問(wèn)題: 怎樣讓我們的某段代碼,循環(huán)的執(zhí)行 分析圖
for($i=0;$i<2;$i++){
echo '
你好,北京';
}
echo “over”;
內(nèi)存圖:
43講 循環(huán)控制②(while dowhile)打印金字塔案例
更新時(shí)間:2012年11月20日11時(shí)54分 來(lái)源: while循環(huán) 基本語(yǔ)法結(jié)構(gòu)是 while(循環(huán)條件){
//循環(huán)體 ,語(yǔ)句 }
案例: 使用while來(lái)打印 10句”你好北京 ” 代碼:
//*****while循環(huán)*****
$i=0;//$i循環(huán)控制變量
while($i<10){
echo '
你好北京'.$i;
//這里我們對(duì)循環(huán)控制變量,自增.$i++;
} 流程分析圖:
do..while循環(huán)控制 基本語(yǔ)法結(jié)構(gòu) do{
//循環(huán)體 }while(循環(huán)條件);
快速入門(mén): 循環(huán)的顯示 10句,”你好北京”;$i=0;【1】//循環(huán)控制變量 do{
echo '
dowhile你好北京'.$i;【2】 //對(duì)循環(huán)控制變量修改
$i++;【3】//這里有程序員自己控制步長(zhǎng).}while($i<10【4】);執(zhí)行的流程圖:
綜合案例: 要求:
請(qǐng)使用循環(huán)控制語(yǔ)句,輸出一個(gè)空心的菱形->兩個(gè)思想
1.死去活來(lái) 2.先易后難 3.建立自己的函數(shù)庫(kù)和工具庫(kù)(積累)
*
* *
* *
* *
*
但是這個(gè)菱形的層數(shù)可以靈活的變化.比較困難-------》簡(jiǎn)單化
<-------->
案例如下:
//打印出金字塔的一半
//死去活來(lái)
//外層的for循環(huán)控制層數(shù)
for($i=1;$i<=3;$i++){
//內(nèi)層控制每層*的個(gè)數(shù)
for($j=1;$j<=$i;$j++){
echo '*';
}
echo '
';
}
//打印出整個(gè)金字塔
//如果打印3層
// * *-> 1 2個(gè)空格 1個(gè)*(1-1)*2+1=// ** ***-> 2 1個(gè)空格 3個(gè)*(2-1)*2+1=// *** *****-> 3 0個(gè)空格 5個(gè)*(3-1)*2+1=
5$n=20;
for($i=1;$i<=$n;$i++){
//在打印*前,先打印空格
for($k=1;$k<=$n-$i;$k++){
echo “ ”;
}
//內(nèi)層控制每層*的個(gè)數(shù)
for($j=1;$j<=($i-1)*2+1;$j++){
echo '*';
}
echo '
';
}
請(qǐng)大家打印出一個(gè)空心金字塔
*
* *
**** 思路:
我們可以這樣考慮,在給每行輸出* 號(hào)的時(shí)候,要有判斷,(該給*號(hào)給*號(hào),該給空格給空格)
思路肯定分析:
和一個(gè)空心的菱形
45講 break語(yǔ)句 continue語(yǔ)句 常量
更新時(shí)間:2012年11月23日15時(shí)22分 來(lái)源:
循環(huán)相關(guān)的語(yǔ)句-break
基本的概念: 表示結(jié)束當(dāng)前的 for、while、do..while、switch, 流程, 可以給一個(gè)數(shù)字,表示退出到第幾層.快速入門(mén)案例:
for($i=0;$i<13;$i++){ echo '$i='.$i.“
”;if($i==10){
break;} }
快速入門(mén)的案例2: $i=0;while(++$i){ switch($i){ case 5:
echo “quit at 5
”;break;case 10:
echo “quit at 10
”;break 2;default: break;}
}echo '$i='.$i;結(jié)果是: quit at 5 quit at 10 $i=10 分析圖:
從上面的案例,我們得到幾個(gè)結(jié)論: 1.break語(yǔ)句 默認(rèn)跳出 1層
2.break語(yǔ)句 后面帶的數(shù)字,不能超過(guò)實(shí)際可以跳出的循環(huán)層數(shù),否則,會(huì)報(bào)fatal error 循環(huán)相關(guān)語(yǔ)句-continue
基本概念: continue 用于結(jié)束本次循環(huán)剩余代碼,從新開(kāi)始新的一次循環(huán)(如果條件為真,就繼續(xù)執(zhí)行), continue 后面也可以帶數(shù)字,表示從第幾次循環(huán)重新開(kāi)始 快速入門(mén):
for($i=0;$i<13;$i++){ if($i==10){ continue;}
echo '$i='.$i.“
”;} 結(jié)果 $i=0 $i=1 $i=2 $i=4 $i=5 $i=6 $i=7 $i=8 $i=9 $i=10 $i=11 $i=12 hello 流程
goto語(yǔ)句
基本概念: 通過(guò)goto語(yǔ)句我們可以將程序跳轉(zhuǎn)到指定的地方去執(zhí)行.goto 標(biāo)簽;標(biāo)簽: 語(yǔ)句;快速入門(mén)案例: goto a;echo 'aa';a: echo 'bb';快速入門(mén)案例2
for($i=0,$j=50;$i<100;$i++){ while($j--){
if($j==17)goto end;} }
echo “i = $i”;end:
echo 'j = 17 '.$i.“||”.$j;結(jié)果: j = 17
php中常量 說(shuō)明:
所謂常量,我們可以理解成就是特殊的變量: 體現(xiàn)在 1.定義常量前面不需要 $ 2.常量一旦定義,則不能修改其值 3.常量在定義的時(shí)候,就需要它賦初值.4.常量可以通過(guò) define 或者 const
5.常量的名稱(chēng),我們一般說(shuō)是 全部大寫(xiě),然后用下劃線(xiàn)間隔
6.什么時(shí)候需要使用常量: 在程序中我們不希望某個(gè)值變化,則考慮使用常量,比如圓周率,稅率....快速入門(mén)案例:
//第一種方法
define(“TAX_RATE”,0.08);
echo TAX_RATE;
//第二種方法(php5.3)
const TAX_RATE2=0.1;
echo '-'.TAX_RATE2;?>
46講 函數(shù)基本概念 函數(shù)快速入門(mén)
函數(shù)講解
提出一個(gè)問(wèn)題? 請(qǐng)大家完成這樣一個(gè)需求:
更新時(shí)間:2012年11月25日18時(shí)08分 來(lái)源: ①輸入兩個(gè)數(shù),再輸入一個(gè)運(yùn)算符(+,-,*,/),得到結(jié)果.如果我們不考慮使用新的技術(shù),用我們現(xiàn)在的知識(shí)結(jié)構(gòu),完成
//請(qǐng)大家完成這樣一個(gè)需求:
//①輸入兩個(gè)數(shù),再輸入一個(gè)運(yùn)算符(+,-,*,/),得到結(jié)果.$num1=34;
$num2=90;
$oper=“-”;
//$res表示結(jié)果
$res=0;
switch($oper){
case “+”:
$res=$num1+$num2;
break;
case “-”:
$res=$num1-$num2;
break;
case “*”:
$res=$num1*$num2;
break;
case “/”:
$res=$num1/$num2;
break;
default:
echo '運(yùn)算符號(hào)有誤!';
}
echo “計(jì)算結(jié)果是=”.$res;?>