ভূমিকা
PHP-এ, ভেরিয়েবল নাম ডাইনামিকলি সেট করা সম্ভব। এমন একটি ভেরিয়েবল একটি এক্সিস্টিং ভেরিয়েবলের মানকে নাম হিসেবে ব্যবহার করে। একটি ভেরিয়েবল ভেরিয়েবল দুইটি $ সাইন প্রিফিক্স হিসেবে ডিফাইন করা হয়।
উদাহরণ
<?php $var1 = "xyz"; // নরমাল ভেরিয়েবল $$var1 = "abcd"; // ভেরিয়েবল ভেরিয়েবল echo $var1 . "\n"; echo $$var1 . "\n"; echo "{$$var1} $xyz"; ?>আউটপুট
এই স্ক্রিপ্ট নিচের আউটপুট দেবে—
xyz abcd abcd abcd
নোট করুন, $$var1-এর মান $xyz-এর সমান, xyz হলো $var1-এর মান।
নরমাল ভেরিয়েবলের न्यুমেরিক মান ভেরিয়েবল ভেরিয়েবল হিসেবে ব্যবহার করা যায় না।
উদাহরণ
<?php $var1 = 100; // নরমাল ভেরিয়েবল $$var1 = 200; // ভেরিয়েবল ভেরিয়েবল echo $var1 . "\n"; echo $$var1 . "\n"; echo $100; ?>
আউটপুট
যখন এই স্ক্রিপ্ট এক্সিকিউট করা হয়, নিচের ফলাফল দেখাবে—
PHP Parse error: syntax error, unexpected '100' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$' line 6একটি অ্যারে সাবস্ক্রিপ্টের মাধ্যমে ভেরিয়েবল ভেরিয়েবল ডিফাইন করাও সম্ভব। নিচের উদাহরণে, একটি নরমাল অ্যারের ০ নম্বর এলিমেন্ট ব্যবহার করে একটি ভেরিয়েবল ভেরিয়েবল ডিফাইন করা হয়েছে।
উদাহরণ
<?php $var1 = array("aa", "bb"); // নরমাল ভেরিয়েবল ${$var1[0]} = 10; // অ্যারে এলিমেন্ট দিয়ে ভেরিয়েবল ভেরিয়েবল echo $var1[0] . "\n"; echo $aa . "\n"; echo ${$var1[0]} . "\n"; ?>আউটপুট
এটি নিচের ফলাফল দেবে—
aa 10 10
ক্লাস প্রপার্টিগুলোও ভেরিয়েবল প্রপার্টি নাম দিয়ে অ্যাক্সেসযোগ্য। এই ফিচারটি উপযোগী যখন একটি প্রপার্টি নাম একটি অ্যারে দিয়ে তৈরি হয়।
উদাহরণ
<?php class branches { var $u = "Architecture"; var $ugCourses = array("CSE", "MECH", "CIVIL"); } $obj = new branches(); $courses = "ugCourses"; echo $obj->{$courses[0]} . "\n"; echo $obj->{$courses}[0] . "\n"; ?>আউটপুট
এটি নিচের ফলাফল দেবে—
Architecture CSE