2013-05-14 35 views
1

這裏是我的代碼:PHP - 我能正確調用一個函數嗎?

$oldPhone = $_POST["phone"]; 

$newPhone = makeInteger($oldPhone); 

lengthMustBe($newPhone, 10, "Please enter a valid 10-digit phone number."); 

下面是函數:

function lengthMustBe($str, $length, $errormsg) { 

    if (strlen($str) != $length) { 
     $status = "failure"; 
     $error = $errormsg; 
    } 

}; 

功能是非常自我解釋..

當我嘗試將它傳遞"123", 10, "Not long enough",$地位仍然「成功」(定義在頁面頂部)

+0

刪除;在函數結尾處+您需要定義超出所有代碼的函數 – SolidSnake 2013-05-14 00:07:35

+0

如何檢查'$ status'值? – Tchoupi 2013-05-14 00:07:59

回答

2

您需要設置$status變量,如:

$tmpArray = lengthMustBe($newPhone, 10, "Please enter a valid 10-digit phone number."); 
$status = $tmpArray[0]; 
$statusMsg = $tmpArray[1]; 

和你的函數:

function lengthMustBe($str, $length, $errormsg) { 

    if (strlen($str) != $length) { 

     return array("failure", $errormsg); 
    } 
    else 
    { 
     return array("success", ""); 
    } 
} 

唐不使用全局變量只是一個可怕的想法...

+0

是的,我得到我將如何收到「失敗」,但我也需要返回錯誤消息...我該怎麼做? – 2013-05-14 14:38:27

+0

@RickBross - 檢查更新後的答案..所有你需要的是返回一個數組的狀態和消息。您可以將「失敗」和「成功」字符串更改爲布爾值,如true或false。 – SolidSnake 2013-05-14 17:09:53

+0

哦,恩......謝謝你! – 2013-05-14 22:45:31

2

如何在頁面頂部定義$狀態?我的猜測是這個函數中$ status的作用域使它成爲一個不同的變量,然後是頁面頂部定義的變量。

2

$status var的範圍是函數lengthMustBe內部。

您可以定義$status作爲一個全局變量是這樣的:

function lengthMustBe($str, $length, $errormsg) { 
    global $status; 
    // ... 
相關問題