属性声明PHP

时间:2015-12-29 06:27:04

标签: php oop

我有一个包含以下类的页面:

class SimpleClass
{
   public $var6 = myConstant;
   public $var7 = array(true, false);
}

我在浏览器上运行该页面。它不会抛出任何错误/警告/通知。

但后来我创建了一个像:

这样的对象
$newvar = new SimpleClass;
echo $newvar->var6;

它给了我“Notice: Use of undefined constant myConstant”。 我知道myConstant需要被定义才能被访问,而这种情况并非如此。

我的问题是为什么我只在创建对象后才收到此通知消息?

2 个答案:

答案 0 :(得分:1)

您收到错误是因为您在第二个示例中实例化了该类。

$newvar = new SimpleClass();

这会在尝试“编译”它时抛出错误,从而尝试在全局命名空间内利用myConstant,从而导致错误(,因为它未定义)。 / p>

如果您没有调用该类,则不会抛出错误,因为它未被使用。

澄清your comment here

由于您实例化了类,因此只会收到错误消息。如果您不这样做,则不会显示错误。这是正确的做法,以及PHP的功能。

答案 1 :(得分:0)

这里当你试图检索$ var6时,假设它像public $ var6 = 56; //任何常数。

了解如何声明常量,如果你想在那里保持不变。或者使用引号,以便将其视为字符串。

<强>字符串

<?php
class SimpleClass
{
   public $var6 = 'myConstant';
   public $var7 = array(true, false);
}

$newvar = new SimpleClass;
echo $newvar->var6;

<强>常数

class MyClass
{
    const CONSTANT = 'constant value';
}

echo MyClass::CONSTANT . "\n";