2013-11-28 57 views
0

如何在不設置某些變量時調用函數而不引發任何錯誤?例如,我需要logUserActivity($uName,$uId)。如果用戶登錄並設置了這兩個變量,這將工作正常。但是,如果用戶未登錄,它將不起作用,並且會引發錯誤。未設置變量值時的函數參數

在這種情況下,可以做些什麼來使這兩個值爲NULL?

我這樣做:logUserActivity($uName=NULL,$uId=NULL)但這使得它們永遠是NULL。

我也做了function logUserActivity($uName=NULL, $uId=NULL),由此仍然拋出一個錯誤。

+0

功能logUserActivity($ UNAME = NULL,$ UID = NULL)應該工作正常確保你在進行任何處理之前先對它們進行檢查。 –

回答

0

你必須設置一個函數的默認值,使其可選

喜歡嘗試這種

function logUserActivity($uName='', $uId='') 
+0

什麼是調用時:'logUserActivity(null,null);'?看來OP在他們的問題中有這種情況。 – zamnuts

+0

@zamnuts我已經測試過兩個爲我工作 –

0
function logUserActivity($uName=NULL, $uId=NULL){ 
    if($uName != ''){ 
    echo 'Uname is set - '.$uName; 
    } 
    if($uId != ''){ 
    echo 'uId is set - '.$uId; 
    } 
} 

logUserActivity(NULL,20);//O/p - uId is set - 20 
logUserActivity('Test',NULL);//O/p - Uname is set - Test 
logUserActivity('Test',20);//O/p - uId is set - 20,uId is set - 20 
logUserActivity(NULL,NULL);//NO O/p 
0

這樣寫:

function logUserActivity($uName=NULL, $uId=NULL) // If nothing is passed it will take it as null 
    { 
    if($uName==NULL && $uId == NULL) { 
     //User is not logged in 
     } 
     else 
     { 
     //user is logged in 
     } 
    } 

並把它當用戶已登錄

logUserActivity("userName", 12345); 

而當

logUserActivity(); 

沒有登錄用戶的更多信息,你可以看看這個:http://us2.php.net/manual/en/functions.arguments.php

0
function logUserActivity($uName=null,$uId=null) { 
    if (!isset($uName) || !$uName) { 
     $uName = 'some default'; // optionally, return; could be sued 
    } 
    if (!isset($uId) || !$uId) { 
     $uId = 'some default'; // optionally, return; could be sued 
    } 
}