Могу ли я объявить переменную без $ в PHP - PullRequest
2 голосов
/ 28 ноября 2011

Я видел этот код в книге 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);
}

и там написано

Свойства объявлены в PHP с использованиемодин из операторов PPP, за которым следует их имя:

Обратите внимание, что, как и обычная переменная, свойство класса может быть инициализировано во время его объявления.Однако инициализация ограничивается присвоением значений (но не путем вычисления выражений).Вы не можете, например, инициализировать переменную путем вызова функции - это то, что вы можете сделать только в одном из методов класса (обычно это конструктор).

Я не могу понять, какvar1, var2, var3 объявлено.Разве это не незаконно?

Ответы [ 4 ]

4 голосов
/ 28 ноября 2011

Пример кода (почти) действителен (просто не хватает нескольких знаков $.)

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);
}

Итак, книга, из которой исходит ваш код, определенно ошибочна.

3 голосов
/ 28 ноября 2011

Нет, это ошибка.Определение:

public var1="Test"; //String

Даст вам:

Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE

Подробнее см. http://codepad.org/meMrSmfA.

2 голосов
/ 28 ноября 2011

Переменные в PHP: ", представленные знаком доллара, за которым следует имя переменной" .Хотя бездолларовые переменные были запрошены , я сомневаюсь, что мы их когда-либо увидим, они включены.

Короче говоря: ваш код неверен.

0 голосов
/ 27 января 2014

В переменной php происходит автоматическое приведение. Все, что вы хотите сохранить в переменной, не нужно объявлять ее типом.Но одна обязательная вещь заключается в том, что когда вы собираетесь объявлять переменную в php, вы должны использовать «$», которую вы пропустили. Объявление Book -

  public var1="Test"; //String
  public var2=1.23; //Numericvalue
  public var3=array(1,2,3);

, неправильное объявление.1005 *

с другой стороны, все в порядке.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...