Php 让类知道一个变量
我面临一个问题,我希望类页面知道变量“$format”Php 让类知道一个变量,php,namespaces,global,Php,Namespaces,Global,我面临一个问题,我希望类页面知道变量“$format” // class1.php <?php include('./class2.php'); echo $format->getTest(); // returns :-) (declared in class2.php) class Page { PUBLIC function getText() { return $format->getTest(); // returns Call
// class1.php
<?php
include('./class2.php');
echo $format->getTest(); // returns :-) (declared in class2.php)
class Page {
PUBLIC function getText() {
return $format->getTest(); // returns Call to a member function getTest() on null
}
}
$page = new Page;
?>
// class2.php
<?php
class Format {
PUBLIC function getTest() {
return ":-)";
}
}
$format = new Format;
?>
有什么建议/想法吗
编辑:
我找到了一种方法:return$GLOBALS['format']->getTest;
但是我不喜欢,打字太难了。还有别的办法吗
Philip正确的目标解决方案是将变量传递给构造函数、setter或作为参数传递给getText方法。选择一个你认为最适合你的情况 建造师 塞特 论据
这是如何让Page知道$format的?不管怎样,我得到的类不仅仅是格式化,还有没有其他不使用构造函数的方法?我的意思是,我已经在class1.php中获得了varibale,有没有办法也进入课堂页面?谢谢!你觉得这个解决方案怎么样,我声明一个构造函数,遍历$GLOBALS并声明一个带有$GLOBALS包含的所有内容的变量?那么如果你想要硬编码所有内容,那么使用目标代码有什么意义呢?无论您做什么,您将拥有一个始终以相同方式工作的类,因为它总是读取全局变量。这显然不是你想要的,因为我认为将来会有新的格式,你会想用另一种格式替换一种格式。不,格式是我在文件夹/类中得到的许多类中的一个类。我希望通过使它们可见来实现我需要的每个类
class Page
{
private $format;
public function __construct(Format $format)
{
$this->format = $format;
}
public function getText()
{
return $this->format->getTest();
}
}
$page = new Page($format);
echo $page->getText();
class Page
{
private $format;
public function setFormat(Format $format)
{
$this->format = $format;
}
public function getText()
{
return $this->format->getTest();
}
}
$page = new Page;
$page->setFormat($format);
echo $page->getText();
class Page
{
public function getText(Format $format)
{
return $format->getTest();
}
}
$page = new Page;
echo $page->getText($format);