繁体   English   中英

我可以在PHP中声明一个没有$的变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM