ভূমিকা
ক্লাসের ভেতরে ডিক্লেয়ার করা ডেটা মেম্বারগুলোকে প্রপার্টি বলা হয়। প্রপার্টিকে কখনো কখনো অ্যাট্রিবিউট বা ফিল্ড ও বলা হয়। PHP-এ, একটি প্রপার্টি অ্যাক্সেস স্পেসিফায়ার কীওয়ার্ড - public, private বা protected দ্বারা কোয়ালিফাইড হয়। প্রপার্টির নাম PHP-এ যেকোনো বৈধ লেবেল হতে পারে। প্রপার্টির ভ্যালু ক্লাসের প্রতিটি ইনস্ট্যান্সের জন্য আলাদা হতে পারে। তাই এটিকে কখনো কখনো ইনস্ট্যান্স ভেরিয়েবল ও বলা হয়।
যেকোনো ইনস্ট্যান্স মেথডের ভেতরে, প্রপার্টি অবজেক্টের কনটেক্স্ট কল করে অ্যাক্সেস করা যায় যা একটি সুডো-ভেরিয়েবল $this হিসেবে উপলব্ধ। যদি একটি প্রপার্টি public হিসেবে ডিক্লেয়ার করা হয়, তবে এটি অবজেক্টের কাছে -> অপারেটর দিয়ে উপলব্ধ। যদি একটি প্রপার্টি static কীওয়ার্ড দিয়ে ডিফাইন করা হয়, তবে এর ভ্যালু ক্লাসের সকল অবজেক্টের মধ্যে শেয়ার্ড থাকে এবং ক্লাসের নাম এবং স্কোপ রেজোলিউশন অপারেটর (::) দিয়ে অ্যাক্সেস করা হয়।
প্রপার্টি ডিক্লেরেশন এবং অ্যাক্সেস
এই উদাহরণে দেখানো হয়েছে কিভাবে একটি প্রপার্টি ডিফাইন এবং অ্যাক্সেস করা হয়।
উদাহরণ
<?php class myclass{ private $fname="Kiran"; public $mname="Pratap"; static $lname="Singh"; function dispdata(){ echo "$this->fname\n"; echo "$this->mname\n"; echo myclass::$lname; } } $obj=new myclass(); $obj->dispdata(); ?>আউটপুট
উপরের কোডের আউটপুট নিচের মতো:
Kiran Pratap Singh
ক্লাসের বাইরে, public হিসেবে ডিক্লেয়ার করা ইনস্ট্যান্স প্রপার্টি অবজেক্টের কাছে উপলব্ধ, কিন্তু private প্রপার্টি অ্যাক্সেসযোগ্য নয়। PHP-এর পূর্বের ভার্সনে, প্রপার্টি ডিক্লেরেশনের জন্য var কীওয়ার্ড উপলব্ধ ছিল। যদিও এখন এটি ডিপ্রিকেইটেড, তবে ব্যাকওয়ার্ড কম্প্যাটিবিলিটির জন্য এটি এখনও উপলব্ধ এবং এটি পাবলিক প্রপার্টি ডিক্লেরেশন হিসেবে বিবেচিত হয়।
PHP 7.4 প্রপার্টি ভেরিয়েবলের টাইপ ডিক্লেরেশন ইন্ট্রোডিউস করেছে।
উদাহরণ
<?php class myclass{ private string $name; private int $age; function setdata(string $x, int $y){ $this->name=$x; $this->age=$y; } } $obj=new myclass("Kiran",20); ?>