function sub($str,$len){ for($i=0;$i<$len;$i++){ static $string; if(ord(substr($str,$i,1))>0xa0){ $string.=substr($str,$i,2); $i++; }else $string.=substr($str,$i,1); } } return $string; }
請問:各路大神,我在聽一老師11年的php視頻,但那位老師的代碼並沒有使用
static $string。但是沒報錯,可是我要是不加static,就報錯,老師也沒有用@。
請問,如何定義才能使這個變數能在函數內使用。
回複內容:
function sub($str,$len){ for($i=0;$i<$len;$i++){ static $string; if(ord(substr($str,$i,1))>0xa0){ $string.=substr($str,$i,2); $i++; }else $string.=substr($str,$i,1); } } return $string; }
請問:各路大神,我在聽一老師11年的php視頻,但那位老師的代碼並沒有使用
static $string。但是沒報錯,可是我要是不加static,就報錯,老師也沒有用@。
請問,如何定義才能使這個變數能在函數內使用。
把$string當做參數傳入,不需要加static了,這樣子string在外部是全域變數,傳入函數了之後就是局部變數;
然後返回這個$string,就可以了,這樣我覺得程式更加清晰易懂
function sub($str,$len,$string){ for($i=0;$i<$len;$i++){ $string; if(ord(substr($str,$i,1))>0xa0){ $string.=substr($str,$i,2); $i++; }else $string.=substr($str,$i,1); } } return $string; }
$string='';這樣就行了。不明白為什麼要用static
在函數內使用的變數,要不是傳參進去,要不然就是全域變數。