2016年6月15日 星期三

CSS: 選擇器

CSS3 選擇器

在 CSS 中,選擇器是一種模式,用於選擇需要添加樣式的元素。
"CSS" 列指示該屬性是在哪個 CSS 版本中定義的。(CSS1、CSS2 還是 CSS3。)
選擇器 例子 例子描述 CSS
.class .intro 選擇 class="intro" 的所有元素。 1
#id #firstname 選擇 id="firstname" 的所有元素。 1
* * 選擇所有元素。 2
element p 選擇所有 <p> 元素。 1
element,element div,p 選擇所有 <div> 元素和所有 <p> 元素。 1
element element div p 選擇 <div> 元素內部的所有 <p> 元素。 1
element>element div>p 選擇父元素為 <div> 元素的所有 <p> 元素。 2
element+element div+p 選擇緊接在 <div> 元素之後的所有 <p> 元素。 2
[attribute] [target] 選擇帶有 target 屬性所有元素。 2
[attribute=value] [target=_blank] 選擇 target="_blank" 的所有元素。 2
[attribute~=value] [title~=flower] 選擇 title 屬性包含單詞 "flower" 的所有元素。 2
[attribute|=value] [lang|=en] 選擇 lang 屬性值以 "en" 開頭的所有元素。 2
:link a:link 選擇所有未被訪問的鏈接。 1
:visited a:visited 選擇所有已被訪問的鏈接。 1
:active a:active 選擇活動鏈接。 1
:hover a:hover 選擇鼠標指針位於其上的鏈接。 1
:focus input:focus 選擇獲得焦點的 input 元素。 2
:first-letter p:first-letter 選擇每個 <p> 元素的首字母。 1
:first-line p:first-line 選擇每個 <p> 元素的首行。 1
:first-child p:first-child 選擇屬於父元素的第一個子元素的每個 <p> 元素。 2
:before p:before 在每個 <p> 元素的內容之前插入內容。 2
:after p:after 在每個 <p> 元素的內容之後插入內容。 2
:lang(language) p:lang(it) 選擇帶有以 "it" 開頭的 lang 屬性值的每個 <p> 元素。 2
element1~element2 p~ul 選擇前面有 <p> 元素的每個 <ul> 元素。 3
[attribute^=value] a[src^="https"] 選擇其 src 屬性值以 "https" 開頭的每個 <a> 元素。 3
[attribute$=value] a[src$=".pdf"] 選擇其 src 屬性以 ".pdf" 結尾的所有 <a> 元素。 3
[attribute*=value] a[src*="abc"] 選擇其 src 屬性中包含 "abc" 子串的每個 <a> 元素。 3
:first-of-type p:first-of-type 選擇屬於其父元素的首個 <p> 元素的每個 <p> 元素。 3
:last-of-type p:last-of-type 選擇屬於其父元素的最後 <p> 元素的每個 <p> 元素。 3
:only-of-type p:only-of-type 選擇屬於其父元素唯一的 <p> 元素的每個 <p> 元素。 3
:only-child p:only-child 選擇屬於其父元素的唯一子元素的每個 <p> 元素。 3
:nth-child(n) p:nth-child(2) 選擇屬於其父元素的第二個子元素的每個 <p> 元素。 3
:nth-last-child(n) p:nth-last-child(2) 同上,從最後一個子元素開始計數。 3
:nth-of-type(n) p:nth-of-type(2) 選擇屬於其父元素第二個 <p> 元素的每個 <p> 元素。 3
:nth-last-of-type(n) p:nth-last-of-type(2) 同上,但是從最後一個子元素開始計數。 3
:last-child p:last-child 選擇屬於其父元素最後一個子元素每個 <p> 元素。 3
:root :root 選擇文檔的根元素。 3
:empty p:empty 選擇沒有子元素的每個 <p> 元素(包括文本節點)。 3
:target #news:target 選擇當前活動的 #news 元素。 3
:enabled input:enabled 選擇每個啟用的 <input> 元素。 3
:disabled input:disabled 選擇每個禁用的 <input> 元素 3
:checked input:checked 選擇每個被選中的 <input> 元素。 3
:not(selector) :not(p) 選擇非 <p> 元素的每個元素。 3
::selection ::selection 選擇被用戶選取的元素部分。 3

2016年4月28日 星期四

Android: 繪圖

## 簡單圖形繪製
protected void onDraw(Canvas canvas) {//重寫的繪製方法
super.onDraw(canvas);
canvas.drawColor(Color.BLACK);//繪製黑色背景
Paint paint = new Paint();//建立畫筆
paint.setColor(Color.WHITE);//設置畫筆顏色為紅色
canvas.drawRect(10, 10, 110, 110, paint);//繪製矩形
canvas.drawText("這是字符串", 10, 130, paint);//字符串,以字符串下面為基準
RectF rf1 = new RectF(10, 130, 110, 230);//定義一個矩形
canvas.drawArc(rf1, 0, 45, true, paint);//畫弧,順時針
canvas.drawLine(150, 10, 250, 110, paint);//畫線
RectF rf2 = new RectF(150, 130, 250, 230);//定義一個矩形
canvas.drawOval(rf2, paint);//畫圓 
}

## 貼圖功能
public void initBitmap(){ 
paint = new Paint();//建立一個畫筆
myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.img);//獲得圖片資源
}
@Override
protected void onDraw(Canvas canvas) {//重寫的繪製方法
// TODO Auto-generated method stub
super.onDraw(canvas);
paint.setAntiAlias(true);//打開抗鋸齒
paint.setColor(Color.WHITE);//設置畫筆的顏色
paint.setTextSize(15);
canvas.drawBitmap(myBitmap, 10, 10, paint);//繪製圖片
canvas.save();  //儲存畫布
Matrix m1=new Matrix();
m1.setTranslate(500, 10);  // 平移
Matrix m2=new Matrix();
m2.setRotate(15);  // 旋轉
Matrix m3=new Matrix();
m3.setConcat(m1, m2);  
m1.setScale(0.8f, 0.8f);
m2.setConcat(m3, m1);
canvas.drawBitmap(myBitmap, m2, paint);
canvas.restore();
canvas.save();
paint.setAlpha(180);
m1.setTranslate(200,100);
m2.setScale(1.3f, 1.3f);
m3.setConcat(m1, m2);
canvas.drawBitmap(myBitmap, m3,  paint);
paint.reset();
canvas.restore();
paint.setTextSize(40);
paint.setColor(0xffFFFFFF);
canvas.drawText("圖片的寬度: "+myBitmap.getWidth(), 20, 380, paint);//繪製字符串,圖片的寬度
canvas.drawText("圖片的高度: "+myBitmap.getHeight(), 20, 430, paint);//繪製字符串,圖片的高度
paint.reset();
}

2016年4月20日 星期三

JS: JavaScript 陣列也可這樣用

今天看到一段程式碼, 覺得很有趣於是吧它記錄下來, 如下
var p=[];
p.push('r='+Math.random().toString(36).substring(7));
p.push('w='+screen.width);
p.push('h='+screen.height);
var a=p.join('&');
alert("a = " + a);

p=[]; 是宣告一個空陣列
p.push  是於陣列內放入一個值
p.join('&') 是得到一個將陣列內容以 & 號串聯後的新字串
Math.random().toString(36).substring(7) 是什麼啊
我們知到 Math.random() 是得到一個0~1之間的數值, 加上.toString(36)後是將該數值轉換為36進位的字串, 36進位每個數值是0~9及a~z的字符, 所以由數值亂數轉換成字串亂數, 厲害吧! 因為0.xx的數值轉換為字串後還是以 0.xx 開頭所以再用.substring(7) 將前面幾個數字去掉, 成為名符其實的0~9及a~z所組合的亂字串

另外透過瀏覽器的 screen 物件可直接取得裝置螢幕的寛高資訊

2016年4月15日 星期五

CSS: CSS3 新增的屬性

由於目前部份屬性在各瀏覽器內尚未統一, 故該可能會有以該瀏覽器為字首的屬性名稱, 以代表該瀏覽器的支援程度
其常用瀏覽器字首如下
-webkit- : 指 Webkit 系列的瀏覽器, 包括 Safari 或 Chrome 等
-moz- : 指 Gecko 系列的瀏覽器, 包括 Mozilla 或 Firefox 等
-o- : 指 Opera 瀏覽器
-ms- : 指 Microsoft IE 瀏覽器

== 圓角(border-radius)的屬性
屬性名稱 : -webkit-border-radius 及 -moz-border-radius
設定值為圓角的半徑值(可分別設定四個圓角的半徑, 其順序為左上, 右上, 右下, 左下)
利用區塊長, 寬及圓角等屬性的變化, 可設定出圓, 半圓, 1/4 圓等區塊
EX:
#circle_100 {
position:absolute;
left:50px;
top:50px;
background-color: #888;
width:200px;
height:200px;
-webkit-border-radius:100px;
-moz-border-radius:100px;
}

== 加陰影的屬性
區塊陰影
屬性名稱 : box-shadow, -webkit-box-shadow 及 -moz-box-shadow
設定值有四個參數, 分別為X偏量, Y偏量, 模糊半徑, 陰影顏色

文字陰影
屬性名稱 : text-shadow
設定值有四個參數, 分別為X偏量, Y偏量, 模糊半徑, 陰影顏色

以上陰影的參數值以四個參數為一組, 可同時設定多組(各組參數以,號分隔), 以達陰影層次上的效果
EX:
text-shadow:0 0 4px #ccc, 0 -5px 4px #ff3, 2px -10px 6px #fd3, -2px -15px 11px #f80, 2px -19px 18px #f20;


== 變形(transform)的屬性
變形的屬性為 transform, -webkit-transform(chrome 瀏覽器適用) 或 -moz-transform(firefox 瀏覽器適用)
其屬性值有下
旋轉 : rotate(15deg) 順時針旋轉15度
縮放 : scaleX(1.5)x方向放大到1.5倍, scaleY(0.5) y方向縮小0.5倍,scale(1.5, 0.5) 同時設定 x方向放大到1.5倍 y方向縮小0.5倍
傾斜 : skewX(10deg)x方向傾斜10度, skewY(10deg)y方向傾斜10度, skew(10deg, 10deg) 同時設定 x方向及y方向各傾斜10度;

== CSS3 新增顏色的函數
1.  rgba(red, green, blue, alpha) 函數於顏色中增加了透明度的設定
alpha 為透明度參數, 其值介於 0.0(完全透明) 至 1.0(完全不透明)間

2. 漸層的顏色
漸層顏色主要分為線性漸層及放射漸層等兩類, 但由於各瀏覽器對漸層顏色函數格式尚未統一, 故不同瀏覽器可能會使用不同格式的函數, 其顯示效果也有所不同
目前主要兩大瀏覽器陣營定義漸層顏色函數名稱及參數格式如下
WebKit系列瀏覽器(如 Safari 或 Chrome)
只有一個函數, 以參數來區分漸層類型
第一個參數為 linear 時表 [線性漸層] 參數如下
-webkit-gradient(linear, 開始點位置, 結束點位置, 顏色順序參數...);
EX: -webkit-gradient(linear, left top, right bottom, from(#06f), to(#fff));

第一個參數為 radial 時表 [放射漸層] 參數如下(圓形的放射)
-webkit-gradient(linear, 開始圓心點位置, 開始半徑, 結束圓心點位置, 結束半徑, 顏色順序參數...);
EX: -webkit-gradient(radial, center center, 10, center center, 90, from(red), to(#1E90FF), color-stop(70%, yellow));

點位置或圓心點位置的參數是由兩個參數值所組合而成, 第一個值代表 X-軸位置, 第二個值代表 Y-軸位置, 其值可以為數值, 百分號 或 left top center 等文字標示
顏色順序至少要包含[開始顏色]及[結束顏色]兩個參數, 也可在中間增加其顏色參數值, 其顏色參數值需使用from(), to() 或 color-stop()等函數設定
設定顏色的函數說明如下
color-stop(百分比, 顏色) : 可設定不同百分比位置的漸層顏色值, 百分比為0表開始位置的顏色, 百分比為1表結束位置的顏色 
from(顏色) 設定開始顏色 = color-stop(0, 顏色)
to(顏色) 設定結束顏色 = color-stop(1, 顏色) 

Gecko 系列瀏覽器(如Mozilla 或 Firefox)
以不同的函數定義不同的漸層類型
-moz-linear-gradient 函式為 [線性漸層], 格式為 -moz-linear-gradient(起點及方向, 各顏色變化值);
-moz-radial-gradient 函式為 [放射漸層], 格式為 -moz-radial-gradient(放射型狀, 各顏色變化值);
[起點及方向]是指起始位置和方向, 其值可為 left(表由左向右漸層), top(表由上向下漸層), left top(表由左上向右下漸層), bottom 45deg(表由下方向45度角方向漸層)
[各顏色變化值] 是顏色變化的順序值如 red, yellow 30%, blue 90%, white 一組顏色的變化, 若有加上 % 者表到達該百分比位置時的顏色
[放射型狀]是指放射漸層的型狀, 可為圓形放射(circle)或橢圓放射(ellipse)






CSS: CSS 樣式的屬性

== 設定邊界(margin)的屬性
margin-top   設定上邊界
margin-right 設定右邊界
margin-bottom 設定下邊界
margin-left  設定左邊界
margin  可同時設定四個邊界(margin:[上邊界] [右邊界] [下邊界] [左邊界])

== 設定邊框(border)的屬性
border-style(屬性值有solid-實線;dashed-虛線;double-雙線;dotted-點線;groove-凹線;ridge-凸線;inset-嵌入線;outset-浮出線)
border-width
border-color
border-top-, border-left-, border-bottom-, border-right- : -後可接 style, width 或 color 以設定單邊的屬性
border 同時設定四個邊框的屬性

== 設定留白(padding)的屬性
padding-top (上)
padding-right (右)
padding-bottom (下)
padding-left (左)
padding 同時設定四邊留白的屬性(padding:[上留白] [右留白] [下留白] [左留白])

== 設定背景(background)的屬性
background-color : 背景顏色
background-image ; 背景圖片
background-repeat : 設定背景圖片是否重覆, 預設 repeat(x 及 y方向均重覆), 其他值有 x-repeat(x-方向重複)、y-repeat(y-方向重複)及 no-repeat(不重複)
background-attachment : 指定背景圖案是否固定在螢幕上, 其值有 fixed(固定不動) 及 scroll (跟著移動)
background-position : 用來指定背景圖案的位置, 有兩個參數
  第一個參數設定水平位置(x方向), 可為 left,center,right,百分比或px數值
  第二個參數設定垂直位置(y方向), 可為 top,center,bottom,百分比或px數值
註:background-repeat值預設是重覆, 也就是以圖片填滿視窗, 此時 background-attachment 及 background-position 的屬性均無效

CSS3 以後還增加了調整圖片尺寸的屬性
background-size 或 -webkit-background-size(chrome 瀏覽器使用) 或 -moz-background-size(firefox 瀏覽器使用), 其參數是以寛和高兩個數值(100px 80px)或百分比(80% 40%)
EX:
background-size:50% 50%;
-moz-background-size:50% 50%;
-webkit-background-size:50% 50%;

== 設定顏色(color)的屬性
color : 顏色屬性值的設定有三種方式
十六進位值, 如 {color:#XXXXXX;}
RGB 碼, 如 {color:rgb(X,Y,Z);}
顏色名稱, 如 {color:red;}
CSS3 以後顏色可用 rgba() 函數設定(增加透明度的值)

== 設定字體(font)的屬性
font-family
font-size
font-weight : 字的粗細度(可為100~900的數值或 bold(厚)、bolder(更厚)、及 normal(正常))
font-style
font-variant

== 設定 <A> 標籤 連接狀態的屬性
a:link : 設定當連接過去的網頁尚未被看過時,該連接的樣式。
a:visited : 設定當連接過去的網頁已經看過時,該連接的樣式。
a:hover : 設定當滑鼠蓋在連接上面時,該連接的樣式。
a:active : 設定當連接被點擊時,該連接的樣式。

== 設定清單(list)的屬性( <ul><li> 標籤的屬性)
list-style-type : 設定清單中每個項目前的標記符號, 其值有
none(沒有);disc(全黑圓圈);circle(空心圓圈);square(正方形)
或以upper-latin(大寫拉丁文);lower-latin(小寫拉丁文);upper-roman(大寫羅馬文);lower-roman(小寫羅馬文);upper-alpha(大寫希臘文);lower-alpha(小寫希臘文)等文字的數值編號
list-style-position : 設定標記符號是否為是文字的一部份(決定同一清單項目換行時是否有內縮的情形)
其屬性值有inside(是文字的一部份) 及 outside(否是文字的一部份), 預定值為 outside
list-style-image : 設定以特定圖案做為標記符號, 設定方式為 list-style-image:url([image_url]);
list-style : 直接以本項屬性設定前三項屬性, 如 list-style: url("circle.gif") none inside; 其三個參數沒有順序性

== 設定表格(table)的屬性
在 HTML 中 <table> 標籤內常有 border、cellpadding 及 cellspacing 等屬性, 這些屬性均可透過CSS方式直接設定
另一般常用的文字、字體、邊框、顏色 及 背景等屬也可在 table、th、tr 及 td 等選擇器內直接引用

== 與位置(position)相關的屬性
position : 用於設定元件放置位置的類型, 其值有
static(預設值): 表元素依預設位置擺放(設為 statics 時其 top、bottom、left 和 right 等屬性值均無效)
absolute: 表元素依 top、bottom、left 和 right 等設定值與區塊內的絕對位置擺放
relative: 表元素依 top、bottom、left 和 right 等設定值與區塊內預設位置的相對位置擺放
fixed:表元素依 top、bottom、left 和 right 等設定值在瀏覽器的絕對位置擺放
top, right, left, bottom : 設定四邊位置的擺放值, 其值可以是長度、百分比 或是 auto
overflow : 用於設定當內容放不下時的處理方式, 其值包含
visible : 內容完全呈現,不管放得下放不下。
hidden : 放不下的內容就不顯示出來。
scroll : 無論內容放得下放不下,都加入上下捲軸及左右捲軸的功能。
auto : 當內容放不下時,加上捲軸的功能。
z-index : 用於設定元素重疊時的順序(Z軸), z-index 值比較大的元素會被放在上面

== 與文字樣式相關的屬性
direction : 設定文字的方向, 其值包括 ltr(靠左向右排列) 及 rtl(靠右向左排列)
letter-spacing : 設定每個字與字的間隙
line-height : 設定兩行起點之間的距離(行高)
text-align : 設定文字對齊方式, 其值包括 left(靠左對齊), right(靠右對齊), center(置中), justify(左右對齊)
text-decoration : 設定文字的裝飾樣式, 其值包括 underline(下邊線), overline(上邊線), line-through(中間線), blink(閃爍)
text-indent : 設定每段第一行前段間所要保留的空間, 其設定值可為百分比或長度
text-transform : 設定文字大小寫的展現方式, 其值包括 capitalize(每個字的第一個字母都大寫, 其他字母不變), uppercase(所有字母都大寫), lowercase(所有字母都小寫), none(不改變)
word-spacing : 設定每個字與每個字之間的距離。

== 浮動(float)與清除(clear)的屬性
float : 用於設定文字在圖的左邊或右邊浮動的狀態, 其值包含left、right 和 none
clear : 當設定 float 屬性時可用 clear 來清除原 float 所設定的狀態

== 滑鼠游標圖案的屬性
cursor 屬性可用於設定滑鼠游標的圖案, 其設定值有 crosshair, pointer, text, move, wait, help, progress, not-allowed, no-drop, no-vertical-text, all-scroll, col-resize, row-resize, e-resize, ne-resize, n-resize, nw-resize, w-resize, sw-resize, s-resize, se-resize
另外也可以使用{cursor:url(圖案網址);語法自定游標圖案

2016年4月14日 星期四

CSS: 認識 CSS

CSS(Cascading Style Sheet)是一種串接樣式表(Stylesheet), 用來描述 HTML 資料要如何顯現的語言

== 樣式使用分類:
1. 行內式 : 直接定義在原有 HTML 的標籤內
2. 內崁式 : 定義在 HEAD 標籤內, 並設定於 <style type="text/css">..</style> 宣告內
3. 連結式 : 定義在外部檔案內, 使用 <link> 標籤連結外部檔案

== 宣告 CSS 樣式的語法
選擇器 {
  屬性:設定值;
  ...
}
其中選擇器主要有三種:
1. 型別(Type)選擇器 : 型別選擇器是直接針對(X)HTML標籤設定樣式的選擇器
2. Class 選擇器 : 以.號帶領選擇器名稱者為 Class 選擇器, 可 HTML 標籤內使用 class= 的方式引用
   另可針對特定標籤設定 Class 選擇器, 如 b.special = {..}, 只針對<b class='special'> 才有效
   若未指定標籤(直接以.號開頭), 則提供所有標籤引用
   同一個標籤也可套用多個不同的 Class 選擇器, 如 <b class='style_1 style_2'> 表於 <b> 標籤內套用 style_1 及 style_2 兩種樣式(以空白區分)
3. ID 選擇器 : 以#號帶領選擇器名稱者為 ID 選擇器, 是提供 HTML 內特定 ID 的物件所引用之樣式
註:Class 名稱及 ID 名稱都是有大小寫區分的。所以 .classone 及 .ClassOne 是代表兩個不同的 Class 選擇器。

== 樣式的繼承性:
在 HTML 文件中, 當標籤間有親子關係時(在外的為父標籤, 在內的為子標籤), 其子標籤未明確定義的樣式會直接繼承父標籤所設定的樣式
EX:
body { color: #FF0000; font-size:20px;}
p { color: #00FF00; }
strong { font-size:50px; }
<body>
<p> P標籤為父 <strong>strong標籤為子時</strong> 的樣式</p>
<strong> strong標籤為父<p> P標籤為子時</p> 的樣式</strong>
</body>
其中 [P標籤為父] 時定義了顏色為綠色未定義字體大小, 所以是以<body>所定義的字體(20px)及綠色來顯示
而 [strong標籤為子時] 只修改了字體大小, 未修改顏色, 所以是以繼承父標籤的綠色來顯示
相反的 [strong標籤為父] 時只定義字體大小, 未定義顏色, 所以是以<body>所定義的紅色及自定義的字體(50px)來顯示
而 [P標籤為子時] 只修改顏色未修改字體大小, 所以是以繼承父標籤的字體大小(50px)來顯示

== CSS 樣式模型
盒子模式(box model)是 CSS 描述元素組成的重要觀念。
其盒子模式的式樣有四層:
1. 邊界(margin) : 最外層的界限, 可用來設定各個元素間之距離。
2. 邊框(border) : 設定邊框樣式
3. 留白(padding) : 內容到邊框的距離
4. 內容(content) : 是最內層的物件項目

== HTML 中 <Div> 與 <Span> 之差異
<Div> 與 <Span> 標籤均可於文件內標示出獨立的區域, 以利針對特定區域引用不同的 CSS 樣式
唯兩者所定義出的獨立的區域略有差別
<Div> 所定義的獨立區域區為塊級的範圍, 而 <Span> 所定義的區域則為元素級(如一行文字中的部份字串)

PHP: PHP 簡介

PHP 腳本在服務器上執行,然後向瀏覽器發送回純 HTML 結果。

== 基礎語法
PHP 腳本可放置於文檔中的任何位置。
PHP 腳本以 <?php 開頭,以 ?> 結尾:
PHP 的變數有大小寫之分, 但對所有自定函數、類和關鍵字(例如 if、else、echo 等等), 則不分大小寫
PHP 語句以分號結尾(;)
PHP 有三種注釋方式:
// 這是單行注釋
# 這也是單行注釋
/* 這是多行注釋塊 */

== PHP 變數(變數規則)
以 $ 符號開頭,其後是變數的名稱
名稱必須以字母或下劃線開頭(不能以數字開頭)
名稱只能包含字母數字字符和下劃線(A-z、0-9 以及 _)
變數名稱有大小寫區別($x 與 $X 是兩個不同的變數)

== PHP 數據類型
字串 : 字串是指引號內的任何文字。您可以使用單引號或雙引號來設定字串
註:用單引號是將引號內的文字直接設定為字串, 若用雙引號設定則會先將引號內的變數轉換為變數內容後的值為字串

整數 : 可以用三種格式規定整數:十進制、十六進制(前綴是 0x)或八進制(前綴是 0)
浮點數 : 有小數點或指數形式的數字。
邏輯 : 只有 true 及 false 兩個值
陣列 : 以 array 定義陣列, 其陣列中各元素可存放不同數據類型的值
類別(Class) : 由屬性及方法的組合
NULL : 代表變量無值, NULL 是數據類型 NULL 的唯一值。

== PHP 常量
常量是單一固定值的標識符號, 在腳本中無法改變該值。
有效的常量名以字符或下劃線開頭, 且貫穿整個腳本, 屬全域的標識符號。
常量使用 define() 函數設定, 其包含三個參數:
第 1 個參數定義常量的名稱
第 2 個參數定義常量的值
第 3 個參數是屬選用的參數, 代表該常量名是否區分大小寫。預設是 false。