使用PHP的未定义变量

时间:2015-06-09 04:01:56

标签: php

我收到以下

Notice: Undefined variable: array(1,2) in C:\[PATH]\index.php on line 21

但'阵列'仍能正常运作。

我已经从字母组合和SQL查询结果中定义了变量。

代码是:

 <?php 

    $pageId = '1';

    require_once('includes/dbConnect-SQL.php');

    if($dbSuccess) {
                    $qry = "SELECT GROUP_CONCAT(userId) userId
                    FROM security WHERE pageId = '$pageId'";

                    $result = mysql_query($qry);               

                    }

                    while($row = mysql_fetch_array($result,MYSQL_BOTH)) {

                    $userArray = $row['userId'];

                    $rul = 'array(' . $userArray . ')'; } 

    $requiredUserLevel = $$rul;
    $defaultDir =  'secure/';
    include($defaultDir . "secure.php");

?>

我将表echo'的结果称为1,2,3等,这是我想要的,但我需要$requiredUserLevel实际上看起来像这样:

$requiredUserLevel = array(1,2,3);

将group_concat用作数组括号中的数字。

感谢任何帮助,我不知道我在做什么。

3 个答案:

答案 0 :(得分:1)

$rul将是一个字符串。当$rul = 'array(1,2,3)';$$rul一样使用它时,它会查找名为array(1,2,3)的变量。

只需这样做。 -

while($row = mysql_fetch_array($result,MYSQL_BOTH)) {
    $requiredUserLevel = explode(',' , $row['userId']);
}

如果它正在获取单行,那么也不需要该循环。

答案 1 :(得分:0)

更改

$requiredUserLevel = $$rul;

到此:

$requiredUserLevel = $rul;

现在,$rul的值变成了变量,这就是你从PHP获得错误的原因。

答案 2 :(得分:-1)

这不是错误,它是notice!如果您不想获得此类通知,请在此行中添加php.ini:

  

error_reporting = E_ALL & ~E_NOTICE

祝你好运!