Анги дахь хувийн өмчийн үнэ цэнийг олж мэдэхийн тулд объект хандалтат програмчлалын инкапсуляцын тухай ойлголтыг ойлгох хэрэгтэй. Encapsulation нь шинж чанар, аргууд гэх мэт ангийн гишүүдэд хандах хандалтыг хянах боломжийг олгодог үндсэн зарчим юм. РНР дээр бид хандалтын хувиргагчийг ашиглан инкапсуляцид хүрч чадна.
PHP-д бид нийтийн, хамгаалагдсан, хувийн гэсэн гурван хандалт хувиргагчтай. Нийтийн шинж чанарууд болон аргуудад хаанаас ч хандах боломжтой бол хамгаалагдсан шинж чанарууд болон аргуудад зөвхөн тухайн анги эсвэл түүний дэд ангиудад хандах боломжтой. Харин хувийн шинж чанарууд болон аргууд нь зөвхөн тодорхойлсон анги дотроос хандах боломжтой.
Анги дахь хувийн өмчийн үнэ цэнэд хандахын тулд бид ихэвчлэн getter болон setter аргыг ашигладаг. Getter арга нь хувийн өмчийн үнэ цэнийг олж авах үүрэгтэй бол setter арга нь хувийн өмчийн үнэ цэнийг шинэчлэхэд ашиглагддаг. Нэг жишээг харцгаая:
php class MyClass { private $myPrivateProperty; public function getMyPrivateProperty() { return $this->myPrivateProperty; } public function setMyPrivateProperty($value) { $this->myPrivateProperty = $value; } } $obj = new MyClass(); $obj->setMyPrivateProperty('Hello, World!'); echo $obj->getMyPrivateProperty(); // Output: Hello, World!
Дээрх жишээнд бид `$myPrivateProperty` хувийн өмчтэй `MyClass` нэртэй ангитай байна. Бид хувийн өмчийн үнэ цэнэд хандах, өөрчлөхийн тулд хүлээн авагч болон тохируулагч аргуудыг (`getMyPrivateProperty` болон `setMyPrivateProperty`) тодорхойлсон.
Хувийн өмчид хандахын тулд бид ангийн жишээг (`$obj`) үүсгэж, тохируулагч аргыг (`setMyPrivateProperty`) ашиглан утгыг тохируулна. Дараа нь бид утгыг олж авахын тулд хүлээн авагчийн аргыг (`getMyPrivateProperty`) ашигладаг.
Getter болон setter аргуудыг ашигласнаар бид хувийн өмчид хэрхэн хандаж, өөрчлөхийг хянах боломжтой. Бид эдгээр аргуудын дотор нэмэлт логик эсвэл баталгаажуулалтыг нэмж, өмчид зөв нэвтэрч, өөрчлөгдсөн эсэхийг баталгаажуулах боломжтой.
Ангийн хамрах хүрээнээс гадуур хувийн өмчид шууд хандахыг зөвлөдөггүй, учир нь энэ нь капсулжуулалтын зарчмыг зөрчиж байгааг анхаарах нь чухал юм. Encapsulation нь түүний дотоод байдалд хандах хандалтыг хянах замаар ангийн бүрэн бүтэн байдал, тууштай байдлыг хадгалахад тусалдаг.
Анги дахь хувийн өмчийн үнэ цэнэд хандахын тулд бид getter болон setter аргуудыг ашиглаж болно. Эдгээр аргууд нь хувийн өмчид хяналттай хандах боломжийг олгож, тэдгээрийн утгыг олж авах, өөрчлөх боломжийг бидэнд олгодог. Бүрхүүл болон хандалтын хувиргагчийг ашигласнаар бид ангиудын бүрэн бүтэн байдал, тууштай байдлыг хангаж чадна.
Сүүлийн үеийн бусад асуулт, хариулт PHP дээрх анги ба объект:
- Анги дахь шинж чанаруудад хандах, өөрчлөх талаар санал болгож буй арга юу вэ?
- Анги дахь хувийн өмчийн үнэ цэнийг хэрхэн шинэчлэх вэ?
- Ангид хүлээн авагч, тохируулагч ашиглах нь ямар ашигтай вэ?
- Ангид үл хөдлөх хөрөнгийг хувийн болгох зорилго нь юу вэ?
- РНР ангиудад бүтээгч функц гэж юу вэ, түүний зорилго юу вэ?
- РНР ангиудад ямар аргууд байдаг вэ, тэдгээрийн харагдах байдлыг хэрхэн тодорхойлох вэ?
- PHP ангиудад ямар шинж чанарууд байдаг вэ, тэдгээрийн харагдах байдлыг хэрхэн тодорхойлох вэ?
- Бид PHP дээр ангиас объектыг хэрхэн үүсгэх вэ?
- PHP-д анги гэж юу вэ, энэ нь ямар зорилготой вэ?