Вопрос по php, keyword – Что делает PHP ключевое слово var?

394

Вероятно, это очень тривиальный вопрос, но я не смог найти ответ ни с помощью поисковых систем, ни на php.net. Пожалуйста, просто направьте меня туда, где я могу прочитать об этом, если у вас нет времени, чтобы объяснить.

What does the 'var' keyword mean in PHP? Are there any differences between PHP4 and PHP5?
Я думаю, когда вы задавали этот вопрос 30 июля 2009 года, он еще не был опубликован наphp.net/manual/en/language.oop5.visibility.php?: & quot; Примечание. Метод объявления переменной PHP 4 с ключевым словом var по-прежнему поддерживается в целях совместимости (как синоним открытого ключевого слова). В PHP 5 до 5.1.3 его использование приводило к предупреждению E_STRICT. & Quot; Или, может быть, вы не нашли его. Но ответ четко изложен на php.net. Jaime Montoya

Ваш Ответ

7   ответов
355

Он предназначен для объявления переменных класса в PHP4 и больше не нужен. Это будет работать в PHP5, но подниметE_STRICT предупреждение в PHP от версии 5.0.0 до версии 5.1.2 с момента его устаревания. Начиная с PHP 5.3, var не устарел и является синонимом для 'public'.

Пример использования:

class foo {
    var $x = 'y'; // or you can use public like...
    public $x = 'y'; //this is also a class member variables.
    function bar() {
    }
}
поэтому рекомендуется просто придерживаться public / private и полностью игнорировать var, так как мы не беспокоимся о работе с устаревшими версиями PHP?
Это подразумевает, что этоnecessary использоватьpublic ключевое слово с для переменной члена. Это правда? Можно просто сказать$x;?
"Note: The PHP 4 method of declaring a variable with the var keyword is still supported for compatibility reasons (as a synonym for the public keyword). In PHP 5 before 5.1.3, its usage would generate an E_STRICT warning." php.net/manual/en/language.oop5.visibility.php РЕДАКТИРОВАТЬ: я только что увидел, что это уже цитируетсяin another answer, Но вы должны отредактировать свой соответственно.
-1

var используется как public. Если varable объявлен так в классе       var $ a; if означает, что его область является общедоступной для класса.   в простых словах var ~ public

var $a;
public
73

var Ключевое слово используется дляобъявить переменные в классе в PHP 4:

class Foo {
    var $bar;
}

С PHP 5видимость свойства и метода (public, protected а такжеprivate) был введен и, таким образом,var устарела.

Если это устарело, какова лучшая практика сейчас в 5.3 - использовать это или не использовать? Вы можете использовать это какprivate var $foo = 'bar';?
Кто-нибудь знает, почему это устарело?
var не является истинным синонимомpublic поскольку его нельзя использовать для объявления статических элементов или констант.
Это было недооцененоin 5.1.3 - единственные причины приведены"for compatibility reasons", Я думаю, что лучше всего использовать его, только если вам нужно быть совместимым с PHP 4. Конечно, не делайтеprivate var - это сломает вещи очень быстро, какvar это просто синонимpublic в PHP 5.
В PHP 5.3var устарела :)
23

Я цитируюhttp://www.php.net/manual/en/language.oop5.visibility.php

Note: The PHP 4 method of declaring a variable with the var keyword is still supported for compatibility reasons (as a synonym for the public keyword). In PHP 5 before 5.1.3, its usage would generate an E_STRICT warning.

@WallacedeSouza, это потому, что вы использовали PHP 7 в своем примере. Недействительно только в версиях 5.0 - 5.1.3
Я делал тесты. Нет возврата E_STRICT!sandbox.onlinephpfunctions.com/code/…
1

Так что в основном это старый стиль и не используйте его для более новой версии PHP. Вместо этого лучше использовать ключевое слово Public, если вы не влюблены в ключевое слово var. Поэтому вместо использования

class Test {
    var $name;
}

использование

class Test {
   public $name;
}
почему ты сказал это? есть ли новости оvar быть устаревшим, что я не слышал? два должны быть синонимами
3

Answer: Отphp 5.3 и>,var Ключевое слово эквивалентноpublic при объявлении переменных внутри класса.

class myClass {
  var $x;
}

такой же как (дляphp 5.3 и>):

class myClass {
  public $x;
}

History: It was previously the norm for declaring variables in classes, though later became depreciated, but later (PHP 5.3) it became un-depreciated. <,/p>

0

здесь и сейчас в2018 с помощьюvar для объявления переменной является синонимомpublic как в

class Sample{
    var $usingVar;
    public $usingPublic;

    function .....

}

Похожие вопросы