PHP OOP Access Modifiers Public, Private, Protected

PHP-এ OOP (Object-Oriented Programming) শেখার সময় Access Modifiers খুবই গুরুত্বপূর্ণ। এগুলো Class-এর Properties এবং Methods-এর এক্সেস নিয়ন্ত্রণ করে।
PHP-এ মূলত তিন ধরনের Access Modifiers আছে:
Public
Private
Protected
চলুন একে একে দেখি।
Public
Public Access Modifier মানে হলো কোনো রেস্ট্রিকশন নেই।
Public প্রোপার্টি বা মেথডকে Class-এর ভিতরে এবং বাইরে দু’জায়গায় ব্যবহার করা যায়।
উদাহরণ:
<?php
class Car {
public $brand;
public function setBrand($name) {
$this->brand = $name;
}
public function getBrand() {
return $this->brand;
}
}
$myCar = new Car();
$myCar->setBrand("Toyota");
echo $myCar->getBrand(); // Output: Toyota
এখানে $brand এবং মেথডগুলো public, তাই আমরা Class-এর বাইরে থেকেও এগুলো ব্যবহার করতে পারছি।
Private
Private মানে হলো সরাসরি বাইরে থেকে এক্সেস করা যাবে না।
Private প্রোপার্টি বা মেথড শুধুমাত্র একই Class-এর ভিতরে ব্যবহার করা যায়।
উদাহরণ:
<?php
class BankAccount {
private $balance = 0;
public function deposit($amount) {
$this->balance += $amount;
}
public function getBalance() {
return $this->balance;
}
}
$account = new BankAccount();
$account->deposit(500);
echo $account->getBalance(); // Output: 500
// সরাসরি access করলে error হবে
// echo $account->balance; // Fatal error
ব্যাখ্যা:
আমরা
$balanceকে private করেছি।তাই সরাসরি
$account->balanceকরতে পারবো না।কিন্তু public মেথড
deposit()এবংgetBalance()ব্যবহার করে balance পরিবর্তন ও দেখানো যায়।
Private এর সুবিধা:
Data Encapsulation।
ডেটা নিরাপদ রাখা যায়।
Protected
Protected মানে হলো Class-এর ভিতরে এবং Inherited Class-এ ব্যবহার করা যাবে।
কিন্তু Class-এর বাইরে থেকে সরাসরি access করা যাবে না।
উদাহরণ:
<?php
class ParentClass {
protected $name = "Parent";
protected function showName() {
return $this->name;
}
}
class ChildClass extends ParentClass {
public function display() {
return $this->showName();
}
}
$child = new ChildClass();
echo $child->display(); // Output: Parent
// সরাসরি access করলে error হবে
// echo $child->name; // Fatal error
ব্যাখ্যা:
$nameএবংshowName()protected।আমরা ChildClass থেকে access করতে পারি।
Class-এর বাইরে সরাসরি access করা যাবে না।
Protected এর সুবিধা:
Inheritance-এর সময় ডেটা শেয়ার করতে সুবিধা।
Class-এর বাইরে ডেটা লুকিয়ে রাখা যায়।
Quick Summary Table
| Modifier | Access Inside Class | Access in Child Class | Access Outside Class |
| Public | ✅ | ✅ | ✅ |
| Private | ✅ | ❌ | ❌ |
| Protected | ✅ | ✅ | ❌ |
দৈনন্দিন জীবনের উদাহরণ
Public: আপনার Facebook প্রোফাইলের “Public Post” – কেউ যা দেখতে চায়, সবাই দেখতে পারে।
Private: আপনার Facebook Account-এর Password – শুধু আপনার জন্য।
Protected: আপনার ফ্যামিলি ফটো Album – শুধু পরিবারের মধ্যে শেয়ার করা যাবে।
Access Modifiers শেখা খুবই গুরুত্বপূর্ণ, কারণ এগুলো Class-এর ডেটা নিরাপদ রাখে এবং কোডের structure ভালো রাখে।
Public: সব জায়গা থেকে access করা যায়।
Private: শুধুমাত্র class-এর ভিতরে access করা যায়।
Protected: class এবং subclass-এর ভিতরে access করা যায়।
এবার যখন আপনি OOP-এ কাজ করবেন, আপনার কোড হবে নিরাপদ, পরিষ্কার এবং maintainable।




