2013-11-28 32 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 
    } 
}