পলাশ মাহমুদ ভাইয়ের ওয়েবসাইট থেকে php প্র্যাকটিস করার সময় আউটপুটগুলো মিলছিল না। উনার কোডগুলোই নিজের হাতে লিখছিলাম। আউটপুট ভিন্ন।
কি ব্যাপার? সবজান্তা চ্যাটজিপিটিকে দুটি কোড দিয়ে জিজ্ঞেস করলাম। সে বিজ্ঞের মতো উত্তর দিলো, তুমি সিঙ্গেল কোট দিয়েছো। আর ওয়েবসাইটে ডাবল কোট দিয়েছে।
JavaScript-এতো দুটো কোটই একই কাজ করে। তাহলে php-তে সমস্যা কি?
সমস্যা আছে। PHP-তে “” (ডাবল কোট), ‘’ (সিঙ্গেল কোট) এবং (ব্যাকটিক) এর আলাদা ব্যবহার ও কাজ আছে। চলুন সেগুলো একনজরে একটু দেখে আসি।
ডাবল কোট (" ")
ভেরিয়েবল ইন্টারপোলেশন এবং এস্কেপ সিকোয়েন্স সাপোর্ট করে। এটি,
→ স্ট্রিং-এর মধ্যে ভেরিয়েবল ব্যবহার করা যায়।
→ এস্কেপ সিকোয়েন্স (\n, \t ইত্যাদি) কাজ করে।
যেমন:
$name = "Atik";
echo "Hello, $name!"; // আউটপুট: Hello, Atik!
echo "নতুন লাইন:\n"; // আউটপুট: নতুন লাইন: (নতুন লাইন হবে)
সিঙ্গেল কোট (‘’)
সবকিছু টেক্সট হিসেবে নেয়। ভেরিয়েবল ইন্টারপোলেশন এবং এস্কেপ সিকোয়েন্স কাজ করে না, শুধু \ এবং ' ছাড়া। এটি,
→ যদি স্ট্রিং-এর মধ্যে কোনো ভেরিয়েবল না থাকে, তবে এটি ভালো পারফরম্যান্স দেয়।
→ এস্কেপ সিকোয়েন্স (\n, \t) কাজ করে না।
যেমন,
$name = 'Atik';
echo 'Hello, $name!'; // আউটপুট: Hello, $name! (ভেরিয়েবল প্রসেস হবে না)
echo 'নতুন লাইন:\n'; // আউটপুট: নতুন লাইন:\n (নতুন লাইন হবে না)
ব্যাকটিক (
)
সিস্টেম শেল কমান্ড চালানোর জন্য ব্যবহৃত হয় (যেমন shell_exec())। ব্যাকটিক ব্যবহার করে আপনি সরাসরি অপারেটিং সিস্টেমের শেল কমান্ড চালানো যায়।
যেমন,
$output = `ls`; // Linux/macOS-এ বর্তমান ডিরেক্টরির ফাইল লিস্ট দেখাবে
echo $output;
→ এটি শুধুমাত্র Unix-like সিস্টেমে (Linux/macOS) ভালোভাবে কাজ করে। Windows-এ সবসময় কাজ নাও করতে পারে।
→ বিকল্প হিসেবে shell_exec() ব্যবহার করা নিরাপদ।
কোনটি কখন ব্যবহার করবো?
→ ডাবল কোট (“”) ➝ যখন স্ট্রিং-এর মধ্যে ভেরিয়েবল ব্যবহার করতে চাই বা \n, \t ইত্যাদি এস্কেপ সিকোয়েন্স লাগবে।
→ সিঙ্গেল কোট (‘’) ➝ যখন স্ট্রিং-এর মধ্যে শুধুমাত্র টেক্সট থাকবে এবং কোনো প্রসেসিং লাগবে না (পারফরম্যান্স ভালো হয়)।
→ ব্যাকটিক ( ) ➝ যখন শেল কমান্ড চালাতে চান (শুধুমাত্র প্রয়োজন হলে ব্যবহার করব)।
এইতো। আপাতত এতটুকুই। আমরা কনফিউশন ছিলো। ক্লিয়ার হয়েছে। আশাকরি আপনাদেরও হবে।