পিএইচপিতে ডাইনামিকালি ভেরিয়েবলের নাম সেট করা যায়। একটা ভেরিয়েবলের মান আরেকটা ভেরিয়েবলের নাম হিসেবে ব্যবহার করা যায়। এটাই হচ্ছে পিএইচপিতে ভেরিয়েবল ভেরিয়েবল। দুটি ডলার সাইন দিয়ে এটা লেখা হয় যেমন $$x.
উদাহরন
1.<?php2.$x = 'CodesTrickZ';3.$codestrickz= 'Great Site';4.echo $$x;5.?>আউটপুট
Great Site
ব্যাখ্যা: প্রথমে $x = 'codestrickx'; নিয়েছি এরপর একটা নতুন ভেরিয়েবল নিয়েছি নাম $codestrickxএবং এর মান ইচ্ছেমত একটা দিয়ে দিলাম। এবার $$x এর অর্থ হল $codestrickxতাই echo $$x এর আসল রুপান্তরিত কোড হল echo $codestrickx. আর যেহেতু $codestrickxএর মান আগে সেট করেছি "Great Site" তাই আউটপুট এটাই এসেছে।
অনেক সময় এটাকে পরিষ্কার করে লেখার জন্য দ্বিতীয় বন্ধনী (curly braces) ব্যবহার করা হয়। তবে এটা ছাড়াও কাজ হবে। যেমন উপরের কোডটিই আমি ইচ্ছে করলে নিচের মত লিখতে পারি। আউটপুট একই আসবে।
1.<?php2.$x = 'codestrickz';3.$codestric= 'Great Site';4.echo ${$x};5.?>আউটপুট
Great Site
সুতরাং $$x আর ${$x} একই জিনিস।
কখন ব্যবহার করা হয়
এটা ব্যবহার করা উচিৎ নয়। একদম প্রয়োজন ছাড়া ব্যবহার না করাই ভাল। নিরাপত্তা ইস্যু আছে। নিচে একটা উদাহরন দিচ্ছি যেখানে ভেরিয়েবল ভেরিয়েবল ব্যবহার হয়েছে।
01.<?php02.$js = "assets/js/site.js";03.$js1 = "assets/js/js1.js";04.$js2 = "assets/js/comet.js";05.$assets_array = array('js','js1','js2');06.foreach($assets_array as $link){07.echo '<script src="'.$$link.'" type="text/javascript"></script>';08.}09.?>সাধারনত টেমপ্লেটিং ইত্যাদির ক্ষেত্রে এভাবে ডাইনামিকালি লোডিং এর জন্য এটা ব্যবহার হয়। এছাড়াও আরও কিছু ক্ষেত্র আছে।
পিএইচপি ম্যানুয়ালে আরেকটা উদাহরন আছে। এটা দেখলে আরও পরিষ্কার হবে। কোন ব্যাখ্যা লাগবেনা শুধু কোডটা দেখেন তাহলেই হবে।
01.<?php02.$Bar = "a";03.$Foo = "Bar";04.$World = "Foo";05.$Hello = "World";06.$a = "Hello";07.echo $a.'<br/>'; //Returns Hello08.echo $$a.'<br/>'; //Returns World09.echo $$$a.'<br/>'; //Returns Foo10.echo $$$$a.'<br/>'; //Returns Bar11.echo $$$$$a.'<br/>'; //Returns a12.echo $$$$$$a.'<br/>'; //Returns Hello13.echo $$$$$$$a; //Returns World14.?>

