![](/img/trans.png)
[英]Can I make a variable globally visible without having to declare it global in every single PHP class's constructor?
[英]Can I declare a variable without $ in PHP
我在PHP书中看到了这段代码(PHP架构师,ZEND PHP 5认证指南第141页)
class foo{
public $bar;
protected $baz;
private $bas;
public var1="Test"; //String
public var2=1.23; //Numericvalue
public var3=array(1,2,3);
}
它说
使用其中一个PPP运算符在PHP中声明属性,后跟其名称:
请注意,与普通变量一样,可以在声明类属性时对其进行初始化。 但是,初始化仅限于分配值(但不能通过计算表达式)。 例如,您不能通过调用函数来初始化变量 - 这是您只能在类的一个方法(通常是构造函数)中执行的操作。
我无法理解如何声明var1, var2, var3
。 这不是非法的吗?
示例代码(几乎)有效(它只缺少几个$符号。)
class foo
{
// these will default to null
public $bar;
protected $baz;
private $bas;
// perfectly valid initializer to "string" value
public $var1 = "Test"; //String
// perfectly valid initializer to "float" value
public $var2 = 1.23; //Numericvalue
// perfectly valid initializer to "array" value
// (array() is a language construct/literal, not a function)
public $var3 = array(1,2,3);
}
所以,你的代码来自的书肯定是错误的。
不,这是一个错误。 定义:
public var1="Test"; //String
会给你:
Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE
有关详细信息,请参阅http://codepad.org/meMrSmfA 。
PHP中的变量“以美元符号后跟变量名称”表示 。 虽然已经请求了无数变量,但我怀疑它们是否曾经看到它们被启用。
简而言之:您的代码无效。
在php变量中是自动转换。无论你想要保留在变量中,都不需要声明它的类型。 但是一个强制性的事情是,当你要在php中声明一个变量时,你必须使用“$”你错过了哪一个。书的声明是
public var1="Test"; //String
public var2=1.23; //Numericvalue
public var3=array(1,2,3);
它的错误声明是对的
public $var1="Test"; //String
public $var2=1.23; //Numericvalue
public $var3=array(1,2,3);
这是另一个明智的事情。 谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.