PHP Access Modifiers

1 min read

PHP – Access Modifiers #

Properties and methods can have access modifiers which control where they can be accessed.

Шинж чанар, аргууд нь хаанаас хандаж болохыг хянах хандалтын өөрчлөгчтэй байж болно.

There are three access modifiers:

Гурван хандалтыг өөрчилдөг:

  • public – the property or method can be accessed from everywhere. This is default – өмч, аргад хаанаас ч хандаж болно. Энэ нь анхдагч юм
     
  • protected – the property or method can be accessed within the class and by classes derived from that class – шинж чанар эсвэл аргад анги дотроос болон тухайн ангиас авсан ангиудаар хандаж болно
  • private – the property or method can ONLY be accessed within the class – шинж чанар эсвэл аргад ЗӨВХӨН анги дотор нэвтрэх боломжтой

In the following example we have added three different access modifiers to the three properties. Here, if you try to set the name property it will work fine (because the name property is public). However, if you try to set the color or weight property it will result in a fatal error (because the color and weight property are protected and private):

Дараах жишээнд бид гурван шинж чанар дээр гурван өөр хандалтын өөрчлөлт оруулагчийг нэмсэн. Хэрэв та нэрийн өмчийг тохируулахыг оролдвол энэ нь сайн ажиллах болно (нэрийн өмч олон нийтэд нээлттэй тул). Гэсэн хэдий ч, хэрэв та өнгө эсвэл жингийн шинж чанарыг тохируулахыг оролдвол энэ нь ноцтой алдаа гаргах болно (өнгө, жингийн өмч нь хамгаалагдсан, хувийн тул):

Example #

Жишээ #

<?php class Fruit { public $name; protected $color; private $weight; } $mango = new Fruit(); $mango->name = 'Mango'; // OK $mango->color = 'Yellow'; // ERROR $mango->weight = '300'; // ERROR ?>

In the next example we have added access modifiers to two methods. Here, if you try to call the set_color() or the set_weight() function it will result in a fatal error (because the two functions are considered protected and private), even if all the properties are public:

Дараагийн жишээнд бид хандалтын өөрчлөгчийг хоёр аргаар нэмсэн. Хэрэв та set_color () эсвэл set_weight () функцийг дуудах гэж оролдвол бүх шинж чанарууд олон нийтэд нээлттэй байсан ч гэсэн алдаатай алдаа гарах болно (учир нь эдгээр хоёр функцийг хамгаалагдсан, хувийн гэж үздэг).

Example #

Жишээ #

<?php class Fruit { public $name; public $color; public $weight; function set_name($n) { // a public function (default) $this->name = $n; } protected function set_color($n) { // a protected function $this->color = $n; } private function set_weight($n) { // a private function $this->weight = $n; } } $mango = new Fruit(); $mango->set_name('Mango'); // OK $mango->set_color('Yellow'); // ERROR $mango->set_weight('300'); // ERROR ?>

Powered by BetterDocs

Leave a Reply