Что такое инкапсуляция с простым примером в php? - PullRequest
31 голосов
/ 12 июня 2009

Что такое инкапсуляция с простым примером в php?

Ответы [ 14 ]

1 голос
/ 26 августа 2014

Просто я предпочитаю, чтобы это была видимость свойства и метода вашего класса. Например- - публичный - частный - защищено

Давайте рассмотрим пример инкапсуляции в реальной жизни.

 class MyClass{
    private $name;

    public function showName($newName){
        $this->name = $newName;
        return $this->name;
    }
 }


 //instantiate object

 $obj = new MyClass();
 echo $obj->showName("tisuchi");

В данном случае инкапсуляция означает, что мы ограничиваем некоторые свойства. Мол, имя свойства, мы не можем получить доступ извне класса. С другой стороны, мы можем получить доступ к публичной функции showName () с одним закрытым параметром.

Просто то, что я предпочитаю для инкапсуляции, -

видимость вашей собственности и метода.

Хотя, если у вас есть намерение понять инкапсуляцию дальше, я ссылаюсь на мой специальный учебник, основанный на инкапсуляции.

http://tisuchi.com/object-oriented-php-part-3-encapsulation-php/

Надеюсь, это сделает вашу концепцию более ясной. Веселись!

0 голосов
/ 18 июня 2019

Свертывание данных внутри одного блока называется инкапсуляцией. Означает, что члены класса, такие как метод и свойства, связываются вместе внутри класса, чтобы избежать доступа извне. Это делается путем закрывания переменных и функций класса.

0 голосов
/ 20 октября 2015

Инкапсуляция - это то, как вы хотели, чтобы ваши объекты / методы или свойства / переменные были видны в вашем приложении. например, :

class ecap {

public $name;

private $id;

protected $tax;

}

Если вы хотите получить доступ к закрытым или защищенным свойствам, то вы должны использовать методы getter и setter в вашем классе, которые будут доступны извне вашего класса. Это означает, что вы не можете получить доступ к своим закрытым или защищенным свойствам напрямую из-за пределов своего класса, но вы можете использовать любые методы. Давайте посмотрим -

в классе, добавьте следующий метод:

class ecap 
{
 public function userId(){
 return $this->id;
 }
} 

и мы можем получить к нему доступ как:

 $obj = new ecap();
 echo $obj->userId();
0 голосов
/ 09 апреля 2015

В основных терминах это способ определения видимости наших свойств и методов. Когда вы создаете классы, вы должны спросить себя, какие свойства и методы могут быть доступны вне класса. Допустим, у нас есть свойство с именем foo. Если класс расширяет ваш класс, разрешено ли ему манипулировать и получать доступ к foo? Что если кто-то создаст экземпляры вашего класса? Разрешено ли им манипулировать и получать доступ к foo?

...