孤獨者 - 心在黑暗裡旅行 ...... ... 至尊會員
遊蕩的過客 - 枉入紅塵若許年 .. ... - UID
- 18273
- 帖子
- 12122
- 精華
- 1273
- 積分
- 240737
- 金幣
- 492641
- 威望
- 5001
- 推廣
- 0
- 閱讀權限
- 99
- 來自
- 尋覓中
- 註冊時間
- 2006-6-24
- 最後登錄
- 2015-5-27
|
87樓
大 中
小 發表於 2006-10-26 22:56
7. 副程式
我們經常把若干程式碼集合在一起,以完成特定的功能,並且予以命名,俾供重覆叫用。像這樣的區塊,我們稱為副程式或函式。
7.1 副程式的寫法引用:sub 副程式名稱 {
程式區塊;
}
例:身份證字號檢查副程式
sub check_pslno {
# Copyright 2003 by OLS3 (ols3@訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。
# 檢查身份證號碼的合法性
# 取得身份證字號
$pno = $_[0];
# 分別取得十個字元
for ($i=1;$i<=10;$i++) {
$D[$i]=substr($pno,$i-1,1);
}
# 將第一個字元, 轉成大寫
$firstno=uc($D[1]);
# 每一個英文字母都有其代碼
%FNO=(
"A", 10, "B", 11, "C", 12, "D", 13, "E", 14, "F", 15, "G", 16, "H", 17,
"I", 34, "J", 18, "K", 19, "L", 20, "M", 21, "N", 22, "O", 35, "P", 23,
"Q", 24, "R", 25, "S", 26, "T", 27, "U", 28, "V", 29, "W", 32, "X", 30,
"Y", 31, "Z", 33
);
# $x2= 個位數字
$x2=$FNO{$firstno} % 10;
# $x1= 十位數字
$x1=($FNO{$firstno} - $x2) / 10;
$checkno=$x1 + 9*$x2 + 8*$D[2] + 7*$D[3] + 6*$D[4] + 5*$D[5]
+ 4*$D[6] + 3*$D[7] + 2*$D[8] + $D[9] + $D[10];
($checkno % 10) ? 0 : 1;
}
叫用上述副程式的方法:引用:# 傳入一個身份證字號,並用 $rt 接取傳回值
$rt = check_pslno("R121212121");
|