我正在尝试为类创建一个类对象,但我不断收到一些未知错误。
这是“helper class
”,它从XML
文件中获取内容
<?php
class helperClass {
private $name;
private $weight;
private $category;
private $location;
//Creates a new product object with all its attributes
function __construct(){}
//List products from thedatabase
function listProduct(){
$xmlDoc = new DOMDocument();
$xmlDoc->load("storage.xml");
print $xmlDoc->saveXML();
}
?>
}
在这里,我尝试从helperClassclass
创建一个对象,并从listProducts
调用方法helperClass
,但是如果我尝试实例化一个对象,它将无法运行helperClass
<?php
//Working code...
class businessLogic {
private $helper = null;
public function __construct() {
}
public function printXML() {
$obj = new helperClass();
$obj->fetchFromXMLDocument();
// you probably want to store that new object somewhere, maybe:
$this->helper = $obj;
}
}
}
?>
在你们的帮助下,我想出来了,这就是我想做的事情
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
require 'businessLogic.php';
$obj = new businessLogic();
$obj->printXML();
?>
</body>
</html>
答案 0 :(得分:4)
您的第二个代码段错误。您无法评估类def中的代码。只在一个类的方法里面。 尝试将代码放在构造函数中:
class busniessLogic {
private $helper = null; // defining the property 'helper' with a literal
// private $helper = new helperClass(); // this would throw an error because
// it's not allowed in php.
public function __construct() {
$obj = new helperClass();
$obj->listPruduct();
// you probably want to store that new object somewhere, maybe:
$this->helper = $obj;
}
}
这只是在对象创建时如何执行代码的一个示例。
虽然我不会这样使用它。我宁愿将对象传入或稍后进行设置。
ref :依赖注入
创建对象后,您可以随心所欲地执行任何操作。例如调用方法(当然,必须在其上定义)或将其传递给其他对象。
答案 1 :(得分:1)
您的businessLogic类未正确定义。
<?php
include 'helperClass.php';
class busniessLogic {
function __construct() {
$obj = new helperClass();
$obj->listPruduct();
}
}
$bLogic = new businessLogic();
?>
答案 2 :(得分:1)
你试图做的是错的,因为(取自文档)
类成员变量称为“属性”。你也可以看到它们 引用使用其他术语,如“属性”或“字段”,但 出于本参考的目的,我们将使用“属性”。他们是 使用关键字public,protected或private之一定义, 然后是正常的变量声明。这个声明可能会 包括初始化,但这个初始化必须是一个常量 value - 也就是说,它必须能够在编译时进行评估 不得依赖于运行时信息才能进行评估
所以你应该做点什么
class busniessLogic {
private $obj;
function __construct(){
$this->obj = new helperClass();
$this->obj->listPruduct();
}
}