【问题标题】:Using a PHP function with a variable使用带变量的 PHP 函数
【发布时间】:2012-10-14 03:54:15
【问题描述】:

我正在学习 2007 年编写的教程,他们让我用这段代码创建这个函数。 如果我不创建该功能,而只是在网页中对其进行硬编码,则它可以工作。代码如下:

function getAllSubjects(){
$query = "SELECT * 
        FROM subjects 
        ORDER BY position ASC";
$subjectSet = mysql_query( $query, $connection);
confirmQuery($subjectSet);
return $subjectSet;
}

这是我在网页中的实现方式:

$querryArray = getAllSubjects();

当我运行代码时,我收到一条错误消息:

" Notice: Undefined variable: connection in " 

从 getAllSubjects() 函数中抱怨它。我在调用此代码之前在我调用的文件中创建了$connection 变量,这不是很好吗?我按以下顺序称呼他们:

require_once("includes/connection.php") 
require_once("includes/functions.php") 

【问题讨论】:

    标签: php arrays function


    【解决方案1】:

    变量的范围是定义它的上下文。大多数情况下,所有 PHP 变量都只有一个作用域。这个单一范围也涵盖了包含的和必需的文件。

    您的变量 $connection 在全局范围内。要访问它,请将其包含在您的函数中:

    function getAllSubjects(){
    global $connection;
    $query = "SELECT * 
            FROM subjects 
            ORDER BY position ASC";
    $subjectSet = mysql_query( $query, $connection);
    confirmQuery($subjectSet);
    return $subjectSet;
    }
    

    注意:查看此链接以获取更详细的说明http://php.net/manual/en/language.variables.scope.php

    【讨论】:

      【解决方案2】:
      function getAllSubjects(){
          global $connection;
          $query = "SELECT * 
                  FROM subjects 
                  ORDER BY position ASC";
          $subjectSet = mysql_query( $query, $connection);
          confirmQuery($subjectSet);
          return $subjectSet;
      }
      

      【讨论】:

        【解决方案3】:

        问题是$connection不在getAllSubjects()的范围内

        尝试使用global 关键字将其包含在函数范围内。

        function getAllSubjects() {
            global $connection;
            //...
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多