7. HTML中的顏色:能夠是顏色單詞:red/blue/green/yellow...
....
....
get方式是URL地址欄可見,長度受限制(IE2k 火狐8k),相對不安全.
post方式是URL地址不可見,長度不受限制,相對安全.
...
7. <legend> html標籤--<legend> 標籤爲 <fieldset>、<figure> 以及 <details> 元素定義標題。
9. <datalist> html5標籤--<datalist> 標籤訂義可選數據的列表。與 input 元素配合使用,就能夠製做出輸入值的下拉列表。
------------------------------------------------------------------------------------
========================
CSS層疊樣式表
========================
命名規則:使用字母、數字或下劃線構成,不要以數字開頭
1、css的語法
-----------------------------
格式: 選擇器{屬性:值;屬性:值;屬性:值;....}
2、在HTML中如何使用css樣式(html中嵌入css的方式);
----------------------------------------------------
1. 內聯方式(行內樣式)
就是在HTML的標籤中使用style屬性來設置css樣式
格式: <html標籤 >被修飾的內容</html標籤>
<p >在HTML中如何使用css樣式</p>
特色:僅做用於本標籤。
2. 內部方式(內嵌樣式)
就是在head標籤中使用<style type="text/css">....</style>標籤來設置css樣式
格式:<style type="text/css">
....css樣式代碼
</style>
特色:做用於當前整個頁面
3. 外部導入方式(外部鏈入)
3.1 (推薦)就是在head標籤中使用<link/>標籤導入一個css文件,在做用於本頁面,實現css樣式設置
格式:<link href="文件名.css" type="text/css" rel="stylesheet"/>
3.2 還可使用import在style標籤中導入css文件。
如:<style type="text/css">
@import "style.css";
</style>
特色:做用於整個網站
他們的優先級:當樣式衝突時,就是採用就近原則,是值css屬性離被修飾的內容最近的爲主。
若沒有樣式衝突則採用疊加效果。
html標籤中的屬性低於CSS樣式。
3、css2的選擇符:
---------------------------------------------------------------
1. html選擇符(標籤選擇器)
就是把html標籤做爲選擇符使用
如 p{....} 網頁中全部p標籤採用此樣式
h2{....} 網頁中全部h2標籤採用此樣式
2. class類選擇符 (使用點.將自定義名(類名)來定義的選擇符)
定義: .類名{樣式....} 匿名類
其餘選擇符名.類名{樣式....}
使用:<html標籤 class="類名">...</html標籤>
.mc{color:blue;} /* 凡是class屬性值爲mc的都採用此樣式 */
p.ps{color:green;} /*只有p標籤中class屬性值爲ps的才採用此樣式*/
注意:類選擇符能夠在網頁中重複使用
3. Id選擇符
定義: #id名{樣式.....}
使用:<html標籤 id="id名">...</html標籤>
注意:id選擇符只在網頁中使用一次.
選擇符的優先級:從大到小 [ID選擇符]->[class選擇符]->[html選擇符]->[html屬性]
4. 關聯選擇符(包含選擇符)
格式: 選擇符1 選擇符2 選擇符3 ...{樣式....}
例如: table a{....} /*table標籤裏的a標籤才採用此樣式*/
h1 p{color:red} /*只有h1標籤中的p標籤才採用此樣式*/
5. 組合選擇符(選擇符組)
格式: 選擇符1,選擇符2,選擇符3 ...{樣式....}
h3,h4,h5{color:green;} /*h三、h4和h5都採用此樣式*/
6. 僞類選(僞元素)擇符:
格式: 標籤名:僞類名{樣式....}
a:link {color: #FF0000; text-decoration: none} /* 未訪問的連接 */
a:visited {color: #00FF00; text-decoration: none} /* 已訪問的連接 */
a:hover {color: #FF00FF; text-decoration: underline} /* 鼠標在連接上 */
a:active {color: #0000FF; text-decoration: underline} /* 激活連接 */
7. 屬性選擇器:
...
8. 其餘僞類選擇器
...
4、 CSS3中的選擇器(瞭解)
------------------------------------------------
1. 關係選擇器:
div>p 選擇全部做爲div元素的子元素p
div+p 選擇緊貼在div元素以後p元素
div~p 選擇div元素後面的全部兄弟元素p
2. 屬性選擇器:
[attribute]選擇具備attribute屬性的元素。
[attribute=value]選擇具備attribute屬性且屬性值等於value的元素。
[attribute~=value]選擇具備attribute屬性且屬性值爲一用空格分隔的字詞列表,其中一個等於value的元素。
[attribute|=value]選擇具備att屬性且屬性值爲以val開頭並用鏈接符"-"分隔的字符串的E元素。
[attibute^=value]匹配具備attribute屬性、且值以valule開頭的E元素
[attribute$=value]匹配具備attribute屬性、且值以value結尾的E元素
[attribute*=value]匹配具備attribute屬性、且值中含有value的E元素
3. 結構性僞類選擇器:
::first-letter設置對象內的第一個字符的樣式。
::first-line設置對象內的第一行的樣式。
:before設置在對象前(依據對象樹的邏輯結構)發生的內容。
:after設置在對象後(依據對象樹的邏輯結構)發生的內容。
:lang(language)匹配使用特殊語言的E元素。
:element1~element2:
:first-of-type匹配同類型中的第一個同級兄弟元素
:last-of-type匹配同類型中的最後一個同級兄弟元素
:only-of-type匹配同類型中的惟一的一個同級兄弟元素
:only-child匹配父元素僅有的一個子元素
:nth-child(n)匹配父元素的第n個子元素
:nth-last-child(n)匹配同類型中的倒數第n個同級兄弟元素
:last-child()匹配父元素的最後一個子元素
:root匹配元素在文檔的根元素。在HTML中,根元素永遠是HTML
:empty匹配沒有任何子元素(包括text節點)的元素
4. *狀態僞類選擇器
:link 設置超連接a在未被訪問前的樣式。
:visited 設置超連接a在其連接地址已被訪問過期的樣式
:active 設置元素在被用戶激活(在鼠標點擊與釋放之間發生的事件)時的樣式
*:hover 設置元素在其鼠標懸停時的樣式
*:focus 設置元素在其鼠標懸停時的樣式
:target 匹配相關URL指向的E元素
:enabled 匹配用戶界面上處於可用狀態的元素
:disabled 匹配用戶界面上處於禁用狀態的元素
:checked 匹配用戶界面上處於選中狀態的元素
:not(selector)匹配不含有selector選擇符的元素
::selection 設置對象被選擇時的樣式
5. 其餘僞類選擇器
E:not(s) : {attribute}
匹配全部不匹配簡單選擇符s的元素E
p:not(.bg) {background-color:#00FF00;}
======================================================================================
5、CSS中經常使用的屬性:
---------------------------------------------------------------------------------------
1. color顏色屬性:
a. HSL顏色: 經過對色調(H)、飽和度(S)、亮度(L)三個顏色通道的變化以及它們相互之間的疊加來獲得各式各樣的顏色.
background-color: hsl(240,100%,50%);color:white;
b. HSLA顏色: 色調(H)、飽和度(S)、亮度(L)、透明度(A);
background-color: hsla(0,100%,50%,0.2);
*c. RGB顏色: 紅(R)、綠(G)、藍(B)三個顏色通道的變化
background-color: rgba(200,100,0);
d. RGBA顏色: 紅(R)、綠(G)、藍(B)、透明度(A)
background-color: rgba(0,0,0,0.5);
*e. 圖片透明度的設置 img.opacity{ opacity:0.25;}
2. 字體屬性: font
font
*font-size: 字體大小:20px,60%基於父對象的百分比取值
*font-family: 字體:宋體,Arial
font-style: normal正常;italic斜體; oblique傾斜的字體
*font-weight: 字體加粗 :bold
font-variant: small-caps 小型的大寫字母字體
font-stretch: [瞭解]文字的拉伸是相對於瀏覽器顯示的字體的正常寬度(大部分瀏覽器不支持)。
3. 文本屬性:
text-indent: 首行縮進:text-indent:30px;
text-overflow: 文本的溢出是否使用省略標記(...)。clip|ellipsis(顯示省略標記)
*text-align: 文本的位置:left center right
text-transform:對象中的文本的大小寫:capitalize(首字母)|uppercase大寫|lowercase小寫
*text-decoration: 字體畫線:none無、underline下畫線,line-through貫穿線
text-decoration-line:[瞭解]文本裝飾線條的位置(瀏覽器不兼容)
text-shadow: 文本的文字是否有陰影及模糊效果
vertical-align: 文本的垂直對齊方式
direction:文字流方向。ltr | rtl
*letter-spacing: 文字或字母的間距
word-spacing:單詞間距
*line-height:行高
*color: 字體顏色
*4. 邊框:
border:
border-color;
border-style;
border-width:
border-left-color;
border-left-style;
border-left-width:
...
border-radius:圓角處理
box-shadow: 設置或檢索對象陰影
5. 背景屬性:background
*background-color: 背景顏色
*background-image: 背景圖片
*background-repeat:是否重複,如何重複?(平鋪)
*background-position:定位
background-attachment: 是否固定背景,
scroll:默認值。背景圖像是隨對象內容滾動
fixed:背景圖像固定
*background-size: 背景大小,如 background-size:100px 140px;
多層背景:
background:url(test1.jpg) no-repeat scroll 10px 20px,url(test2.jpg) no-repeat scroll 50px 60px,url(test3.jpg) no-repeat scroll 90px 100px;
background-origin:content-box,content-box,content-box;
background-clip:padding-box,padding-box,padding-box;
background-size:50px 60px,50px 60px,50px 60px;
6. *內補白(內補丁)
padding: 檢索或設置對象四邊的內部邊距,如padding:10px; padding:5px 10px;
padding-top: 檢索或設置對象頂邊的內部邊距
padding-right: 檢索或設置對象右邊的內部邊距
padding-bottom:檢索或設置對象下邊的內部邊距
padding-left: 檢索或設置對象左邊的內部邊距
7. *外補白(外補丁)
margin: 檢索或設置對象四邊的外延邊距,如 margin:10px; margin:5px auto;
margin-top: 檢索或設置對象頂邊的外延邊距
margin-right: 檢索或設置對象右邊的外延邊距
margin-bottom: 檢索或設置對象下邊的外延邊距
margin-left: 檢索或設置對象左邊的外延邊距
8. Position定位
*position: 定位方式:absolute(絕對定位)、fixed(固定)(relative定位參考,可對內部相對absolute定位)
*z-index: 層疊順序,值越大越在上方。
*top: 檢索或設置對象與其最近一個定位的父對象頂部相關的位置
right: 檢索或設置對象與其最近一個定位的父對象右邊相關的位置
bottom: 檢索或設置對象與其最近一個定位的父對象下邊相關的位置
*left: 檢索或設置對象與其最近一個定位的父對象左邊相關的位置
9. Layout佈局
*display: 是否及如何顯示:none隱藏,block塊狀顯示...
*float: 指出了對象是否及如何浮動:值none | left | right
*clear: 清除浮動:none | left | right | both兩側
visibility:設置或檢索是否顯示對象。visible|hidden|collapse。
與display屬性不一樣,此屬性爲隱藏的對象保留其佔據的物理空間
clip: 檢索或設置對象的可視區域。區域外的部分是透明的。 rect(上-右-下-左)
如:clip:rect(auto 50px 20px auto);上和左不裁剪,右50,下20.
*overflow: 超出隱藏:hidden,visible:不剪切內容
overflow-x:內容超過其指定寬度時如何管理內容: visible | hidden | scroll | auto
overflow-y:內容超過其指定高度時如何管理內容
10.Flexible Box 彈性盒子(瞭解見手冊)
box-orient: 設置或檢索彈性盒模型對象的子元素的排列方式。horizontal(水平)|vertical(縱向)
box-pack 設置或檢索彈性盒模型對象的子元素的對齊方式。
box-align 設置或檢索彈性盒模型對象的子元素的對齊方式。
box-flex 設置或檢索彈性盒模型對象的子元素如何分配其剩餘空間。
box-flex-group 設置或檢索彈性盒模型對象的子元素的所屬組。
box-ordinal-group 設置或檢索彈性盒模型對象的子元素的顯示順序。
box-direction 設置或檢索彈性盒模型對象的子元素的排列順序是否反轉。
box-lines 設置或檢索彈性盒模型對象的子元素是否能夠換行顯示。
11. 用戶界面 User Interface
*cursor 鼠標指針採用何種系統預約義的光標形狀。pointer小手,url自定義
zoom 設置或檢索對象的縮放比例: normal|5倍|200%百分比
box-sizing 設置或檢索對象的盒模型組成模式。content-box | border-box
content-box: padding和border不被包含在定義的width和height以內。
border-box: padding和border被包含在定義的width和height以內。
resize 設置或檢索對象的區域是否容許用戶縮放,調節元素尺寸大小。
none: 不容許用戶調整元素大小。
both: 用戶能夠調節元素的寬度和高度。
horizontal: 用戶能夠調節元素的寬度
vertical: 用戶能夠調節元素的高度。
outline 複合屬性:設置或檢索對象外的線條輪廓
outline-width 設置或檢索對象外的線條輪廓的寬度
outline-style 設置或檢索對象外的線條輪廓的樣式
outline-color 設置或檢索對象外的線條輪廓的顏色
outline-offset 設置或檢索對象外的線條輪廓偏移位置的數值
nav-index 設置或檢索對象的導航順序。
nav-up 設置或檢索對象的導航方向。
nav-right 設置或檢索對象的導航方向。
12. 多欄 Multi-column
columns 設置或檢索對象的列數和每列的寬度
column-width 設置或檢索對象每列的寬度
column-count 設置或檢索對象的列數
column-gap 設置或檢索對象的列與列之間的間隙
column-rule 設置或檢索對象的列與列之間的邊框
column-rule-width 設置或檢索對象的列與列之間的邊框厚度
column-rule-style 設置或檢索對象的列與列之間的邊框樣式
column-rule-color 對象的列與列之間的邊框顏色
column-span 象元素是否橫跨全部列
column-fill 對象全部列的高度是否統一
column-break-before 對象以前是否斷行
column-break-after 對象以後是否斷行
column-break-inside 對象內部是否斷行
13. 表格相關屬性:
table-layout 設置或檢索表格的佈局算法
border-collapse 設置或檢索表格的行和單元格的邊是合併在一塊兒仍是按照標準的HTML樣式分開 separate | collapse
border-spacing 設置或檢索當表格邊框獨立時,行和單元格的邊框在橫向和縱向上的間距
caption-side 設置或檢索表格的caption對象是在表格的那一邊 top | right | bottom | left
empty-cell 設置或檢索當表格的單元格無內容時,是否顯示該單元格的邊框 hide | show
14. 過渡 Transition:
transition 檢索或設置對象變換時的過渡效果
transition-property 檢索或設置對象中的參與過渡的屬性
transition-duration 檢索或設置對象過渡的持續時間
transition-timing-function 檢索或設置對象中過渡的類型
transition-delay 檢索或設置對象延遲過渡的時間
15. 動畫 Animation
animation 檢索或設置對象所應用的動畫特效
animation-name 檢索或設置對象所應用的動畫名稱
animation-duration 檢索或設置對象動畫的持續時間
animation-timing-function 檢索或設置對象動畫的過渡類型
animation-delay 檢索或設置對象動畫延遲的時間
animation-iteration-count 檢索或設置對象動畫的循環次數
animation-direction 檢索或設置對象動畫在循環中是否反向運動
animation-play-state 檢索或設置對象動畫的狀態
animation-fill-mode 檢索或設置對象動畫時間以外的狀態
16. 2D變換 2D Transform:
transform 檢索或設置對象的變換
transform-origin 檢索或設置對象中的變換所參照的原點
17. Media Queries Properties媒體查詢
width 定義輸出設備中的頁面可見區域寬度
height 定義輸出設備中的頁面可見區域高度
device-width 定義輸出設備的屏幕可見寬度
device-height 定義輸出設備的屏幕可見高度
orientation 定義'height'是否大於或等於'width'。值portrait表明是,landscape表明否
aspect-ratio 定義'width'與'height'的比率
device-aspect-ratio 定義'device-width'與'device-height'的比率。如常見的顯示器比率:4/3, 16/9, 16/10
device-aspect-ratio 定義'device-width'與'device-height'的比率。如常見的顯示器比率:4/3, 16/9, 16/10
color 定義每一組輸出設備的彩色原件個數。若是不是彩色設備,則值等於0
color-index 定義在輸出設備的彩色查詢表中的條目數。若是沒有使用彩色查詢表,則值等於0
monochrome 定義在一個單色框架緩衝區中每像素包含的單色原件個數。若是不是單色設備,則值等於0
resolution 定義設備的分辨率。如:96dpi, 300dpi, 118dpcm
scan 定義電視類設備的掃描工序
grid 用來查詢輸出設備是否使用柵格或點陣。只有1和0纔是有效值,1表明是,0表明否
MIME(Multipurpose Internet Mail Extensions)多用途互聯網郵件擴展類型
就是設定某種擴展名的文件
用一種應用程序來打開的方式類型,
當該擴展名文件被訪問的時候,
瀏覽器會自動使用指定應用程序來打開。
D:\wamp\bin\apache\Apache2.4.4\conf\mime.types
擴展名 type類型
.ogg video/ogg
.css text/css
.html text/html
PHP函數: =========================================================================== 1、**語法:定義 //函數:完成指定任務的功能代碼塊,是一個已經命名的。 function 函數名( [參數1,參數2...] ){ 函數體(語句) echo ''; [return 返回值;] //echo 'aaaaaa'; } 使用: 函數名([參數。]); 注意:變量要先定義賦值,才能夠輸出,但函數的定義和使用不部分前後順序的。 示例: //定義一個求累加的函數,要求參數一個:表示要累加的值,返回求和後的結果 function doSum($m){ $sum=0; for($i=0;$i<=$m;$i++){ $sum+=$i; } return $sum; //echo $sum } // echo doSum(10)+doSum(20); 2. 判斷函數是否存在: funciton_exists("函數名"); 返回真true或假false 認識一個函數從3個方面: 1. 函數的功能 2. 參數的類型,是否可選 3. 返回值 2、變量的做用域(範圍) (1)因爲函數的出現,致使變量的能見度(生命週期)不一樣。 共劃分爲:全局變量、局部變量、 靜態變量: 1. *全局變量:就是在函數外定義變量 做用域:在函數外和函數內均可以看到的,並可使用的變量 注意:在函數內使用函數外的全局變量要使用global關鍵字先聲明一下。 <?php //變量的做用域:全局變量 $a=10;//定義一個變量a值爲10 $b=20; //定義一個函數 function fun(){ global $a; //嘗試使用外部的全局變量a echo $a; //輸出變量a的值10 echo $b; //輸出變量b的值,結果沒有(由於沒有使用global) $a=100; } fun(); //調用函數fun echo $a; //100 ?> 2.* 局部變量:在函數內定義的變量,特色只在函數內有效,咱們可使用return將值返回。 <?php //變量的做用域:局部變量 //定義一個函數 function fun(){ $a=100; //函數內定義變量 echo $a; //輸出變量a的值100 } fun(); //調用函數fun echo $a; //沒有輸出,在函數內定義的變量,在函數外是沒法使用的 ?> 3. 靜態變量:在函數內使用static關鍵字定義的變量 //變量做用域:靜態變量的使用 function fun(){ static $i=1; //在當前腳本中連續屢次調用本函數,i依然有效,裏面的靜態聲明(初始化)只會調用一次。 $i++; echo $i."<br/>"; } fun(); //1 fun(); //2 fun(); //3 fun(); //4 3、**聲明及應用各類形式的PHP函數(函數中參數的種類) ================================================================ 1. 普通參數的函數: 常規參數的函數格式說明: string example(string name,int age,double height) 所謂的常規參數的函數,就是函數中參數的類型爲php的普通數據類型。 如:求字串長度函數:int strlen(string $string ) 數據此函數調用時傳入的是String字串類型,返回int類型 2. 僞類型參數的函數格式說明: mixed funName(mixed $a, number $b, callback $c) 僞類型參數的函數就是參數中的類型是如下三種僞類型的。 三種僞類型: mixed、number 和 callback。 3. 引用參數的函數格式說明: void funName(array &args) 使用&符來實現引用傳遞,就是將參數直接給給函數使用。(起別名) 假如函數內容發生改變,會使當前參數也發生改變。 注意:調用引用參數時,必須使用變量,不能夠直接用值。 如:fun($x); 不可使用fun(10); 在定義函數時的參數是使用&標識的參數; function myadd($x,$y=0,&$z){ $sum=$x+$y; return $sum; } $a=10; $b=20; $sum=0; myadd($a,$b,$sum);//調用函數myadd,將前兩個參數的和賦給第三個參數 echo $sum; //30 4.默認值參數函數: 咱們能夠在定義函數時,將部分參數提早附上初始值, 當被調用時沒有給這參數傳值,就會採用默認值,以保障函數正常使用。 要求默認值從參數的右邊開始。 5.可變長度參數列表的函數。 此函數的參數個數任意個。 func_get_args();//以數組的方式返回全部的參數信息 func_get_arg($index) //獲取指定參數位置(index:從0開始的整數)的信息 func_num_args()//獲取參數的個數。 //可變長度參數列表 function dosum(){ //echo "參數的個數:".func_num_args()."<br/>"; //echo "某個參數的值:".func_get_arg(4)."<br/>"; $sum=0; for($i=0;$i<func_num_args();$i++){ echo func_get_arg($i)." "; $sum+=func_get_arg($i); } echo "<br/>"; echo "共計:".$sum; } dosum(10,20,50,60,300,100,20); -------------------------------------------------------------------------------- =========================================================================== 四. *變量函數:就是調用函數使用的不是直接的函數名,而是一個變量。 如: 要調用add函數。應該是:add(10,20); 可是: $name="add"; $name(10,20); 等價於add(10,20); 就是函數的名字也是個變量時,就是變量函數。 $name="sum"; $name(); //等價於 sum( ); 五. 遞歸函數: 遞歸函數--就是在函數體的代碼中出現了調用本身自己函數的語句。注意遞歸的結束。 六. *自定義函數庫: 1. 定義一些經常使用函數存放在一個php文件中,如:functions.php 2. 在咱們要使用函數的php文件中使用: include 或require導入函數庫文件後便可使用。 如:include("functions.php"); 或require("functions.php"); require() 和 include() 幾乎徹底同樣,除了處理失敗的方式不一樣以外。 include() 產生一個Warning(適合導入不重要的文件) require() 則致使一個 Fatal Error。(導入重要文件) 七. 使用系統函數: 如何瞭解一個系統函數並學會使用他 1.功能:要了解本函數的實現功能(幹什麼?) 2.參數:調用這些函數都須要哪些參數(可選和必選)以及類型。 3.返回值:本函數都有什麼返回結果。
PHP--GD庫
====================
1、支持:須要php支持gd庫
2、繪畫步驟:
1. 建立一個畫布(畫板)、畫筆、色彩。
2. *開始繪畫
3. 輸出圖像
4. 銷燬圖像資源(釋放內存)
示例:
<?php
//1.建立一個畫布,顏色
$im = imagecreate(200,200);
$red = imagecolorallocate($im,255,0,0); //建立一個顏色:紅色
$blue = imagecolorallocate($im,0,0,255); //建立一個顏色:藍色
$c1 = imagecolorallocate($im,200,200,200);
//2.開始繪畫
imagefill($im,0,0,$c1); //填充背景
//....
//3.輸出圖像
header("Content-Type: image/jpeg");//設置響應頭信息爲一個jpeg的圖片
imagejpeg($im);//輸出一個jpeg圖片
//4.銷燬
imagedestroy($im); //
3、圖片的具體繪製:
3.1 建立一個畫布:
imagecreate(寬,高)--建立一個基於256色的畫布
imagecreatetruecolor( int x_size, int y_size ) -- 新建一個真彩色圖像
//還有基於某個圖片的畫布
imagecreatefromgif( string filename )
imagecreatefrompng( string filename )
imagecreatefromjpeg( string filename )
3.2 繪畫:
//分配定義顏色
$red = imagecolorallocate($im,255,0,0); //分配一個顏色
//填充背景
bool imagefill(resource image,int x,int y, int color ); //填充背景
//畫點
bool imagesetpixel(resource image,int x,int y,int color );//畫一個像素點
//畫一個線段的函數
bool imageline ( resource image, int x1, int y1, int x2, int y2, int color )
//畫矩形框(不填充)
bool imagerectangle ( resource image, int x1, int y1, int x2, int y2, int color )
//畫矩形框(填充)
bool imagefilledrectangle ( resource image, int x1, int y1, int x2, int y2, int color )
//繪製多邊形
bool imagepolygon ( resource image, array points, int num_points, int color )
bool imagefilledpolygon ( resource image, array points, int num_points, int color )
//繪製橢圓(正圓)
imageellipse ( resource image, int cx, int cy, int w, int h, int color )
imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color )
//繪製圓弧(可填充)
imagearc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style )
imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style )
//繪製字串
bool imagestring ( resource image, int font, int x, int y, string s, int col )
bool imagestringup ( resource image, int font, int x, int y, string s, int col )
//繪製字符
imagechar
//繪製文本:
*array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )
當上面的字體出現亂碼時,使用下面的函數轉換編碼
string iconv ( string in_charset, string out_charset, string str )
$name="張三";
$str = iconv("ISO8859-1","UTF-8",$name);
$str = iconv("GBK","UTF-8",$name);
$str = iconv("GB2312","UTF-8",$name);
//圖片的裁剪、合成、縮放
**bool imagecopyresampled ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )
* imagesx — 取得圖像寬度
* imagesy — 取得圖像高度
* array getimagesize ( string $filename [, array &$imageinfo ] ) 取得圖像大小
3.3.輸出圖
header("Content-Type: image/jpeg");//設置響應頭信息爲一個jpeg的圖片
imagejpeg($im);//輸出一個jpeg圖片
header("Content-Type: image/png");//設置響應頭信息爲一個png的圖片
imagepng($im);//輸出一個png圖片
//輸出到指定文件中(另存爲)
imagepng($im,"**.png");
3.4.銷燬
imagedestroy($im); //
=========================
PHP --字串的處理
========================
1、字串的定義
-----------------------------
1. 單引號: '' 不支持變量的解析,轉義符: \\ \'
2. 雙引號: "" 支持變量的解析,轉義符: \n \r \t \" \$ \\ ...
3. 定界符: <<< 注意結束符的使用。
$str = <<<ABC
......
ABC;
2、 經常使用字串的輸出函數
-------------------------------------
1. echo() 支持多個變量同時輸出 如: echo $s1,$s2;
2. print() 不支持多個變量。
3. die() 別名exit() 終止當期腳本執行,能夠順便輸出內容
4. print_r() 與var_dump()函數相似,都是格式化變量並直接輸出,能夠解析數組,對象等類型
經常使用於開發時的臨時輸出使用(測試)
5. printf() 格式化字串並輸出
6. sprintf() 格式化字串並返回
chr()和ord()是實現ASCII碼值和字符之間的轉換
命名:駝峯命名法
函數名: strDel()
userNameAdd()
類名: UserAction()
3、經常使用字串中的處理函數(格式化)
------------------------------------
ltrim() 去除左側多餘字符(默認刪空格)
rtrim() 去除右側多餘字符(默認刪空格)
* trim() 去除兩側多餘字符(默認刪空格)
str_pad() 使用另外一個字符串填充字符串爲指定長度
* 函數: strtolower( )
語法: string strtolower(string str);
本函數將字符串 str 所有變小寫字符串。
* 函數: strtoupper( )
語法: string strtoupper(string str);
本函數將字符串 str 所有變大寫字符串。
函數:ucfirst( )
將字符串第一個字符改大寫。
語法: string ucfirst(string str);
本函數返回字符串 str 第一個字的字首字母改爲大寫。
函數:ucwords( )
將字符串每一個字第一個字母改大寫。
語法: string ucwords(string str);
本函數返回字符串 str 每一個字的字首字母全都改爲大寫。
int ord(string $string ) — 返回字符的 ASCII 碼值
string chr(int $ascii ) — 返回指定的字符
網頁輸出格式化函數
nl2br--將字串中\n換成<br/>標籤,實現換行輸出。
* htmlspecialchars--格式化字串中的html標籤
htmlentities--
* strip_tags -- 刪除html標籤函數
strrev -- 將字串顛倒返回
* strlen -- 求字串長度: 字母:一個算一個長度,漢字:utf-8編碼是每一個漢字3個長度,其餘是2長度
* mb_strlen(str,"utf-8");獲取中文字的長度
number_format -- 格式化數字的
* md5 -- 單向加密的(不可逆的(不能解密的))。
strcmp -- 整個比較是否相同
strncmp --指定長度的比較
strcasecmp-- 不區分大小寫比較
strnatcmp -- 按天然順序比較
similar_text -- 模糊比較
** explode -- 字符串拆分函數
** implode -- 字符串組合函數
* substr -- 截取字串 a.txt a.rm a.rmvb a.b.txt
string返回值 substr(
string string被截字串,
int start起始位置
[, int length長度] )
* mb_substr() --截取指定編碼的字串
* strstr -- 字串查找並截取
strchr -- 是上面的strstr的別名找並截取
strrchr -- 從後面作字串查找。找並截取
* strpos --尋早一個字符出現位置(從前開始。第三個參數爲查找起始位置)
strrpos --尋早一個字符出現位置(從後面開始找。)
* 換成字串 str_replace(被換字串,換成的字串,原字串,[數量]);字符串替換
file_get_contents("文件名") // 獲取指定文件的內容
file_put_contents("文件名","內容")//將內容寫入(覆蓋寫)到指定文件中
file_put_contents("文件名","內容",FILE_APPEND)
//將內容寫入(追加寫)到指定文件中
=====================================
php--正則表達式
=====================================
1、正則表達式的介紹:
----------------------------------------------------
正則表達式是用於描述字符排列和匹配模式的一種語法規則。
它主要用於字符串的模式分割、匹配、查找及替換操做。
1. 用途:匹配、查找、替換、分割
2. php提供了兩套正則表達式函數庫
*1. Perl 兼容正則表達式函數(推薦使用)
2. POSIX 擴展正則表達式函數
2、 語法:
----------------------------------------------------
1. 表達式的格式: "/表達式/[修正符]"
解釋:其中"/"表示正則表達式的定界符,可是也能夠是其餘符號:如」#「,」!「
注意:定界符不能夠是字母、數字和斜線\。
像「#」、「|」、「!」等均可以的
如:/.../ #...# |....|
其中修正符是可選的,表示對錶達式作額外的修飾。
3、 正則表達式的組成部分:
----------------------------------------------------
1. 原子是組成正則表達式的基本單位,在分析正則表達式時,應做爲一個總體。
原子包括如下內容:
> 單個字符、數字,如a-z,A-Z,0-9。
> 模式單元,如(ABC)能夠理解爲由多個原子組成的大的原子。
> 原子表,如 [ABC]。
> 從新使用的模式單元,如:\\1
> 普通轉義字符,如:\d, \D, \w
> 轉義元字符,如:\*,\.
*> 元字符
*2. 元字符(具備特殊意義字符):
[] 表示單個字符的原子表
例如:[aoeiu] 表示任意一個元音字母
[0-9] 表示任意一位數字
[a-z][0-9]表示小寫字和一位數字構成的兩位字符
[a-zA-Z0-9] 表示任意一位大小字母或數字
[^] 表示除中括號內原子以外的任何字符 是[]的取反
例如:[^0-9] 表示任意一位非數字字符
[^a-z] 表示任意一位非小寫字母
{m} 表示對前面原子的數量控制,表示是m次
例如:[0-9]{4} 表示4位數字
[1][3-8][0-9]{9} 手機號碼
{m,} 表示對前面原子的數量控制,表示是至少m次
例如: [0-9]{2,} 表示兩位及以上的數字
{m,n}表示對前面原子的數量控制,表示是m到n次
例如: [a-z]{6,8} 表示6到8位的小寫字母
* 表示對前面原子的數量控制,表示是任意次,等價於{0,}
+ 表示對前面原子的數量控制,表示至少1次,等價於{1,}
? 表示對前面原子的數量控制,表示0次或1次(無關緊要) 等價於{0,1}
例如:正整數:[1-9][0-9]*
整數:[\-]?[0-9]+
email:
() 表示一個總體原子,【還有一個子存儲單元的做用】。
也可使用?:來拒絕子存儲。 (?:.*?)
例如:(red) 字串red
(red|blue) 字串red或blue
(abc){2} 表示兩個abc
| 表示或的意思
(rea|blue) 字串red或blue
^ 用在正則單元塊的開頭處,表示必須以指定的開頭
$ 用在正則單元塊的結尾處,表示必須以指定的結尾
. 表示任意一個除換行符以外的字符
經常使用組合: .*? 或 .+? 表示最小匹配全部字符(拒絕貪婪匹配)
3. 普通轉義字符:
*\d 匹配一個數字;等價於[0-9]
*\D 匹配除數字之外任何一個字符;等價於[^0-9]
*\w 匹配一個英文字母、數字或下劃線;等價於[0-9a-zA-Z_]
*\W 匹配除英文字母、數字和下劃線之外任何一個字符;等價於[^0-9a-zA-Z_]
*\s 匹配一個空白字符;等價於[\f\n\r\t\v]
*\S 匹配除空白字符之外任何一個字符;等價於[^\f\n\r\t\v]
\f 匹配一個換頁符等價於 \x0c 或 \cL
*\n 匹配一個換行符;等價於 \x0a 或 \cJ
*\r 匹配一個回車符等價於\x0d 或 \cM
*\t 匹配一個製表符;等價於 \x09\或\cl
\v 匹配一個垂直製表符;等價於\x0b或\ck
\oNN 匹配一個八進制數字
\xNN 匹配一個十六進制數字
\cC 匹配一個控制字符
/^-?\d+$|^-?0[xX][\da-fA-F]+$/ 表示十進制和十六進制的一個數字
^-?\d+$ ^-?0[xX][\da-fA-F]+$
//表示一個郵箱地址
/^[0-9a-zA-Z_-]+@[0-9a-zA-Z_-]+(\.[0-9a-zA-Z_-]+){1,3}$/
4. 模式修正符
i 表示不區分大小寫;
"/[a-zA-Z]/" <==>"/[a-z]/i"
s 表示匹配視爲單行(就是可讓點.支持換行)
U 表示拒絕貪婪匹配
注意.*?和大U不能一塊兒使用
x忽略 能夠忽略正則當中的空白
4、 正則表達式的函數:
--------------------------------------------------
preg_grep -- 返回與模式匹配的數組單元
array preg_grep ( string $pattern , array $input [, int $flags = 0 ] )
面試題:
$day=array('2014-09-26','2014-09/26','2014/12/30','2014/10-29');
* preg_match_all -- 進行全局正則表達式匹配 , 返回共計匹配的個數。
和下面的同樣,不一樣的是匹配到最後(全局匹配)匹配全部a標籤
* preg_match -- 進行正則表達式匹配,只匹配一次,返回1,不然0,
格式:preg_match("正則表達式","被匹配的字串",存放結果的變量名,PREG_OFFSET_CAPTURE,起始偏移量)
其中:PREG_OFFSET_CAPTURE表示獲取匹配索引位置
起始偏移量:從指定位置開始匹配
*preg_replace -- 執行正則表達式的搜索和替換
面試題: $str='09/26/2014';將字串換成 2014-09-26
<b>aaaaaaaaa</b><b>bbbbbbbbb</b><b>cccccccccc</b>將b標籤換成i標籤
*preg_split -- 用正則表達式分割字符串
<dd>
</dd>
==========================
php--文件處理系統
==========================
1、概述:
-------------------------
1.1 文件類型:
文件在windows系統下分爲3種不一樣:文件、目錄、未知
在linux/unix系統下分爲7種不一樣:block、char、dir、fifo、file、link和unknown七種類型
1.2 文件的經常使用函數:
* filetype() --獲取文件類型的函數:
* is_dir( ) -- 判斷給定文件名是不是一個目錄
語法結構:bool is_dir(名稱)
返回類型:若是文件名存在而且是一個目錄則返回 true,不然返回 false。
is_executable( ) -- 判斷給定文件名是否可執行
語法結構:bool is_executable(名稱)
返回類型:若是文件存在且可執行則返回 true ,不然返回 false 。
* is_file( ) -- 判斷給定文件名是否爲一個正常的文件
語法結構:bool is_file(名稱)
返回類型:若是文件存在且爲正常的文件則返回 true 。
is_link( ) -- 判斷給定文件名是否爲一個符號鏈接
語法結構:bool is_link(名稱)
返回類型:若是文件存在而且是一個符號鏈接則返回 true。
is_readable( ) -- 判斷給定文件名是否可讀
語法結構:bool is_readable(文件名稱)
返回類型:若是文件存在而且可讀則返回 true 。
* is_writable( ) -- 判斷給定的文件名是否可寫
語法結構:bool is_writable(文件名稱)
返回類型:若是文件存在而且可寫則返回 true 。
*file_exists( ) 檢查文件或目錄是否存在
*filesize() 取得文件大小(不能獲取目錄大小)
is_readable() 判斷文件是否可讀
is_writable() 判斷文件是否可寫
*filectime() 獲取文件的建立時間
filemtime() 獲取文件的修改時間
fileatime() 獲取文件的訪問時間
stat() 獲取文件大部分屬性
2、目錄的相關操做
----------------------------------------------
2.1 路經的方式:
windows系統:D:/a/b/c.php 或 D:\a\b\c.php
linux/unix系統: /a/b/c.php
爲統一建議使用"/"做爲目錄之間的分割符
2.2 路徑的相關函數(4個):
1. basename("url地址"[,去除部分]) -- 獲取指定url的文件名
2. dirname("url地址") -- 獲取地址的路徑值
示例:
echo basename($url)."<br/>"; //c.php
echo basename($url,".php")."<br/>"; //c (去掉".php")
*3. pathinfo(文件路徑[,須要的下標])--獲取文件路徑的詳細信息,返回一個關聯數組
結果:下標:dirname 路徑名
basename 文件名
extension 後綴名
filename 文件名(去掉後綴的)
示例:
*echo pathinfo($url,PATHINFO_EXTENSION); //php 後綴名
*echo pathinfo($url,PATHINFO_BASENAME); //c.php 文件名
$a = pathinfo($url);
$a結果:
array(4) {
["dirname"]=>
["basename"]=>
string(5) "c.php"
["extension"]=>
string(3) "php"
["filename"]=>
string(1) "c"
}
4. realpath()--獲取指定文件的絕對路徑
示例: echo realpath("1.php"); //D:\AppServ\www\lamp45\09_file_dir\1.php
2.3 目錄的遍歷函數:
*opendir("") -- 打開一個目錄,返回此目錄的資源句柄
*readdir(資源句柄) -- 從目中讀取一個目錄或文件,並指針向下移動一位。
*closedir(資源句柄)-- 關閉打開的目錄
rewinddir(資源句柄) -- 倒回目錄指針(移至首位)
2.4 統計空間的大小
echo "當前磁盤可用大小:".(disk_free_space("./")/1024/1024/1024)."G<br/>";
echo "當前磁盤共計大小:".(disk_total_space("./")/1024/1024/1024)."G<br/>";
2.5 目錄的操做
*mkdir() -- 建立一個目錄
*rmdir() -- 刪除一個目錄(只支持刪除空目錄)
*unlink() -- 刪除一個文件
2.6 複製文件:
copy() --- 複製文件。不支持目錄複製
3、文件基本操做
----------------------------------------------------
*1. fopen(文件名,打開模式) ---打開一個文件
模式:讀(r、r+)、 清空寫(w/w+), 追加寫(a/a+)、 建立模式(x,x+)
*打開模式: *r: 只讀模式打開文件,文件指針執行首位。
r+: 可讀可寫模式打開文件,文件指針執行首位,若文件指針不是在最後,則是覆蓋寫。
*w: 以寫方式打開文件,文件內容清空,若文件不存在,則嘗試建立。
w+: 以寫和讀方式打開文件,文件內容清空,若文件不存在,則嘗試建立。(也會覆蓋寫)
*a: 以追加內容方式打開文件,指針移至最後,若文件不存在,則嘗試建立。
a+: 以追加內容和可讀方式打開文件,指針移至最後,若文件不存在,則嘗試建立。
x: 以建立方式打開文件,可寫。若文件已存在,則報錯。
x+: 以建立方式打開文件,可寫可讀。若文件已存在,則報錯。
附加模式:
t: txt文本模式(字符流)
b: byte字節模式(二進制)默認 (字節流)
如:fopen("a.txt","rb");
文件的讀寫操做也叫流操做,其中流分爲字符流(t)和字節流(b 二進制)
*2. fread(打開的文件資源,讀取的長度) -- 讀取文件內容。
*3. fwrite(打開的文件資源,被寫入的字串[,長度]) -- 向文件寫入內容。
*4. fclose(打開的文件資源) -- 關閉文件
5. fgets() -- 從文件資源中讀取一行
6. fgetc() -- 讀取一個字符
------------不用打開文件可直接操做文件的函數-----------------------
*7. file() 將文件讀出(內容是數組格式),並返回
*8. readfile() 將文件內容讀出,並輸出
9. file_get_contents() 讀取文件內容
10.file_put_contents() 將指定內容寫入文件
---------------------文件指針的操做--------------------------------
11. ftell() --返回文件指針的位置
12. fseek() --設置文件指針的位置
示例:
fseek($f,-2,SEEK_CUR); //從當前指針位置開始,向前移動2位
fseek($f,2,SEEK_SET); //從文件指針開始位置,向後移動2位
fseek($f,-5,SEEK_END); //從文件指針的最後位置開始,向前移動5位
13. rewind() --將文件指針移至首位
------------文件鎖(瞭解)---------------------------
14. bool flock ( int $handle , int $operation [, int &$wouldblock ] )
輕便的諮詢文件鎖定
operation參數:
要取得共享鎖定(讀取的程序),將 operation 設爲 LOCK_SH(PHP 4.0.1 之前的版本設置爲 1)。
要取得獨佔鎖定(寫入的程序),將 operation 設爲 LOCK_EX(PHP 4.0.1 之前的版本中設置爲 2)。
要釋放鎖定(不管共享或獨佔),將 operation 設爲 LOCK_UN(PHP 4.0.1 之前的版本中設置爲 3)。
若是不但願 flock() 在鎖定時堵塞,則給 operation 加上 LOCK_NB(PHP 4.0.1 之前的版本中設置爲 4)。
示例:
<?php
$fp = fopen("/tmp/lock.txt", "w+");
if(flock($fp, LOCK_EX)) { // 進行排它型鎖定
fwrite($fp, "Write something here\n");
flock($fp, LOCK_UN); // 釋放鎖定
} else {
echo "Couldn't lock the file !";
}
fclose($fp);
?>
----------------------------------------------
*15. rename() --修改文件名
16. ftruncate() — 將文件截斷到給定的長度
200:請求成功。
301:被請求的資源已永久移動到新位置。
302:請求的資源如今臨時從不一樣的 URI 響應請求。
401:當前請求須要用戶驗證。
403:服務器已經理解請求,可是拒絕執行它。
404:請求所但願獲得的資源未被在服務器上發現。
500:服務器遇到了一個不曾預料的情況,致使了它沒法完成對請求的處理。通常來講,這個問題都會在服務器的程序碼出錯時出現。
502 做爲網關或者代理工做的服務器嘗試執行請求時,從上游服務器接收到無效的響應。
503:因爲臨時的服務器維護或者過載,服務器當前沒法處理請求。
505:服務器不支持,或者拒絕支持在請求中使用的 HTTP 版本。
2xx:請求成功
3xx:重定向
4xx:請求錯誤
5xx:服務器錯誤
===================================================
對象是客觀存在的一個實體。
類是對對象抽象的一個描述。
概念:對象(實體)、類、 類與對象的關係。
oop面向對象編程的特色:封裝、繼承、多態
類和對象的關係:
類的實例化結果就是一個對象(使用new關鍵字)
對對象的抽象描述就是一個類
1、如何定義一個類,和使用
-------------------------------------
1.1 語法格式:
[修飾符] class 類名{
【成員屬性】定義變量
【成員方法】定義函數
}
[修飾符] class 類名 [extends 父類] [implements 接口1[,接口2...]]{
【成員屬性】定義變量
【成員方法】定義函數
}
1.2 其中成員屬性格式:
修飾符 $變量名[=默認值]; 如:public $name="zhangsan";
注意:成員屬性不能夠是帶運算符的表達式、變量、方法或函數的調用。 如:
public $var3 = 1+2;
public $var4 = self::myStaticMethod();
public $var5 = $myVar;
正肯定義方式:
public $var6 = 100; //普通數值(4個標量:整數、浮點數、布爾、字串)
public $var6 = myConstant; //常量
public $var7 = self::classConstant; //靜態屬性
public $var8 = array(true, false); //數組
經常使用屬性的修飾符:public、protected、private、static、var
1.3 其中成員方法格式:
[修飾符] function 方法名(參數..){
[方法體]
[return 返回值]
}
經常使用的修飾符:public、protected、private、static、abstract、final
1.4 對象: 他是經過new 類()來產生的對象。其中new稱爲實例化
也就是:類的實例化就會產生一個對象。
如: $p = new Person();
1.5 $this 關鍵字: 表示本身,表示當前使用對象。
咱們在類中調用本身的成員屬性或函數都是使用 $this->調用。
注意:非靜態方法中可使用this關鍵字
2、構造函數和析構函數
------------------------------------------
2.1. 構造方法(構造函數):
當咱們經過new關鍵字來建立一個對象時,第一個自動執行的方法稱爲構造方法。
方法名__construct(); 主要用於初始化對象。
(在php4.0時可以使用與類名重名的方法做爲構造方法)
2.2. 析構方法:當這個對象被銷燬時最後自動調用的方法,稱爲析構方法。
__destruct(); 目的是釋放資源(如關閉鏈接、文件,釋放資源)
3、封裝(訪問控制)
--------------------------------------------------------------------
3.1 封裝:就是將屬性私有,並提供公有的setter放置與getter取值方法
public(公有) protected(受保護) private(私有)
===========================================================
在本類中 Y Y Y
在子類中 Y Y N
在類外邊 Y N N
4、 重載
----------------------------------------------------------------
4.1 屬性重載中的四個魔術方法:__set() __get() __isset() __unset()
* __get():當咱們直接輸出一個對象中的非公有屬性時會自動調用的方法,
並將屬性名以第一個參數傳進去。
__get($name){...}
* __set(); 當咱們直接設置一個對象中的非公有屬性時會自動調用的方法,
並將屬性名以第一個參數,值做爲第二參數傳進去。
__set($name,$value){...}
__isset()當對未定義的變量調用isset() 或 empty()時,__isset() 會被調用。
//當isset判斷一個對象的非公有屬性是否存在時,自動調用此方法。
public function __isset($param){
return isset($this->$param);
}
__unset()當對未定義的變量調用unset()時,__unset() 會被調用。
//當unset銷燬一個對象的非公有屬性時,自動調用此方法。
public function __unset($param){
unset($this->$param);
}
4.2 方法的重載:
* mixed __call ( string $name , array $arguments )
mixed __callStatic ( string $name , array $arguments ) php5.3.0支持
當調用一個不可訪問方法(如未定義,或者不可見)時,__call() 會被調用。
其中第一個參數表示方法名,第二參數表示調用時的參數列表(數組類型)
當在靜態方法中調用一個不可訪問方法(如未定義,或者不可見)時,__callStatic() 會被調用。
5、 繼承
----------------------------------------------------------------------------
5.1. 繼承:extends
假如B類繼承A類,那麼就繼承了A中全部非私有屬性和方法(函數)。
其中A叫父類(基類)。 B叫子類(派生類)
class B extends A{
....
}
在php中類只支持【單一繼承】,就是一類只能繼承一個父類。
parent關鍵字:若子類出現覆蓋父類的方法,那麼有時還想調用被覆蓋掉了的方法,
咱們就是用關鍵字【parent::父類方法】還有使用類名
class A{
public function __construct(){
//....
}
}
class B extends A{
public function __construct(){
parent::__construct();//注意要調用一下父類的構造方法
//....
}
}
6、 final、static和const
---------------------------------------------------------------
6.1 final關鍵字:主要用於修飾類與成員方法(函數)
使用final關鍵字修飾類,表示這個類不能夠有子類。(通常是沒有必要有子類的,防止有子類的覆蓋)
使用final關鍵字修飾的方法,不能夠在子類中被覆蓋(重寫)。
目的:一是爲了安全,二是沒有必要
*6.2 static關鍵字:表示靜態的意思: 用於修飾類的屬性和方法
*static關鍵字修飾方法稱爲靜態方法,能夠不用new(實例化)就能夠直接使用方法:如 類名::方法名
注意:靜態方法在實例化後的對象也能夠訪問 //$對象名->靜態方法名
static關鍵字修飾屬性稱爲靜態屬性,能夠不用new(實例化)就能夠直接訪問屬性:如 類名::屬性名
注意:靜態屬性在實例化後的對象不能夠訪問; //$對象名->靜態屬性名
注意:靜態屬性是共享的。也就是new不少對象也是共用一個屬性
*在靜態方法中不可使用非靜態的內容。就是不讓使用$this
在類的方法中可使用其餘靜態屬性和靜態方法,不過要使用self關鍵字:
如 【self::靜態屬性名】或【self::靜態方法名】
(>PHP5.3)在一個類的方法中若沒有出現$this的調用,默認此方法爲靜態方法。
*6.3. const關鍵字: 在類中修飾成員屬性,將其定義成常量(不可修改的),
通常要求常量名都是大寫的,沒有「$」符 沒有其餘修飾符(public)
在其餘方法中使用常量: 【self::常量名】
定義格式: const 成員常量名="值";
使用:在類的方法中: echo self::成員常量名;
在類的外部: echo 類名::成員常量名;
6.4. 檢測當前對象是不是屬性指定的類
instanceof 用於肯定一個 PHP 變量是否屬於某一類 class 的實例:
is_a — 若是對象屬於該類或該類是此對象的父類則返回 TRUE
7、 類型約束
----------------------------------------------------
1. 類型約束可使用的類型是:數組或對象。
若指定的一個類名,那麼可傳入本類及子類的對象進去。
可使用的約束類型:(複合類型)數組array,類名、抽象類名、接口名
//以下面的類
class MyClass
{
/**
* 測試函數
* 第一個參數必須爲類OtherClass的一個對象
*/
public function test(OtherClass $otherclass) {
echo $otherclass->var;
}
/**
* 另外一個測試函數
* 第一個參數必須爲數組
*/
public function test_array(array $input_array) {
print_r($input_array);
}
}
8、其餘魔術方法:
-----------------------------------------------------------------
1. 對象複製clone 克隆一個對象,由於對象屬於引用類型,普通的「=」號屬於引用賦值,
全部須要clone來複制一份。
魔術方法:__clone() 當執行clone克隆時會自動調用的方法。
2. __toString()方法:魔術方法,當咱們直接要輸出一個對象時,如echo $a,print $a,
那麼會自動調用的方法。
注意:__toString()方法必須返回一個字串類型的值。
3. *自動加載類函數__autoload(類名):
當new 實例化一個對象時,這個類若不存在,則自動調用此函數,並將類名存入參數
我可使用這個實現類的自動加載。
9、 對象序列化(串行化)(webservice XML)(在對象持久化存儲、和傳輸中使用)
----------------------------------------------------------------------------------------------
serialize() -- 串行化
unserialize() -- 反串行化
php裏面的值均可以使用函數serialize()來返回一個包含字節流的字符串來表示。
unserialize()函數可以從新把字符串變回php原來的值。
序列化一個對象將會保存對象的全部變量,可是不會保存對象的方法,只會保存類的名字。
__sleep 和 __wakeup
__sleep(): 是執行串行化時自動調用的方法,目的是實現資源類型的屬性實關閉操做。
注意:sleep方法須要返回一個數組,其中數組中的值是串行化時要保留的屬性名
__wakeup():是在執行反串行化時自動調用的方法,目的是實現資源屬性的打開(sleep方法關閉的資源)
public function __seep(){
return array('server', 'username', 'password', 'db');
//此串行化要保留四個屬性
}
10、 抽象類:
-------------------------------------------------------------------------------------
當類中有一個方法,他沒有方法體,也就是沒有花括號,直接分號結束。
如 public abstract function fun();
象這種方法咱們叫抽象方法,必須使用關鍵字abstract定義,
包含這種方法的類必須是抽象類也要使用關鍵字abstract加以聲明。
抽象類的特色:
不能實例化,也就new成對象
若想使用抽象類,就必須定義一個類去繼承這個抽象類,並定義覆蓋父類的抽象方法(實現抽象方法)。
其實抽象類對於子類(實現類),有一個約束的做用,
含有抽象方法的類確定是抽象類,可是不是全部的抽象類都必須包含抽象方法。
11、 接口:
-------------------------------------------------------------------------------------------------
假如一個抽象類中全部的方法都是抽象的,那麼咱們可使用另一種方式定義:接口
接口使用關鍵字interface來定義,接口中只能有常量與抽象方法。
格式:
interface 接口名{
[常量定義]
[抽象方法定義] //注意不要有abstract關鍵字
}
實現方式:class 類名 implements 接口名,接口名2{
實現體。。
}
12、多態
-------------------------------------------------------------------------------------------
*多態(使用方式):對於同一個方法,傳入不一樣對象,實現了不一樣的效果,這個就是多態的意思,
須要使用的技術:繼承或實現,方法的覆蓋(重寫)。
實例:
主板:mainboard PCI插槽(規範接口)
第三方生產
聲卡: soundCard
網卡: networkCard
設計模式:單例、單態設計模式
十3、異常處理:
--------------------------------------------------------------------------------
在php5中有一種新的錯誤處理機制--異常處理:(採用面向對象方式的)
涉及的類:Exception異常類
結構:
<?php
class Exception
{
protected $message = 'Unknown exception'; // 異常信息
protected $code = 0; // 用戶自定義異常代碼
protected $file; // 發生異常的文件名
protected $line; // 發生異常的代碼行號
function __construct($message = null, $code = 0);
final function getMessage(); // 返回異常信息
final function getCode(); // 返回異常代碼
final function getFile(); // 返回發生異常的文件名
final function getLine(); // 返回發生異常的代碼行號
final function getTrace(); // backtrace() 數組
final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息
/* 可重載的方法 */
function __toString(); // 可輸出的字符串
}
?>
使用:
1. throw new Exception("年齡不能夠爲負數"); //異常拋出
2. try{
//捕獲異常
$s->age=30;
$s->age=-40;
3. }catch(Exception $e){
//異常處理
echo $e->getmessage();
}
php面向對象中的實用類:
==================================================================
1. Db.class.php 表數據信息操做類
2. page.class.php 分頁類
方法:屬性:URL地址、條件、總頁數、總條數、頁大小、當前 頁
構造方法(參數:總條數、頁大小、條件)
私有方法:計算最大頁數、判斷當前頁數是否越界
輸出分頁信息方法:(輸出給Model類中limit方法使用)
私有屬性的getter方法(__GET());
輸出分頁信息方法(輸出HTML代碼)(就是:【上一頁】【下一頁】。。。。)
3. images.class.php 圖片處理類(等比縮放、圖片水印、裁剪);
4. fileupload.class.php 文件上傳類
5. 驗證碼輸出
==================
文件上傳和下載筆記
=====================
1、 php.ini的配置信息
file_uploads = On /Off 是否容許文件上傳
upload_max_filesize=2M 上傳的文件的最大大小
post_max_size = 8M POST數據所容許的最大大小
upload_tmp_dir 上傳文件放置的臨時目錄
注意配置:upload_max_filesize的大小必定要小於post_max_size的配置大小。
2、(發送客戶端)上傳的form表單:
一、 表單必須是post提交
二、 上傳的類型:enctype="multipart/form-data"
三、上傳使用的表單項
<input type="file" name=".." />
4.(可選)上傳大小限制的表單隱藏域:MAX_FILE_SIZE,
<input type="hidden" name="MAX_FILE_SIZE" value="大小字節"/>
注意:此字段必須在文件輸入字段以前(常放在form標籤後面)
3、(接收服務器端):
1. 使用$_FILES全局數組來接收上傳信息
在每一個上傳的文件裏,$_FILES中都會有5個屬性:
error:上傳的錯誤號:0--4
0:表示沒有發生任何錯誤。
1:上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。
2:表示上傳文件大小超出了HTML表單隱藏域屬性的MAX_FILE_SIZE元素所指定的最大值。
3:表示文件只被部分上傳。
4:表示沒有上傳任何文件。
6:找不到臨時文件夾
7:文件寫入失敗
name:上傳的文件名
size:文件的大小
type:文件類型
tmp_name: 臨時文件
2:is_uploaded_file() //是不是上傳文件
3:move_uploaded_file() //執行移動上傳文件
1.初始化上傳文件信息
2.根據上傳錯誤號判斷上傳是否成功
3.判斷上傳文件類型
4.判斷上文件大小
5.隨機上傳文件名
6.執行上傳文件處理
4、 下載設置:
header("Content-Type:類型"); //指定響應類型
header("Content-Disposition:attachment;filename=文件名"); //**執行下載文件名
header("Content-Length:文件大小");
readfile("./uploads/".$picname); //讀取並輸出圖片內容;
**流程控制
1.語言結構,PHP程序結構分3種
順序結構
分支結構
循環結構
特殊語句:break continue die/exit
2.分支結構:
2.1.單一分支結構
if(條件式){
條件式爲true則執行此處
}
2.2雙分支結構
if(條件式){
條件式爲true則執行此處
}else{
條件式爲false則執行此處
}
2.3elseif多分支語句
if(條件式1){
條件式1爲true則執行此處
}elseif(條件式2){
條件式2爲true則執行此處
...
}elseif(條件式n){
條件式n爲true則執行此處
}else{
不然執行此處
}
2.4switch多分支結構
不要真假 要的是具體的值
switch(表達式){
case 值1:
...
break;
case 值2:
...
break;
case 值n:
...
break;
default:
...
break;
}
//12306話費查詢服務 1 2 3 4 5 6 7
//值能夠是什麼:不能是變量,只能是標題字符串,整型,浮點數,布爾值
//經常使用數字 或者名字字符串 布爾值沒有必要還不如用if else
2.5巢狀嵌套分支結構
if(條件式1){
if(條件式2){
...
}else{
...
}
}else{
if(條件式3){
...
}else{
...
}
}
//判斷是否登陸 登陸後判斷是否有權限
3.循環結構
-----------------------------------------
3.1for循環
for(表達式1,表達式2,表達式3){
循環體語句組
}
表達式1:負責初始化循環條件(只執行一次)
表達式2:是否繼續循環條件判斷(循環次數n+1)
表達式3:影響循環條件(遞增或遞減等操做)(循環次數n次)
3.2while循環
表達式1
while(表達式2){
循環體
[表達式3]
}
3.3do...while循環
[表達式1]
do{
循環體
[表達式3]
}while(表達式2);
4特殊流程控制語句
------------------------------------------------
break 退出循環 //break;
continue 結束本次循環繼續下一次
exit('') die('') 終止程序
1、 *php中錯誤分類:
1. 語法錯誤:
2. 運行時錯誤:
3. 邏輯錯誤:
2、 *在php.ini配置文件中,經常使用的錯誤和日誌的配置。
error_reporting:錯誤等級
display_errors:在瀏覽器中是否顯示錯誤信息
log_errors=On; 是否啓動日誌記錄
ini_set() //php.ini配置信息臨時設置函數
ini_set("display_errors","On"); //經過函數設置,實現當前腳本臨時關閉錯誤輸出。
error_reporting(E_ALL & ~E_NOTICE); //臨時設置錯誤輸出級別。
3、 PHP的日誌記錄方式:
---------------------------
*1. 採用文件記錄,
2. 依靠系統的服務信息幫助記錄
**1.採用文件記錄日誌
一、配置:在php.ini配置文件中配置以下信息
error_reporting = E_ALL //將向PHP發送每一個錯誤
display_errors=Off //不顯示錯誤報告
* log_errors=On //決定日誌語句記錄的位置。
log_errors_max_log=1024 // 每一個日誌項的最大長度
* error_log=G:/myerror.log //指定錯誤寫進的文件
二、使用函數:在php文件中使用error_log()來記錄日誌,就能夠將
信息寫入到myerror.log文件中
如:error_log("登陸失敗了!");//人爲的記錄錯誤信息
注意:當前php程序保錯時,信息也會自動寫入到myerror.log
2. 依靠系統的服務信息幫助記錄日誌
一、先配置PHP.ini文件中
error_reporting = E_ALL //將向PHP發送每一個錯誤
* display_errors=Off //不顯示錯誤報告
* log_errors=On //決定日誌語句記錄的位置。
log_errors_max_log=1024 // 每一個日誌項的最大長度
* error_log=syslog //指定到系統日誌中。
二、使用四個函數來記錄日誌:
define_syslog_variables(); //爲系統日誌初始化配置
openlog(); //打開一個日誌連接
syslog(); //發送一條日誌記錄
closelog(); //關閉日誌連接
4、 日期/時間函數
========================================
checkdate -- 驗證一個格里高裏日期
date_default_timezone_get -- 取得一個腳本中全部日期時間函數所使用的默認時區
*date_default_timezone_set('PRC') -- 設定用於一個腳本中全部日期時間函數的默認時區
date_sunrise -- 返回給定的日期與地點的日出時間
date_sunset -- 返回給定的日期與地點的日落時間
**date -- 格式化一個本地時間/日期 date('Y-m-d H:i:s',mktime(時,分,秒,月,日,年))
getdate -- 取得日期/時間信息
gettimeofday -- 取得當前時間
gmdate -- 格式化一個 GMT/UTC 日期/時間
gmmktime -- 取得 GMT 日期的 UNIX 時間戳
gmstrftime -- 根據區域設置格式化 GMT/UTC 時間/日期
idate -- 將本地時間日期格式化爲整數
localtime -- 取得本地時間
*microtime -- 返回當前 Unix 時間戳和微秒數microtime(true)
*mktime -- 取得一個日期的 Unix 時間戳
時分秒 月日年
strftime -- 根據區域設置格式化本地時間/日期
strptime -- 解析由 strftime() 生成的日期/時間
**strtotime -- 將任何英文文本的日期時間描述解析爲 Unix 時間戳
**time -- 返回當前的 Unix 時間戳
============================
Classes/Object 函數
============================
參考手冊中--與對象和類有關的擴展函數
1. class_alias — 爲類建立一個別名
------------------------------------------------
格式:bool class_alias ([ string $original [, string $alias ]] )
示例:
class foo { }
class_alias('foo', 'bar');
$a = new foo;
$b = new bar;
// the objects are the same
var_dump($a == $b, $a === $b); //bool(true)
var_dump($a instanceof $b); //bool(false)
// the classes are the same
var_dump($a instanceof foo); //bool(true)
var_dump($a instanceof bar); //bool(true)
var_dump($b instanceof foo); //bool(true)
var_dump($b instanceof bar); //bool(true)
*2. class_exists — 檢查類是否已定義
-----------------------------------------------------------
格式: bool class_exists ( string $class_name [, bool $autoload ] )
--若是由 class_name 所指的類已經定義,此函數返回 TRUE,不然返回 FALSE。
默認將會嘗試調用 __autoload,若是不想讓 class_exists() 調用 __autoload,
能夠將 autoload 參數設爲 FALSE。
3. get_called_class — the "Late Static Binding" class name
---------------------------------------------------------------------
(PHP 5 >= 5.3.0) 獲取調用者的類名
*4. get_class_methods — 返回由類的方法名組成的數組
----------------------------------------------------------------------
格式:array get_class_methods ( mixed $class_name )
返回由 class_name 指定的類中定義的方法名所組成的數組。若是出錯,則返回 NULL。
從 PHP 4.0.6 開始,能夠指定對象自己來代替 class_name
5. get_class_vars — 返回由類的默認公有屬性組成的數組
-----------------------------------------------------------------------
格式: array get_class_vars ( string $class_name )
返回由類的默認公有屬性組成的關聯數組,此數組的元素以 varname => value 的形式存在。
*6. get_class — 返回對象的類名
-----------------------------------------------------------------------
格式: string get_class ([ object $obj ] )
返回對象實例 obj 所屬類的名字。若是 obj 不是一個對象則返回 FALSE。
7. get_declared_classes — 返回由已定義類的名字所組成的數組
--------------------------------------------------------------------------
格式:array get_declared_classes ( void )
返回由當前腳本中已定義類的名字組成的數組。
8. get_declared_interfaces — 返回一個數組包含全部已聲明的接口
--------------------------------------------------------------------------
格式:array get_declared_interfaces ( void )
本函數返回一個數組,其內容是當前腳本中全部已聲明的接口的名字。
9. get_object_vars — 返回由對象屬性組成的關聯數組
------------------------------------------------------------------
格式:array get_object_vars ( object $obj )
返回由 obj 指定的對象中定義的屬性組成的關聯數組。
10. get_parent_class — 返回對象或類的父類名
------------------------------------------------------------------
格式:string get_parent_class ([ mixed $obj ] )
若是 obj 是對象,則返回對象實例 obj 所屬類的父類名。
11. interface_exists — 檢查接口是否已被定義
------------------------------------------------------------------
格式:bool interface_exists ( string $interface_name [, bool $autoload ] )
本函數在由 interface_name 給出的接口已定義時返回 TRUE,不然返回 FALSE。
*12. is_a — 若是對象屬於該類或該類是此對象的父類則返回 TRUE
咱們可使用運算符: instanceof代替上面的is_a操做
------------------------------------------------------------------
格式:bool is_a ( object $object , string $class_name )
若是對象是該類或該類是此對象的父類則返回 TRUE,不然返回 FALSE。
13. is_subclass_of — 若是此對象是該類的子類,則返回 TRUE
------------------------------------------------------------------
格式:bool is_subclass_of ( object $object , string $class_name )
若是對象 object 所屬類是類 class_name 的子類,則返回 TRUE,不然返回 FALSE。
*14. method_exists — 檢查類的方法是否存在
--------------------------------------------------------------------
格式:bool method_exists ( object $object , string $method_name )
若是 method_name 所指的方法在 object 所指的對象類中已定義,則返回 TRUE,不然返回 FALSE。
*15. property_exists — 檢查對象或類是否具備該屬性
--------------------------------------------------------------------
格式:bool property_exists ( mixed $class , string $property )
本函數檢查給出的 property 是否存在於指定的類中(以及是否能在當前範圍內訪問)。
===================================
PHP_MySQL的操做
===================================
1、操做步驟:
1. 鏈接MySQL數據庫
2. 判斷是否鏈接成功
3. 選擇數據庫
4. 設置字符集
5. 準備SQL語句
6. 向MySQL服務發送SQL語句
7. 解析處理結果集
8. 釋放結果集,關閉數據庫鏈接
2、經常使用操做:
1. mysql_connect();--鏈接數據庫,並返回一個鏈接資源
格式: mysql_connect(主機名,用戶,密碼);
--其中參數可選,若不寫則參考php.ini中默認配置
2. mysql_error(); --獲取剛剛(最後)執行數據庫操做的錯誤信息
3. mysql_errno(); --獲取剛剛(最後)執行數據庫操做的錯誤號
錯誤號爲0表示沒有錯誤
4. mysql_select_db(數據庫名[,數據庫鏈接]);
選擇一個數據庫,等同於"use 庫名"語句
5. mysql_set_charset(字符編碼); --設置字符編碼
例如:mysql_set_charset("utf8"); 等同於:mysql_query("set names utf8");
6. mysql_query(sql語句[,數據庫鏈接]); -- 發送一條sql語句
sql語句如果查詢,則返回結果集,其餘則返回boolean值表示執行是否成功。
7. 解析結果集函數:
mysql_fetch_array(); --以關聯和索引兩種方式數組解析結果集
也能夠指定第二參數來定義返回格式:
MYSQL_BOTH(0關聯和索引)/MYSQL_NUM(2索引)/MYSQL_ASSOC(1關聯)
mysql_fetch_row(); --以索引式數組解析結果集
*mysql_fetch_assoc(); --以關聯式數組解析結果集
mysql_fetch_object(); --以對象方式解析結果集
8. mysql_free_result(結果集名); --釋放結果集
9. mysql_close(數據庫鏈接); --關閉數據庫鏈接
10. mysql_num_rows(結果集); --獲取結果集中的數據條數
11. mysql_num_fields(結果集); --獲取結果集中的列數(字段數量)
12. mysql_result(); --定位取結果
echo mysql_result($result,0,3)."<br/>"; //獲取第1條數據的第4列中的值
echo mysql_result($result,1,2)."<br/>"; //獲取第2條數據的第3列中的值
echo mysql_result($result,5,4)."<br/>"; //獲取第6條數據的第5列中的值
13.mysql_affected_rows — 取得前一次 MySQL 操做所影響的記錄行數
關聯的 INSERT,UPDATE 或 DELETE 查詢所影響的記錄行數。
14. mysql_insert_id — 取得上一步 INSERT 操做產生的 ID
PHP帶來的真正價值在於:將從資源(如數據庫和表單值)獲得的動態信息放入web頁面中。
計算機中的全部數據,最基本的單位是比特(bit),也叫位,即一個二進制數據,用0/1表示。數據的最小尋址單位成爲字節(一般是8bit,以8位位一組)。
在同一時間,計算機能處理的二進制的位數叫字長。
32位計算機在同一時間能處理字長爲32位的二進制數據。
64位計算機技術從2004年推出至今,目前尚未獲得大規模應用。
字節是計算機信息技術用於計量存儲容量和傳輸容量的一種計量單位,1字節等於8位二進制。字節的英文是Byte,是Binary Term的縮寫。Byte(字節)可被縮寫成B,例如MB表示MegaByte。
1bit=1位/比特(二進制數據)
1Byte=8bit(字節,Binary Term)
1字母=1(Byte)字節=8bit
1漢字=2Byte(字節)=16bit
1KB=1024Byte(2的10次方字節)(KB,KiloByte)
1MB=1024KB(2的20次方字節)(MB,MegaByte)
1GB=1024MB(2的30次方字節)(GibaByte)
1TB=1024GB(2的40次方字節)(TB,TeraByte)
在計算機中,負數以其正值的補碼形式表示。
原碼:一個整數,按照絕對值大小轉換成二進制數,成爲原碼。
反碼:(相互的)將二進制數按位取反,所得的新二進制數稱爲原二進制的反碼。
(1變0,0變1)
補碼:反碼加1稱爲補碼。
編程語言是用來解決問題的。
PHP主要有4種基本數據類型:布爾型(boolean)、整型(integer)、浮點型(float)、字符串(string)。
在編程語言中,常見的數據類型爲原始類型。
變量的類型一般不是由程序員決定,而是由PHP運行過程決定。
PHP還有兩種複合類型:數組(array)和對象(object)。
兩種特殊類型:null和資源(resource)。
1)整數或浮點數又統稱爲數值類型。
程序語言的三大基本知識點:
數據類型、控制結構、數據結構。
字符串鏈接操做符(.):
處理字符串是PHP應用的核心部分,鏈接字符串將右邊的操做數添加到左邊的操做數後面,並返回結果字符串。
PHP支持許多傳統編程結構來控制程序執行流程。
條件語句(如if/else和switch)依據一些條件,容許程序去執行代碼的不一樣塊或根本不執行。循環(如while和for)支持重複執行特定代碼。
eg:for(start; condition; increment){
statement;
}
1.爲何函數能夠在任意位置調用執行?
由於PHP3引擎在解析的時候第一件事情是拿到函數,將函數放到內存中。
2.函數裏return和echo的區別?
在函數裏面,echo一個值僅僅會輸出,調用函數的時候,輸出的值不會賦值給變量($a);return是將return後面的值,返回到調用處,值能夠賦給變量。
3.形參爲局部變量。
系統函數的使用:
七個注意事項:
1.帶bool值的一般是操做成功沒成功,或者是對不對,有沒有.....
2.若是看到帶mixed的是指能夠傳入任意類型的數據。
3.帶&符的只可以傳變量,傳了變量後,若是函數裏面改變其值,函數外面也直接改變值。
4.帶[]的表明可選,能夠傳也能夠不傳。
5.帶......的表明能夠傳入任意多個元素。
6.callback是傳回調函數。
7.有事沒事看手冊,練手冊當中的函數。
PHP數組:一維數組,能夠向數組當中放入不一樣的各個類型的數據。
向數組中追加一個元素:$array[]="鍵"=>"值"/"值";
經過數組變量[下標]=值,來修改數組當中的一個值。
遍歷:一個一個讀出來。
採用for循環,來遍歷一個數組。有侷限性:只可以遍歷連續的索引數組。
使用foreach來遍歷數組。
foreach($array as [$key=>]$value){
代碼執行區間;
}
兩個以上方法公有屬性,應寫成成員屬性。
isset():能夠向裏面傳入多個變量,中間用逗號隔開,只要裏面有一個爲空(必定是null才能夠),就返回真值,只能判斷是否爲null;
empty():只能向裏面傳入一個值,若是爲0,就返回真值,(注意:這個額能夠判斷是否非0,而isset()判斷是否爲空的);
isset():必定要爲其中一個變量爲空(Null),結果爲假,不然就是真。(爲0的狀況,也是真)。
查看變量是否已經設置(即便是空字符串),用isset();
用unset()來刪除一個變量的值;
unset()將變量完全來刪除;
優先級規則縮減到兩條:
1.乘法和除法的優先級高於加法和減法;
2.其餘的地方用括號。
自定義函數的基本語法結構:
//參數列表,用處是接受數據;
function 函數名(參數列表){
//函數體;(完成某一個功能的指令集合,這個必須有)
//return語句;(return語句主要的用處是返回一個結果,這個能夠沒有)
}
++$i和$i++的區別是:前者是加了以後再判斷,後者是判斷以後再運算。
1.類是抽象的,表明着一類事物;
2.對象是具體的,是類的一個具體實例;
3.類是對象的模板,對象是類的一個個體實例。
class 類名{
成員屬性;(變量)
成員方法;(函數)
}
1.$this:本質上能夠理解就是這個對象的地址;
2.哪一個對象使用到$this,就是哪一個對象地址;
3.$this不能在類外部使用;