php oops包括另一个页面

时间:2014-10-14 13:05:59

标签: php mysql

这是我在database.php中的代码

    $db_host = "localhost";
    $db_username = "root";
    $db_pass = "";
    $db_name = "ss";
    $con = new PDO('mysql:host=localhost;dbname=app', $db_username, $db_pass);

在我的课程页面

include_once "database.php";
class article_fun
{
  public function myfun()
    {
     $sqlcreate = $con->query("selct query")
     }
}

我们如何使用$con->query("select query")收到错误Undefined variable: con如何解决此问题?

5 个答案:

答案 0 :(得分:1)

$con作为参数传递给article_fun::myFun()

class article_fun
{
  public function myfun($con)
  {
     $sqlcreate = $con->query("selct query")
  }
}

仅供参考,在PHP中,通常使用大写字母启动类名并使用camelCase:

class ArticleFun

答案 1 :(得分:1)

您创建的变量不在函数范围内 因此,您无法从函数内部访问函数外部的变量 尝试使用魔术函数__construct()
像这样:

class article_fun{
  private $_con;

  public function __construct( $con ){
    $this -> _con = $con;
  };

  public function myfun(){
    $sqlcreate = $this -> _con->query("selct query")
  }
}

现在你只需将$con var传递给类,如下所示:

$article_fun = new article_fun( $con );

答案 2 :(得分:1)

使用此

class article_fun
{
private $con;
public function __construct($con){
$this->con=$con;
}
  public function myfun()
    {
     $sqlcreate = $this->con->query("selct query")
     }
}

称之为

include_once "database.php";

new article_fun($con);

或使用此

class article_fun
    {
    private $con;
    public function __construct(){
    $db_host = "localhost";
    $db_username = "root";
    $db_pass = "";
    $db_name = "ss";
    $this->con = new PDO('mysql:host=localhost;dbname=app', $db_username, $db_pass);
    }
      public function myfun()
        {
         $sqlcreate = $this->con->query("selct query")
         }
    }

答案 3 :(得分:0)

class article_fun
{
  public function myfun()
  {
     global $con;
     $sqlcreate = $con->query("select query")
  }
}

您的变量是在全局上下文中定义的,并且您尝试在类的方法中使用它。

答案 4 :(得分:-1)

使用全局变量

  $GLOBALS['con'] = $yourConnection;

检查此链接以获取答案 How to declare a global variable in php?