2013-01-02 29 views
0

我正在嘗試做的是爲$ ftp_user_name設置一個全局變量,這樣我就可以將它放在我的函數中,這樣當循環遍歷信息時它將正確地preg_match我的ftp連接結束並輸出我正在查找的文件列表。我如何設置一個while循環的全局函數

function is_txt($file) { 
    global $ftp_user_name; 
    return preg_match('/backup-[0-9]+\.[0-9]+\.[0-9]+_[0-9]{2}-[0-9]{2}-[0-9]{2}_'.$ftp_user_name.'.tar.gz/', $file) > 0; 
} 

while($row = mysql_fetch_array($query)) { 

    $ftp_dir = $row['ftpdir']; 

    // main display loop 

    if (empty($row['ftphost'])){ 

     $ftp_server = $row['domain']; 
     $ftp_user_name = $row['cpuser']; 
     $ftp_user_pass = $row['cppass']; 

    } 
    else 
    { 
     $ftp_server = $row['ftphost']; 
     $ftp_user_name = $row['ftpuser']; 
     $ftp_user_pass = $row['ftppass']; 
    } 
} 
+0

我不明白爲什麼你在這裏需要全局? – Sir

+0

爲什麼[* globals是邪惡?*](http://programmers.stackexchange.com/questions/148108/why-is-global-state-so-evil) – alfasin

回答

1

這裏是我的建議,也沒有必要使用全局變量,只是把它作爲一個參數:

function is_txt($file,$user_name) { 
    return preg_match('/backup-[0-9]+\.[0-9]+\.[0-9]+_[0-9]{2}-[0-9]{2}-[0-9]{2}_'.$user_name.'.tar.gz/', $file) > 0; 
} 

while($row = mysql_fetch_array($query)) { 
    ... 
    if (is_txt($file, $ftp_user_name)){ 
     // your code here 
    } 
    ... 
} 
相關問題