我在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
。这不是非法的吗?
答案 0 :(得分:4)
示例代码(几乎)有效(它只缺少几个$符号。)
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);
}
所以,你的代码来自的书肯定是错误的。
答案 1 :(得分:3)
不,这是一个错误。定义:
public var1="Test"; //String
会给你:
Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE
有关详细信息,请参阅http://codepad.org/meMrSmfA。
答案 2 :(得分:2)
PHP中的变量是"represented by a dollar sign followed by the name of the variable"。虽然没有美元的变量have been requested,但我怀疑他们是否曾经看到它们被启用。
简而言之:您的代码无效。
答案 3 :(得分:0)
在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);
另一方面,每件事都很好。 谢谢