Разница между публичной и публичной статикой? - PullRequest
40 голосов
/ 03 апреля 2011

что значит статический?

Я знаю, что public означает, что к нему можно получить доступ снаружи класса, а приватный - только внутри класса

Ответы [ 4 ]

38 голосов
/ 03 апреля 2011

Статический означает, что к нему можно получить доступ без создания экземпляра класса. Это хорошо для констант.

Статические методы не должны влиять на состояние объекта. Они могут иметь локальные переменные в дополнение к параметрам.

32 голосов
/ 15 сентября 2015

public : Доступ к публично объявленным объектам возможен везде.

защищен : защищен ограничивает доступ к наследуемому и родительскому классы (и классу, который определяет элемент).

private : Приватность ограничивает видимость только для класса, который определяет элемент.

статический : статическая переменная существует только в локальной области действия функции, но он не теряет своего значения, когда выполнение программы выходит из этой области.

final : ключевое слово Final предотвращает переопределение дочерних классов метод с префиксом определения с окончательным. Если сам класс будучи определенным как окончательный, он не может быть расширен.

transient : переменная переменная - это переменная, которая не может быть сериализованным.

volatile : переменная, которая может одновременно изменяться несколькими потоки должны быть объявлены как volatile. Переменные, объявленные как volatile не будет оптимизирован компилятором, потому что их значение может измениться в в любое время.

15 голосов
/ 03 апреля 2011

из http://php.net/manual/en/language.oop5.static.php

Объявление свойств или методов класса как статических делает их доступными без необходимости создания экземпляра класса.К свойству, объявленному как статическое, нельзя получить доступ с помощью экземпляра объекта класса (хотя статический метод может).

4 голосов
/ 22 сентября 2015

Некоторые примеры ... При использовании статического ключевого слова мы не можем использовать $ this ..

class Foo{
    private $foo='private';
    private function priv_func(){
        echo 'priv_method';
        }
    public static function ger(){
        echo $this->foo;
        $this->priv_func();
        } 
    }
//class Zero extends Foo{}; 
$obj=new Foo;

$obj->ger();

Неустранимая ошибка: использование $ this, когда не в контексте объекта в

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