我需要编辑某人的网站。我需要做的是改变标题。这听起来很容易,但事实并非如此(至少对我而言)。这就是相关行的样子:
<title><?php echo Header::instance()->title; ?></title>
Header::
是什么?我以前从没见过。在其他文件中,我看到了:
<h1 class="title"><?php echo $serial->name; ?></h1>
用于显示序列名称。我想用它作为上面的标题,但它说“未定义变量:串行”。
我该如何改变?
答案 0 :(得分:0)
您正在编辑在oop中创建的网站:页面的标题(应该控制标题,标题和元素我猜)是由名为Header的类控制的,该类具有一个实例(获取)按instance()
),<title>
内容存储在其title
属性中。
<h1>
出现了同样的情况:存储在$serial
变量中的对象有一个属性name
,其中包含当前页面的名称。
Header
课程并修改title
属性。name
属性答案 1 :(得分:0)
第一个代码块(#1)意味着您正在调用instance()
类的静态Header
方法,该方法返回一个包含title
属性的对象,该对象将被回显。
第二个回应name
对象的$serial
属性。事实是,该变量如何传递给视图 - 您可以在任何地方调用任何类(#1)的静态方法,至少在加载类或设置自动加载器时。我假设视图文件是require_once()
'或者只是在同一个文件中,在这种情况下,您需要检查设置的位置(如果在何处)$serial
以及它包含的值。
如果您提供更多代码,我可以告诉您更多内容。 :)
答案 2 :(得分:0)
最有可能将Header
类设置为单例。 Singleton是一种设计模式,只允许存在一个类的实例。在PHP中,这是通过将__construct
方法创建为受保护方法或私有方法来完成的。 ::instance()
methid是一种公共静态方法。因为它是静态的,所以可以在不实例化对象的情况下调用它,静态方法构造Header。因为该方法是类的一部分,所以它可以访问私有或公共构造函数。请看这里的例子:
Creating the Singleton design pattern in PHP5
::
只是告诉PHP你调用一个静态方法。 instance()
返回Header
的实例,Header
包含一个名为title的公共属性,然后用PHP回显。
错误的第二个问题。在您的代码中,可能没有定义$ serial。