PHP在主PHP类中包含mysqli()类
你好 我的php项目有以下问题。我试图在PHP的主类中包含mysqli()类。这是我在PHP中使用OOP构建的第一个项目 我有以下代码:PHP在主PHP类中包含mysqli()类,php,mysqli,Php,Mysqli,你好 我的php项目有以下问题。我试图在PHP的主类中包含mysqli()类。这是我在PHP中使用OOP构建的第一个项目 我有以下代码: <?php class php{ public function __construct($siteName,$sqlHost,$sqlUser,$sqlPass,$dbName){ $this->info['SiteName']=$siteName; } // vars p
<?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相关的有用建议。在构造函数中初始化变量通常是个好主意。
特别是当您尝试初始化
mysqli
对象时,除了构造函数内,其他任何地方都不存在变量。
尝试:
不能在编译时用必须在运行时执行的定义实例化属性。这是您应该转移到构造函数的地方。(即,整个私有$sql=…应替换为一个简单的私有$sql;然后在您的_construct()函数中执行$this->sql=new mysqliDid我给您的答案提供了所需的信息?如果是,请将其标记为正确。如果需要,还可以继续提问,并对答案进行注释。
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.
}