主要功能自然是建立一個英文小寫字母的對換表格,藉由這個表格,我們可以對英文句子中的小寫英文字母進行對換,例如 "There is no spoon." 可能變成以下任一個
Tfqdq ki jo itooj.
Tcnan hf gl fqllg.
Tczmz dn ij nkjji.
Tgfsf pb ir barri.
Tdcpc my fo yxoof.
這很簡單,就是把二十六個小寫英文字母
abcdefghijklmnopqrstuvwxyz
改變一下順序
ntweapfyqrivzcjkdobslhxmgu
這樣就是密碼表了。因此我們設計的 Encrypt 類別需要兩個陣列 (array) 屬性 (property) $cArray 與 $oArray ,前者是密碼表,後者則是依順序的英文小寫字母表。
滿簡單的,我們寫了個雛型如下
<?php echo "<br / >"; $d1 = new Encrypt; for ($i = 0; $i < 26; $i++) { echo $d1->cArray[$i]; } echo "<br / >"; $d2 = new Encrypt; shuffle($d2->cArray); for ($i = 0; $i < 26; $i++) { echo $d2->cArray[$i]; } echo "<br / ><br / >"; class Encrypt { public $cArray = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"); public $oArray = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"); } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:encryptdemo.php 功能:示範 PHP 程式 作者:張凱慶 時間:西元 2012 年 11 月 */ ?>
Encrypt 有兩個屬性 $cArray 與 $oArray ,兩者的初值都設定成依順序的英文小寫字母陣列
class Encrypt { public $cArray = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"); public $oArray = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"); }
利用內建函數 (function) shuffle() 就可以得到重新排序過的密碼表
shuffle($d2->cArray);
英文 shuffle 就是洗牌的意思,我們來看看結果吧
這樣就有密碼表了,簡不簡單呢?不過 shuffle() 應該在 new 的時候就完成,這是說我們應該替 Encrypt 設計建構子 (constructor) 。
中英文術語對照 | |
---|---|
類別 | class |
陣列 | array |
屬性 | property |
函數 | function |
建構子 | constructor |
您可以繼續參考
網站篇
相關目錄
回 PHP 入門指南
回 PHP 教材
回首頁
參考資料
http://php.net/manual/en/language.oop5.php
http://www.php.net/manual/en/oop5.intro.php
http://www.php.net/manual/en/language.oop5.basic.php
http://www.php.net/manual/en/language.oop5.properties.php
http://php.net/manual/en/function.shuffle.php
沒有留言:
張貼留言