PHP5與MySQL5入門學習指南 4 陣列

p13-3宣告陣列
1.直接設定值

$陣列名稱[鍵值1]=值;//一維
$陣列名稱[鍵值1][鍵值2]=值;//二維

//ex:
$a[0]=10;
$a[]=20;//沒給鍵值不會錯誤,此行相當於$a[1]=20;


2.使用array()函數給值

$陣列名稱 = array(值1,值2....);
$陣列名稱 = array(鍵值1=>值1,鍵值2=>值2....);

PHP5與MySQL5入門學習指南 3

p10-20流程控制:Break
用來跳離for、while、及switch指令
ex:

break n;
//n為整數,表示跳離迴圈的深度,預設是1

p10-25流程控制:Continue
忽略continue以下的迴圈敘述,回到迴圈起始位置繼續執行迴圈
ex:

continue n;
//n為整數,表示跳離迴圈的層數,預設是1

EditPlus-快速用法

最近在使用 EditPlus ,查了一些快速用法

EditPlus 2.12 使用技巧集萃 build2005.1.18
原文出處:http://forum.slime.com.tw/thread139983.html

正則陳述式類
【1】 正則陳述式套用——取代指定內容到行尾
【2】 正則陳述式套用——數位取代----------------------------Microshaoft@CCF,jiuk2k@CCF
【3】 正則陳述式套用——移除每一行行尾的指定字串
【4】 正則陳述式套用——取代帶有半形括號的多行
【5】 正則陳述式套用——移除空行----------------------------江德華
軟體技巧類
------------------------------------------------------
【6】 軟體技巧——鍵盤記錄的注意事項
【7】 軟體技巧——關閉我的文件標籤的便捷方法
*【8】 軟體技巧——如何去掉 EditPlus 儲存文本文件時的增加後面提示?
【9】 軟體技巧——提示找不到語法文件的解決辦法
【10】軟體技巧——設定editplus支持其它文字,如韓文----------jackywu1978@LJF
【11】軟體技巧——FTP 上傳的設定----------------------------李應文2.11漢化版
*【12】軟體技巧——如何禁用備份檔案功能?
*【13】軟體技巧——增加語法文件、自動完成文件、以及剪輯庫文件
*【19】軟體技巧——區塊選取
*【20】軟體技巧——標記功能
*【21】軟體技巧——模版功能
工具整合類
------------------------------------------------------
【14】工具整合——編譯器整合例子(Java、Borland C++、Visual C++、Inno Setup、nsis、C#)
【15】工具整合——讓Editplus偵錯PHP程序----------------------avenger,aukw@CCF
【16】工具整合——打造 PHP 偵錯環境(二)----------------------老七2.11漢化版
【17】在 WINPE 中整合 EDITPLUS
【18】支持帶UTF-8標記/不帶UTF-8標記的文件


【1】正則陳述式套用——取代指定內容到行尾
原始文本如下面兩行
abc aaaaa
123 abc 444

希望每次遇到「abc」,則取代「abc」以及其後到行尾的內容為「abc efg」
即上面的文本最終取代為:
abc efg
123 abc efg

解決:
1 在取代對話視窗,尋找內容裡輸入「abc.*」
2 同時勾選「正則陳述式」複選框,然後點擊「全部取代」按鈕
其中,符號的含義如下:
「.」 =匹配任意字串
「*」 =匹配0次或更多

注意:其實就是正則陳述式取代,這裡只是把一些曾經提出的問題加以整理,單純從正則陳述式本身來說,就可以引申出成千上萬種特例。

【2】正則陳述式套用——數位取代 (Microshaoft@CCF,jiuk2k@CCF)
希望把
asdadas123asdasdas456asdasdasd789asdasd
取代為:
asdadas[123]asdasdas[456]asdasdasd[789]asdasd

在取代對話視窗裡面,勾選「正則陳述式」複選框;
在尋找內容裡面輸入「[0-9][0-9][0-9]」,不含引號
「取代為:」裡面輸入「[\0\1\2]」,不含引號
範圍為你所操作的範圍,然後選項取代即可。

實際上這也是正則陳述式的使用特例,「[0-9]」表示匹配0∼9之間的任何特例,同樣「[a-z]」就表示匹配a∼z之間的任何特例
上面重複使用了「[0-9]」,表示連續出現的三個數位
「\0」代表第一個「[0-9]」對應的原型,「\1」代表第二個「[0-9]」對應的原型,依此類推
「[」、「]」為單純的字串,表示增加「[」或「]」,如果輸入「其它\0\1\2其它」,則取代結果為:

asdadas其它123其它asdasdas其它456其它asdasdasd其它789其它asdasd

功能增強(by jiuk2k@CCF):
如果將尋找內容「[0-9][0-9][0-9]」改為「[0-9]*[0-9]」,對應1 或 123 或 12345 或 ...
大家根據需要設定

相關內容還有很多,可以自己參考正則陳述式的語法仔細研究一下

【3】正則陳述式套用——移除每一行行尾的指定字串
因為這幾個字串在行中也是出現的,所以肯定不能用簡單的取代實現
比如
12345 1265345
2345
需要移除每行末尾的「345」
這個也算正則陳述式的用法,其實仔細看正則陳述式應該比較簡單,不過既然有這個問題提出,說明對正則陳述式還得有個認識程序,解決方法如下
解決:
在取代對話視窗中,啟用「正則陳述式」複選框
在尋找內容裡面輸入「345$」
這裡「$」表示從行尾匹配

如果從行首匹配,可以用「^」來實現,不過 EditPlus 有另一個功能可以很簡單的移除行首的字串串
a. 選項要操作的行
b. 編輯-格式-移除行註釋
c. 在彈出對話視窗裡面輸入要清除的行首字串,確定

【4】正則陳述式套用——取代帶有半形括號的多行
幾百個網頁中都有下面一段程式碼:

我想把它們都去掉,可是找了很多search & replace的軟體,都是只能對「一行」進行操作。

EditPlus 開啟幾百個網頁文件還是比較順暢的,所以完全可以勝任這個工作。
具體解決方法,在 Editplus 中使用正則陳述式,由於「(」、「)」被用做預設陳述式(或者可以稱作子陳述式)的標誌,所以尋找
\n」
時會提示尋找不到,所以也就無法進行取代了,這時可以把「(」、「)」使用任意字串標記替代,即半形句號:「.」。取代內容為
\n
在取代對話視窗啟用「正則陳述式」選項,這時就可以完成取代了

補充:(lucida)
對( ) 這樣的特殊符號,應該用\( \)來表示,這也是很標準的regexp語法,可以寫為
\n

【5】正則陳述式套用——移除空行
啟動EditPlus,開啟待處理的文本檔案類型文件。
1、選項「尋找」表單的「取代」指令,彈出文本取代對話視窗。選「正則陳述式」複選框,表明我們要在尋找、取代中使用正則陳述式。然後,選「取代範圍」中的「當前文件」,表明對當前文件操作。
2、按下「尋找內容」組合框右側的按鈕,出現下拉表單。
3、下面的操作增加正則陳述式,該陳述式代表待尋找的空行。(技巧提示:空行僅包括空格符、製表符、Enter鍵符,且必須以這三個符號之一作為一行的開頭,並且以Enter鍵符結尾,尋找空行的關鍵是構造代表空行的正則陳述式)。
直接在"尋找"中輸入正則陳述式「^[ \t]*\n」,注意\t前有空格符。
(1)選項「從行首開始匹配」,「尋找內容」組合項中出現字串「^」,表示待尋找字串串必須出現在文本中一行的行首。
(2)選項「字串在範圍中」,那麼在「^」後會增加一對括號「[]」,當前插入點在括號中。括號在正則陳述式中表示,文本中的字串匹配括號中任意一個字串即符合尋找條件。
(3)按一下空格鍵,增加空格符。空格符是空行的一個組成成分。
(4)選項「製表符」,增加代表製表符的「\t」。
(5)移動游標,將當前插入點移到「]」之後,然後選項「匹配 0 次或更多」,該操作會增加星號字串「*」。星號表示,其前面的括號「[]」內的空格符或製表符,在一行中出現0個或多個。
(6)選項「換行符」,插入「\n」,表示Enter鍵符。
4、「取代為」組合框保持空,表示移除尋找到的內容。按下「取代」按鈕逐個行移除空行,或按下「全部取代」按鈕移除全部空行(注意:EditPlus有時存在「全部取代」不能一次性完全移除空行的問題,可能是程序BUG,需要多按幾次按鈕)。

【6】軟體技巧——鍵盤記錄的注意事項
EditPlus 的鍵盤記錄有些類似於 UltraEdit 的巨集操作,不過功能相對單一,錄製的文件可編輯性較差。
由於基本無法編輯錄製的文件,所以錄製的時候為了避免錄製失敗,推薦純粹使用鍵盤操作,以下是比較關鍵的幾個鍵盤組合:
Ctrl+F = 彈出尋找對話視窗
Ctrl+H = 彈出取代對話視窗
Alt+F4 = 關閉作用,比如,關閉尋找對話視窗、關閉取代對話視窗,等等
其它鍵盤快捷鍵在「說明 -快捷鍵列表」裡面可以很容易的尋找到,這裡就不細說了。

【7】軟體技巧——關閉我的文件標籤的便捷方法
右鍵按下我的文件標籤工具條,彈出表單中選項「標籤選項」,選「用滑鼠中間的按鈕關閉」,這裡包括滑鼠的滾輪。

【8】軟體技巧——如何去掉 EditPlus 儲存文本文件時的增加後面提示?
如果你使用 EditPlus 進行文本編輯,那麼每次新增文本文件,編輯後儲存時,儘管檔案類型下拉列表中顯示的是文本文件, EditPlus 還是詢問你是否增加".txt"後面,是不是很煩?
解決方法:
1 在程序目錄建立一個空的文件「template.txt」
2 「工具-參數設定-範本」「Tools-Preference-Templates」裡面,按下「增加」按鈕增加範本,「表單文本」這裡輸入「Text」,瀏覽「template.txt」,之後確定即可
3 「文件-新增-text」,就可以建立一個空的文本文件,儲存時,這個文件自動帶有副檔名".txt",也就避免了令人頭疼的驗證
4 範本設定檔案名稱為「template.ini」,如果和主程序同一路徑,可以使用相對路徑
囉嗦了點,不過管用
要自動新增帶有某種後面的文件,方法同上。

【9】軟體技巧——提示找不到語法文件 *.stx 的解決辦法
原因多為設定的語法文件不存在或者是路徑設定不對。這是因為 EditPlus 的語法是設定文件採用的是絕對路徑,而在你設定了語法文件之後,再把程序複製到其它目錄,因而導致 EditPlus 無法找到該語法文件。
解決辦法:
在主程序目錄裡,找到 Setting.ini 這是 EditPlus 存放語法的文件
尋找後面為「.stx」、「acp」的文本內容,或者尋找帶有驅動器符號的行,比如
Syntax file=C:\Program Files\EditPlus 2\cpp.stx
那麼,就把」C:\Program Files\EditPlus 2\「取代成你當前軟體的路徑。
其它提示找不到文件的解決方法同上

【10】軟體技巧——設定editplus支持其它文字,如韓文
在editplus裡開啟文件,出來開啟文件對話視窗;然後點擊「轉換器」後面的那個省略號,會出來自訂轉換器對話視窗;在右邊選項你需要的編碼方式,增加到左邊,然後點確定;最後在下拉項中選項需要的編碼方式,然後開啟文件即可。

【11】軟體技巧——FTP 上傳的設定
「文件->遠端操作->FTP 上傳」在「設定」選擇項中設定好參數(「子目錄」前面應該加「/」如「/web/」),點擊「確定」回到「FTP 上傳」選擇項,然後點擊「上傳」即可;「批量上傳」的設定類似。

【12】軟體技巧——如何禁用備份檔案功能?
在「參數選項」的文件選項頁,禁用「'儲存時自動新增備份檔案」選項
「Tools-Files-取消勾選Create backup file when saving」

【13】軟體技巧——增加語法文件、自動完成文件、以及剪輯庫文件
要增加 *.STX(語法文件)或 *.ACP(自動完成文件):
1. 選項「參數選項→語法」「Tools-Settings & Syntax」
2. 按下「增加」按鈕,命名,在「副檔名」部分輸入對應副檔名(不帶「.」)
3. 瀏覽/輸入 STX(語法文件部分) 以及 ACP(自動完成文件部分)。
增加剪輯庫文件(*.CTL)
複製相應 *.CTL 文件到軟體安裝目錄,重新啟動 EditPlus ,則系統自動識別。

作者主頁有很多語法自動完成文件下載,位址
http://editplus.com/files.html

【14】工具整合——編譯器整合例子(Java、Borland C++、Visual C++、Inno Setup、nsis)
在「工具→參數選項→用戶工具」選項頁設定,設定步驟
1 設定群組名稱,這裡也可以不設定
2 按下「增加工具→應用程式」按鈕並進行如下設定
3 各種類似"$(FilePath)"的參數可以在文本框右側的箭頭下拉表單中獲取,具體含義如下
參數 描述
$(FilePath) 文件路徑(文件全名,含目錄和檔案名)
$(FileDir) 文件目錄(不帶檔案名)
$(FileName) 檔案名(不帶目錄)
$(FileNameNoExt) 不帶副檔名的檔案名(不帶目錄)
$(FileExt) 副檔名(當前文件)
$(ProjectName) 工程名稱(當前工程名)
$(CurLine) 當前行號(游標位置處的行號)
$(CurCol) 當前列號(游標位置處的列號)
$(CurSel) 當前文本(插入當前選定文本)
$(CurWord) 當前單詞(插入當前單詞)
$(WindowList) 顯示當前視窗列表並選項特定文件


例子 1. Java 編譯器

表單文本:Java 編譯器
指令:c:\java\bin\javac.exe
參數:"$(FilePath)"
初始目錄:$(FileDir)
捕獲輸出:開啟

要執行已編譯的 Java 類文件,你可以進行如下設定:
表單文本:Java
指令:c:\java\bin\java.exe
參數:$(FileNameNoExt)
初始目錄:$(FileDir)
「指令」部分應當取代為實際的 Java 解釋器的路徑。

例子 2. Borland C++

表單文本:Borland C
指令:c:\bc\bin\bcc32.exe
參數:-Ic:\bc\include -Lc:\bc\lib -n$(FileDir) $(FilePath)
初始目錄:c:\bc\bin
捕獲輸出:開啟

例子 3. Visual C++

表單文本:Visual C++
指令:c:\msdev\vc98\bin\cl.exe
參數:"$(FilePath)"
初始目錄:$(FileDir)
捕獲輸出:開啟

例子 4. Inno Setup
表單文本:編譯 Inno
指令:C:\Program Files\Inno Setup 4\Compil32.exe」
參數:/cc $(FileName)
初始目錄:$(FileDir)
捕獲輸出:開啟

例子 5. nsis
表單文本:編譯 nsis
指令:C:\NSIS\makensis.exe
參數:$(FileName)
初始目錄:$(FileDir)
捕獲輸出:開啟

例子 6. C#
表單文本:編譯 C#
指令:C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\csc.exe
參數:$(FileName)
初始目錄:$(FileDir)
捕獲輸出:開啟

在上面設定中,在指令部分,必須使用系統中各自編譯器的絕對路徑。

設定完畢後,你可以在「工具」表單執行對應工具了,執行結果會顯示在底部的輸出視窗,你也可以通過快捷鍵(Ctrl + 0-9) 執行,或者是通過「用戶工作列」的快捷按鈕執行。

要執行已編譯的 *.exe 文件,你可以進行如下設定(此時可執行文件需要和編譯文件同名):
表單文本:Run
指令:$(FileNameNoExt)
參數:
初始目錄:$(FileDir)

【15】工具整合—— 讓Editplus偵錯PHP程序
1:開啟Editplus,選項"工具->組態用戶工具..."表單。
2:在彈出的視窗中選項"增加工具->應用程式",給新程序起一個好記的名字,比如這裡我們用"Debug PHP",在"表單文本"中輸入"Debug PHP"。點擊"指令行"右邊的按鈕,找到你的php.exe所在的路徑,例如這裡是"c:\php\php.exe"。再點擊"參數"右邊的下拉按鈕選項"文件路徑",最後再把"捕獲輸出"前面的複選框選上。
3:現在測試一下,新增一個php文件,按快捷鍵Ctrl+1可以啟動剛才我們設定的工具(如果你設定了多個工具,快捷鍵可能會有所不同),現在你可以看到它已經能正常工作了。但是還有一點不太理想:如果你的PHP程式出錯,在輸出視窗會提示你第幾行出現錯誤 ,按下這一行提示,Editplus老是提示你找不到某某文件,是否新增。接下下我們要修正這個功能。
4:開啟剛才用戶工具設定視窗,找到剛才設定的"Debug PHP"工具。點擊"捕獲輸出"複選框旁邊的"輸出模式"按鈕,會彈出一個定義輸出模式的表單,把"使用預設輸出模式"前面的複選框去掉, 在"正則陳述式"這一項的文本項中輸入" ^.+ in (.+) line ([0-9]+) "(不包括引號),細心的朋友可能會發現,這裡使用的也正則陳述式的語法。然後,在下面的"檔案名"下拉表單中選項"預設陳述式 1",即上邊正則陳述式中的第一個參數,"行"下拉表單項選項"預設陳述式 2","列"下拉項保持為空。然後儲存設定。
5:好了,現在再來試一下吧,雙按出現錯誤的行數,Editplus就會自動啟動出現錯誤文件,並把游標定位到出現錯誤行,是不是特別方便呢?!
現在,Editplus經過我們的"改造",已經可以即時的偵錯PHP文件了,雖然還不是"可視化"界面的,但對於一些平常的小程序來查錯還是非常好用的。Editplus真是不款不可多得的好工具,如果你有什麼使用技巧,不要忘了大家一起分享哦。^O^

如果不能切換錯誤行號,請嘗試作如下修改: (by aukw@CCF)
1.php.ini 中html_errors = Off開啟
//如果你不開啟,3.中的陳述式要修改
2.參數改成:-q -f "$(FilePath)"
//不加"符號的話檔案名有空格的文件偵錯失敗。。
//-q不輸出html頭訊息,你去掉也行,不過偵錯時候你一般用不到那些header訊息
3." ^.+ in (.+) line ([0-9]+) " 改成 "^.+ in (.+) on line ([0-9]+)$"
//如果還是不行,請注意偵錯結果,自己修改陳述式來取出檔案名和行號

【16】工具整合——打造 PHP 偵錯環境(二)
1: 把剪輯庫定位在 PHP4 Functions 上就可以在編輯時, 利用[插入]->[匹配剪輯]指令,就可以自動完成末輸入完整的 PHP 函數(或直接按 F2 鍵)
2: 類似上面,在選項部分文字後,同樣可以自動完成。(同 F2)
3: 在[參數選項]->[設定和語法]->PHP->自動完成, 選項目錄下的 php.acp 文件,你可以設定自己的自動完成方式.
4: 想要即時預覽文件,可在[參數選項]->[工具]->WEB 伺服器中增加本機目錄,(注意不要加 http:// , 應是一個有效的站點)。
    如: 主機->localhost/php | 根目錄->D:\php
主機->localhost/asp | 根目錄->D:\asp
主機->localhost/cgi | 根目錄->D:\cgi
完成設定後只要指令碼文件位於這些目錄下(子目錄也沒問題), 就能夠正確解釋.
5: 各種語法和範本文件可以在 http://editplus.com/files.html 獲得,可根據需要選用和編輯。
6: Ctrl+F11 可顯示當前文件中的函數列表.
7: 增加各種用戶工具.如:
啟動MYSQL伺服器系統管理工具->C:\mysql\bin\winmysqladmin.exe
啟動Apache伺服器->C:\Apache\bin\Apache.exe -k start
啟動Apache伺服器->C:\Apache\bin\Apache.exe -k stop (shutdown)
8: DBG 附帶有一個 prof_results.php 文件,可分析 PHP 程序的效能.
雖不是真正的偵錯器,但已經夠了.
OK! 經過改造後,是不是有點像一個 IDE 什麼?還差點,沒有即時說明 ...看我的,再來:
9: 把 php_manual_en.chm (最好是增強說明 手冊)加入到用戶工具中, 當遇到需要參考的關鍵字時, 把游標定位其上, 按下快捷鍵 Ctrl+1, 看到了嗎.
在輸入時有想不起來的函數名時, 先按照第 1 條的方法彈出函數, 然後...怎麼樣?

以上有的是對於偵錯工具的設定,由於此類工具比較多,大家設定時參考以上的基本就差不多了,所以就不過多的列舉了。

【17】在 WINPE 中整合 EDITPLUS
可以關於目前的bartpe做得WINPE中,表單使用nu2menu製作

預設位置為 \programs\editplus\
預設系統位置為光碟的 i386 目錄

i386/system32 的 autorun.bat 中增加外殼整合(系統右鍵)
regedit /s %SystemDrive%\programs\editplus\REG.REG
regsvr32 /s \programs\editplus\EPPSHELL.DLL
(reg.reg儲存了epp的工作列訊息,當然註冊用戶也可以放置註冊訊息)

複製editplus安裝包裡面的文件到programs\editplus\,注意,如果有setting.ini,刪掉該檔案,在nu2menu裡面加入以下句子(可以根據需要安排位於特定表單 列項下)
EditPlus 文本編輯

【18】支持帶UTF-8標記/不帶UTF-8標記的文件 Lei提出並測試
這裡Byte Order Mark翻譯為標記/文件頭/標籤

參數選項-文件-裡面設定「支持不帶有UTF-8文件頭的UTF-8文件」,我這裡翻譯標籤為UTF-8文件頭,如果複選該項,應該是儲存為不帶標籤的Utf-8,如果不複選,應該是儲存成帶有BOM的UTF-8。
這樣就可以開啟帶簽名的UTF-8文件,並且可以正常編輯,但是又不能開啟不帶簽名的了,想要開啟不帶簽名的還需要改回來...不過雖然有點麻煩,但是總算能用了

【19】軟體技巧——區塊選取
Alt+滑鼠拖曳 可以對文件做「區塊選取」(行列選取)。

【20】軟體技巧——標記功能
如果需要在一個很長的文件中上下來回編輯,設定「標記」之後就可以快速地在標記間來回跳來跳去編輯,比較方便。

設定/移除標記 - F9
跳至下一個標記 - F4 / 跳至上一個標記 - Shift+F4
清除所有標記 - Ctrl+Shift+F9

【21】軟體技巧——模版功能

模板可以自己建立,例如您可以開一個新檔案,內容如下 (^! 是開新檔案後游標的焦點位置):

< ? php
^!
? >

將它存成 template.php,然後到「配置模板」視窗中加入這個檔案,就可以使用。
Category: 0 意見

Flash作品 英打練習程式

英打練習程式v2-3.exe

PHP5與MySQL5入門學習指南 2

p09-03自訂常數:
宣告語法:
define (常數名稱,常數值,[case_insensitive])
第三個參數可省略,省略代表常數名稱會區分大小寫;若設值為1則不區分大小寫。
只有布林、整數、浮點數、字串這四種型態可設成常數值。

p10-12比較運算子==及===
==比較內容是否相同
===比較內容及型態是否相同

Flash 自訂類別要如何使用ActionScript2

今天在Yahoo的知識+看到有人在問,想想自己學了類別語法卻從來沒用過,就拿來寫寫看了。

它的題目是:Flash 自訂類別要如何使用ActionScript2

檔名有寫AS2的是AS2.0語法的檔案;其它的是AS3.0語法的檔案,裡面都有註解了。

(註:SetBtn還不符合發問者的需求)

不能下載、不能執行或有任何疑問請再通知我。

如何下載

PHP5與MySQL5入門學習指南 1

p06-04有四種標籤來表示PHP語言:
第一種:標準寫法
<?php PHP語言 ?>
第二種:需將pho.ini中的short_open_tag設為on,否則轉譯時會忽略
<? PHP語言 ?>
第三種:需將pho.ini中的short_open_tag設為on,否則轉譯時會忽略
<% PHP語言 %>
第四種:
<script language="php">PHP語言</script>

p06-08基本輸出指令:echo和print
兩種輸出指令,格式幾乎相同
ex:
echo "echo say hello"; //echo say hello
print "print say hello"; //print say hello
print ("print say hello"); //print say hello
使用兩種輸出指令時,用單引號和雙引號輸出意義不同
ex:
$msg="I am fine"
echo "$msg"; //輸出I am fine
echo '$msg'; //輸出$msg


p07-02PHP的資料型態
Boolean、Integer、Float、String、Array、Object、Resource、Null
變數宣告語法:  $變數名稱=值;
變數的型態會依值的不同而自動宣告型態

p07-04將其它型態轉成Boolean
以下會轉成false:
Integer=0
Float=0.0
String="" //空字串
Array //沒有元素的陣列
Object //沒有成員變數的物件
Null //沒有設定任何值的變數
不是上述情形,都會轉成True

p07-04整數型態
語法: [+|-] [0|0x] 數值
ex:$A=0x12 //使用echo "$A"會顯示18

p07-08字串型態
語法:用單引號或雙引號括起來
特殊字元:
\n==>換行並歸零(歸零??什麼意思?)
\r==>換行
\$==>$字元
字串的連結使用 . 運算子(不是+或&之類的)

p07-12陣列型態
一維語法:
$陣列名稱[指標]=值
$陣列名稱=array(指標0的值,指標1的值…)
二維語法:
$陣列名稱[指標][指標]=值

p07-14物件型態
需先宣告類別,在java、as中是以 . 去存取成員,但php是用 -> 去存取成員
類別語法:
class 類別名稱{
 var 資料成員;
 function 函數成員(){
 }
}
ex:參p07-14.php

註:我練習這個程式時…錯真多…
  1. this前要加$,而且不可省略this
  2. $this -> color,color前沒有$
  3. 函數成員有(),不可以忘記
p07-16資源型態
資源型態的變數不可直接操作(例如加、減等數學運算),需使用特殊函數操作。
ex:
$m=mysql_connect('localhost', 'root','1234');

p07-17NULL型態
會產生NULL型態的三種情形:
$n1=NULL; //直接設值成NULL
unset($n2);//unset函數會清除$n2的內容
echo($n3);//$n3沒有宣告過

ASP.NET

與其說是ASP.NET倒不說是VB.NET的語法,每種程式語言,連定義變數的方式都不同…我覺得JAVA和ActionScript的寫法還滿像的,但VB.NET的寫法就…
寫法雖然不同,但基本的還是一樣啦,可是要我記憶就…唉,只好勤做筆記查閱囉…

<<基本語法>>
宣告變數:
Dim 變數名稱 As 變數型態 = 值

If條件式
If 判斷式 Then
 IF判斷式主體
End If

Select條件式:(直接看範例)
Select Case TextBox1.Text
 Case 1
  Label6.Text = "你選的課程是" & Label2.Text
 Case 2
  Label6.Text = "你選的課程是" & Label3.Text
 Case 3
  Label6.Text = "你選的課程是" & Label4.Text
 Case 4
  Label6.Text = "你選的課程是" & Label5.Text
 Case Else
  Label6.Text = "你的輸入錯誤"
End Select

For迴圈:
For 初始值 To 未值
 If j = 5 Then
  Exit For'此為跳出迴圈的語法,類似java和actionScript的 break
 End If
Next
Category: 0 意見

Flash ActionScript3 殿堂之路5

重點筆記
p04-02函式語句vs.函式運算式
<<語法>>
函式語句
function 函式名 (
參數1名稱:類型=預設值,參數2…):回傳值型別{
}

函數運算式
var 函數名:Function=function(
參數1名稱:類型=預設值,參數2…):回傳值型別{
}

不同點:
  1. 函式語句不論定義在那裡,都會先compiler,因此到處都可使用,而函數運算式在使用前要先定義好
  2. 函式語句的this關鍵字指向目前函數定義的區域;函數運算式隨函數附著的物件不同而隨之改變。
ex:
var num:int=3;
function A(){
trace (num);
trace (this.num);
trace (this);
}
var B:Function=function(){
trace (num);
trace (this.num);
trace (this);
}
var obj:Object={num:300};
obj.a=A;
obj.b=B;

A();
B();
obj.a();
obj.b();
前面三個的結果為:
3
3
[object MainTimeline]
obj.b();的結果為:
3
300
[object MainTimeline]

p04-06參數資訊:arguments物件
arguments.length==>回傳參數的個數

Random()值轉正整數

temp=Math.floor(Math.random()*範圍值);
若範圍值寫6,則temp會出現的值為 0~5

SharedObject的用法

1.先在畫面拉一個輸入文字,取名為 input_txt
2.隨便做一個按鈕,取名為 save_btn
3.在主時間軸貼上程式碼:

AS2.0
var so:SharedObject=SharedObject.getLocal("mySaveData", "/");
if(so.data.mySaveData!=null){
input_txt.text=so.data.mySaveData;
}

save_btn.onPress=function(){
so.data.mySaveData = input_txt.text;
so.flush();
}

AS3.0
var so:SharedObject=SharedObject.getLocal("mySaveData","/");
if(so.data.mySaveData!=null){
input_txt.text= so.data.mySaveData;
}

save_btn.addEventListener(MouseEvent.CLICK, function(e:MouseEvent){
so.data.mySaveData = input_txt.text;
so.flush();
});

//---------------------------------------------------------------------------------------------------------
檔案位置:
var so:SharedObject=SharedObject.getLocal("mySaveData", "/");
檔案在:
C:\Documents and Settings\登入者名稱\Application Data\Macromedia\Flash Player\#SharedObjects\xxxxxx\localhost
檔名:mySaveData

如果是寫var so:SharedObject=SharedObject.getLocal("fun/mySaveData", "/");
檔案會在:
C:\Documents and Settings\登入者名稱\Application Data\Macromedia\Flash Player\#SharedObjects\xxxxxx\localhost\#fun
檔名:mySaveData

http://tw.knowledge.yahoo.com/question/question?qid=1508082402461
http://tw.knowledge.yahoo.com/question/question?qid=1608083004985
http://tw.knowledge.yahoo.com/question/question?qid=1609071005840

Flash作品:雙食蛇 單人版


一個人要控制兩條蛇,東西不能亂吃喔!哈!左右腦共用。

遊戲Bug:
1.因為增加食物的函式不是標準的演算法, 把遊戲畫面填滿說不定會出現BUG...還沒做測試。
以下為偷懶的演算法:
do{
tempx=Math.floor(Math.random()*backgroundX);
tempy=Math.floor(Math.random()*backgroundY);
}while(map[tempx][tempy].currentLabel!="empty");
照道理是不能這樣寫啦…東西滿的話,就會跑無限迴圈了。不過據說這種演算法速度最快~
2.開始按鈕的圖層不是最高層,會被程式產生的蛇蓋住,到時重新開始時,可能會按不到…遊戲說明我倒是已經改好了。
3.蛇的前進速度,我還沒想到要什麼時候加速比較合適,加速的進行方式太多了。 ex:吃到東西加速、到達一定分數後加速、玩家自己控制(選擇的速度愈快,每吃一個食物分數就加得愈高)...方法太多了,隨便想想就3個,要用什麼好呢?


孔子說~

子曰:「譬如為山,未成一簣,止,吾止也!譬如平地,雖覆一簣,進,吾往也!」
我在準備證照最難過的時候,突然想起這句話。有人說準備證照很簡單,也許是吧,考過後真的覺得很簡單,但對我而言最難過的是在準備考試時那種不安的心情,你到底能不能通過?證照的考試範圍那麼大,你唸到重點了嗎?還是你唸到的都是廢話?看到不懂的章節,悶著頭看,還是看不懂,怎麼辦?
有時真的覺得那一陣子像地獄,白天工作,晚上自己在那邊唸,尤其東西全部是自己準備,沒補習、周遭也沒人好問。
這時靜下心就會想到這句話,真的給我了一個定心丸,你一但放棄了,就什麼都沒有了,之前的努力也都付諸流水,咬著牙關前進,才是唯一的道路。

考完後就開始感謝國中的古老師了,以前被逼著唸論語,一本全部都背起來,問我現在記得多少?老實說我也只記得這一篇,其它都忘光光,但幸好有唸,不然考不到吧,也許這是人生意想不到的轉捩點!?
Category: 0 意見

Box下載說明


右邊的Box放了一些我的作品,下載方式參左邊的圖片。
若上面出現"Please Wait"的字樣,表示正在下載清單中,稍等一下就好了。
若出現一片空白,什麼字都沒有,可能你的瀏覽器不支援Flash,有需要的話,再寫信給我,我再寄給您。
knowledge.temp@yahoo.com.tw
Category: 0 意見

Flash作品:貪食蛇 雙人版

貪食蛇v02.swf是單人遊戲,貪食蛇v05可以雙人競爭!!


貪食蛇v05.swf

20100820 v05更新:
1.若蛇頭對撞,則有一隻會不見--已修正 (感謝scu1012提供bug.)
2.一局結束後,下局開始時,分數仍是上局的分數。
3.遊戲中有時會發生作者資訊擋在遊戲畫面的狀況。

Flash ActionScript3 殿堂之路4

重點筆記
p03-10迴圈:for...in 和 for each ... in
直接看範例
ex:
var obj:Object=new Object();
obj.name1="First Name";
obj.name2="Second Name";
obj.name3="Third Name";
for(var i in obj){ //顯示name1、name2、name3 ==>得到成員名稱
trace(i);
}

for each (var j in obj){
//顯示First Name、Second Name、Third Name ==>得到成員的值
trace(j);
}

p03-17switch判斷式
switch會使用全等運算子(===)來判斷值是否相同,==和===的差別參Flash ActionScript3 殿堂之路2

Flash ActionScript3 殿堂之路3

重點筆記
p02-37typeof運算子
回傳物件型別(是字串
ex:
trace(typeof 10); //顯示number

物件類型==>返回字串
Array==>object
Boolean==>boolean
Function==>Funciton
int==>Number
Number==>Number
Object==>Object
String==>string
uint==>number
XML==>xml
XMLList==>xml

p02-37is運算子
判斷一個物件是否為某個型別,是的話回傳true;否的話回傳false
ex:
trace(9 is Number) //9是否為Number型別,回傳true

p02-37as運算子
判斷一個物件是否為某個型別,是的話回傳這個物件;否的話回傳null
ex:

trace(9 as Number) //9是否為Number型別?是,回傳9
trace(9 as Array) //9是否為Array型別?否,回傳false

p02-38in運算子
判斷一個物件是否為另一個物件的key或索引,是的話回傳true;否的話回傳false
ex:
var a:Array=["a","b","c"];
trace(2 in a);//true
trace(3 in a);//false,a陣列中沒有索引為3的元素

var b:Object={name:"myObject", value:5};
trace("name" in b); //true
trace("str" in b);//false

p02-38delete運算子
刪除物件的動態屬性,(非動態屬性無法刪除)
ex:
略…

Flash ActionScript3 殿堂之路2

重點筆記
p02-31餘數運算子 %
需注意運算元若不是整數,可能會出現意外的結果。
ex:
var a:int=13;
trace(a%5)//3
trace(13.1%5)//3.0999999999999996,不是3.1
trace(12.2%6.1)//0,剛好整除
trace(12.5%6.1)//0.3000000000000007

p02-33全等運算子(===)與等於運算子(==)
全等運算子不會做型別轉換;而等於運算子會自動做型別轉換。
若運算元是int、uint、Number這三種整數型別,則數值相等就回傳true(不論型別是否相同)
ex:
var a:int=1;
var b:String='1';
var c:Boolean=true;
trace(a==b);//回傳true,書本範例這樣寫會回傳true,但我compiler無法通過??
trace(a===b);//回傳false
書本範例這樣寫會回傳false,但我compiler無法通過??
trace(a==c);//回傳true
trace(a===c)//回傳false

若兩邊的運算元的值是Nan時(Number型別),則兩種運算子都會回傳false
若兩邊的運算元的值是null及underfined,則全等運算子(===)會回傳false;而等於運算子(==)會回傳true
ex:
trace(NaN==NaN); //false
trace(NaN===NaN);//false
trace(undefined==null)//true
trace(undefined===null)//false


若是比較使用包裝類別來建立的物件,直接使用全等運算子(===)和等於運算子(==)比較的話,會回傳true。(在Java及AS2.0會回傳false)
ex:
var a=new Number(5);
var b=new Number(5);
trace(a==b);//true
trace(a===b);//true

Flash ActionScript3 殿堂之路1

重點筆記:

p02-12
宣告常數:const關鍵字
ex: const 變數名稱 : 基本資料型別 = 初值;

p02-13
常用的資料型別
Boolean,布林值,預設值false
int,整數,預設值0
unit,正整數,預設值0
Number,浮點數,預設值NaN(not a number)
注意兩個數值做任何運算,若其中一個是Nan,則結果就會是Nan。
Number型別的程式有bug
BUG1==>0.1連加10次變0.99999~,要求得整數,需使用Math.round()修正

ex:
var n:Number=0.1;
for(var i:int=1;i<10;i++){
n+=0.1;
}
trace(n);//輸出0.9999999999999999
BUG2==>太大的值和太小的值相加時,小值會被捨去。

String,字串,預設值null或空字串(依串告方式不同而不同預設值)
ex:
var s1:String; //null
var s2:String=""; //空字串
var s3:String= new String(); //空字串
var s4:String= new String('abc'); //abc
Array,陣列,不支援型別化陣列,預設值參範例
ex:
var a:Array; //null
var b:Array=[ ] ; //空白
var c:Array=new Array();//空白
var d:Array=new Array(5);//宣告長度為5的陣列,陣列中的元素為空白
Object,物件,為動態,即可隨時加入新的成員(成員就是屬性和方法),預設值null
ex:
var a:Objec; //null
var b:Object=new Object();//使用構造函數建立新物件 構造函數?這名詞我看不懂,是建構子嗎??
var c:Object={};//用空的大括狐對作為new Object()函數的語法快捷方式,可把屬性一起寫進去
var d:Object={name:"objectName"} //建立物件時順便加屬性
var e:Object={hello:function(){trace("Hello")}};//建立物件時順便加方法,很少用

存取物件成員的方法:有兩種,一種是使用 . (點) 運算子,另一種是陣列運算子
ex:
var a:Object=new Object();
a.name="myName"; //使用點運算子
a['name']="myName"//使用陣列運算子

若變數有宣告,但沒有設型別,則此變數的預設值為undefined
ex:

var a; //undefined
var b:*;//undefined

Flash作品:貪食蛇


遊戲下載:貪食蛇v02.swf

原本只是想寫一個玩玩,寫完後想做雙人玩的貪食蛇,接著又想加入AI寫人跟電腦競爭,要寫AI的話就要加入演算法,雖然演算法我找到了,但想到目前的程式是用目前位置來判斷是否有碰到東西,而不是用陣列,想要用AI的話,應該要使用陣列來記錄位置,然後再演算出最佳路徑,可是程式碼等於是整個要全部改掉…暫時先放著吧,我心情好再來改~