美好的一天!
我的php项目存在以下问题。我试图在PHP的主类中包含mysqli()类。这是我在PHP中使用OOP构建的第一个项目。
我有以下代码:
<?php
class php{
public function __construct($siteName,$sqlHost,$sqlUser,$sqlPass,$dbName){
$this->info['SiteName']=$siteName;
}
// vars
public $info=array(
'SiteName'=>null,
'Author'=>'Costa V',
'Version'=>0,
'Build'=>0,
'LastUpdate'=>null);
private $sql=new mysqli($sqlHost,$sqlUser,$sqlPass,$dbName);
// functions
}
?>
我还有一个main.php文档,我用以下内容启动此课程:
<?
error_reporting(E_ALL);
$php=new php('Gerador de catalogo AVK','localhost','root','','avk_pdf_gen');
$pdf=new fpdf();
?>
我在'$ sql'变量中得到与'new'关键字相关的错误。
此外,我想请您评估我的代码并向我提供与OOP相关的任何有用建议。
答案 0 :(得分:2)
在构造函数中初始化变量通常是个好主意
特别是当你尝试初始化mysqli
对象的变量不存在于构造函数内部以外的任何地方时。
尝试:
class php {
private $sql;
public function __construct($siteName,$sqlHost,$sqlUser,$sqlPass,$dbName){
// The parameters that are passed into the constructor when you do 'new php(..)'
// only exist within the constructor.
$this->info['SiteName']=$siteName;
$this->sql = new mysqli($sqlHost, $sqlUser, $sqlPass, $dbName);
}
// So if you are using the parameters passed into the constructor here
// (within the class declaration scope)
// They are not yet existing.
}