我见过上课时var _hello_kitty = array();
为什么他们不使用$?我试图将其设为public
和static
,如果不添加$
则无效。 public static $_hello_kitty = array();
现在当我添加$
_hello_kitty
引用它的其他函数时,$this->_tpl_vars[$tpl_var] = &$value
停止工作。
self::_tpl_vars[$tpl_var];
而没有$,我无法使用array_merge() [function.array-merge]: Argument #1 is not an array i
现在我确实使用了self :: $ _ tpl_vars [$ tpl_var];但现在错误出现{{1}}
答案 0 :(得分:1)
你使用的是smarty,看起来你正在使用类4变量的PHP 4表示法:
var
它的PHP 5表示是:
public
但是您不需要更改代码,因为PHP是向后兼容的。请保留原样,以提醒事情发生变化,对于您自己的代码,您将无法使用var
。
如果您实际上需要来更改代码,因为它会中断(而不是因为您想要更改代码而中断代码),您会很早就注意到。
答案 1 :(得分:0)
这就是PHP类属性的语法如何工作。
使用美元符号定义属性,例如
public $publicProperty;
protected $protectedProperty;
private $privatePropertyKeepOutLulz;
当从类实例(即对象)引用它们时,省略美元符号,例如
$obj->publicProperty;
$this->protectedProperty;
$this->privatePropertyKeepOutLulz;
使用static
关键字
public static $publicStaticProperty;
private static $privateStaticProperty;
然后你这样引用它们
// From outside the class (only applies to public properties)
ClassName::$publicStaticProperty;
// From within the class
self::$privateStaticProperty;
// From a descendant class (public or protected only)
parent::$property;
答案 2 :(得分:0)