0
if ((!in_array("9", $settingid)) || ($username1 == $username2) && ($username_viewed_by_other2 != "-view-by-other-people")) { //start function }

now warning message appear because $username1 is not set yet.

I cannot use if(isset($username1)){ //start function } because the function need to be carried out when $username1 is not set, how to fix this conflict situation?

4

3 回答 3

1

在这种情况下,您可以在这里做很多事情。

最直接的方法是定义变量(如果尚未设置):

if (!isset($username1)) $username1 = '';
if ((!in_array("9", $settingid)) || ($username1 == $username2) && ($username_viewed_by_other2 != "-view-by-other-people")) {
//start function
}

另一个可能是在使用之前进行验证:

if ((!in_array("9", $settingid)) || (isset($username1) && ($username1 == $username2)) && ($username_viewed_by_other2 != "-view-by-other-people")) {
//start function
}

如果不声明你的变量是“需要”做的事情(我非常怀疑并建议反对),你可以通过以下方式在 PHP 中关闭这些通知:

error_reporting(E_ALL ^ E_NOTICE);

这仍然会显示所有其他错误,但会隐藏诸如“未定义变量”之类的通知。

于 2012-07-13T19:28:30.737 回答
0

尝试添加@到变量或使用empty函数而不是isset.

于 2012-07-13T19:25:25.150 回答
0

只需使用 not 运算符

if(!isset($username1)) { /*do function*/ }

这个 if 语句基本上询问是否未设置变量。

于 2012-07-13T19:26:32.333 回答