隨機數函數Random(num,min,max);php
num:生成的個數閉包
min:最小的數dom
max:最大的數。函數
<?php //生成隨機20個1-80內不重複的隨機數 //思路:也沒什麼思路,就是單純的生成20個不重複的數字。 //若是有重複,那就在調用一遍生成函數哈哈哈 //這樣子的好處是,純自然無污染,出來的數據不會有二次生成的感受。 //問我爲何這樣說?你把第33行的註釋取消掉就知道了。。。 //感受本身好蠢啊,花了3小時鑽研這個。。。 //生成的隨機數已經轉換成全局變量了,直接echo $Genrandom就行 $number = array(); function Generate(){ for($i=0;$i<20;$i++){ $ran=rand(1,80); $number[$i] = $ran; $number=array_filter(array_unique($number)); } $unnum=20-count($number); if($unnum > 0){ Check($number); }else{ sort($number); echo "生成成功:"; for($k=0;$k<20;$k++){ echo $number[$k].","; } $GLOBALS['GenRandom'] = $number; } } function Check($number1){ $unnum1=20-count($number1); if($unnum1 > 0){ //echo "還少".$unnum1."個數"."從新生成中!"; Generate(); } } Generate(); ?>
如今代碼就是這樣了,怎樣才能封裝好這個Random函數呢,聽說PHP的閉包邏輯很亂,變量做用域問題搞不懂,我都不知道該如何設置返回值。。。spa
但願能有人可以指點我一下,封裝一個函數,具體的步驟思路是什麼。code