ল্যাঙ্গুয়েজ কনস্ট্রাক্ট(Language constructs)
ল্যাঙ্গুয়েজ কনস্ট্রাক্ট এবং ফাংশনের মধ্যে পার্থক্য হল ল্যাঙ্গুয়েজ কনস্ট্রাক্ট গুলো অপরিবর্তিত রূপে ব্যবহৃত হয়।
ল্যাঙ্গুয়েজ কনস্ট্রাক্ট গুলো পিএইচপি পার্সার সরাসরি বুঝতে পারে এবং এদেরকে বিভক্ত করার প্রয়োজন হয় না। অপরপক্ষে ফাংশনগুলো পার্স করার পূর্বে তাদেরকে এক সেট ল্যাঙ্গুয়েজ কনস্ট্রাক্ট এ বিভক্ত করতে হয়।
ল্যাঙ্গুয়েজ কনস্ট্রাক্ট গুলো ফাংশন এর মত নয় তাই এদেরকে callback ফাংশন হিসেবে ব্যবহার করা যায় না। তাই প্যারামিটার এবং প্যারেন্থেসিস এর ক্ষেত্রে এরা ফাংশনের থেকে ভিন্ন পদ্ধতি অনুসরণ করে।
যেমন echo এর ক্ষেত্রে প্যারেন্থেসিস প্রয়োজন হয় না। যখন আপনি একে একাধিক আর্গুমেন্ট সহ কল করবেন তখনও প্যারেন্থেসিস ব্যবহার করতে পারবেন না।
<?php
// one parameter, no brackets
echo "hello\r\n";
// two parameters, brackets (syntax error)
//echo('hello', 'world');
// two parameters, no brackets
echo 'hello', 'world';
এছাড়া echo কোন ভ্যালু রিটার্ন করবে না, যেখানে প্রতিটি ফাংশন সর্বদাই ভ্যালু রিটার্ন করে।
নিচে কিছু ল্যাঙ্গুয়েজ কনস্ট্রাক্ট এর উদাহরণ দেয়া হলো:
কনস্ট্রাক্ট | ব্যবহার |
assert | এটি কন্ডিশন চেক করার জন্য একটি debug কমান্ড এবং কন্ডিশন সত্য না হলে কিছু কাজ করবে। |
echo | একটি ভ্যালু আউটপুটে দেখাতে ব্যবহৃত হয়। |
একটি ভ্যালু আউটপুটে দেখাতে ব্যবহৃত হয়। | |
exit | অপশনালি একটি ভ্যালু আউটপুটে দেখিয়ে প্রোগ্রাম টার্মিনেট(শেষ) করতে ব্যবহৃত হয়। |
die | এটি exit এর একটি উপনাম। |
return | একটি ফাংশন টার্মিনেট করে এবং প্রোগ্রামের কন্ট্রোলকে calling ফাংশন এর কাছে পাঠিয়ে দেয়। যদি গ্লোবাল scope এ কল করা হয় তবে প্রোগ্রামটি টার্মিনেট করে। |
include | একটি ফাইলকে include করে। ফাইলটি খুঁজে না পেলে বা রিড করতে না পারলে একটি ওয়ার্নিং দেখাবে। |
include_once | include_once ব্যবহার করলে ফাইলটি শুধুমাত্র একবারই include হবে। |
require | এটিও একটি ফাইলকে include করে। কিন্তু যদি ফাইলটি খুঁজে না পায় তবে একটি Fatal এরর দেখাবে। |
require_once | এটিও একটি ফাইলকে শুধুমাত্র একবার include করে। কিন্তু যদি ফাইলটি খুঁজে না পায় তবে একটি Fatal এরর দেখাবে। |
eval | আর্গুমেন্টকে পিএইচপি আর্গুমেন্ট হিসেবে ইভ্যালুয়েট করতে ব্যবহৃত হয়। এই ফাংশনটির না ব্যবহার করাই ভালো। |
empty | ভেরিয়েবলটি খালি কি না তার ওপর ভিত্তি করে একটি Boolean ভ্যালু রিটার্ন করবে। Empty ভেরিয়েবলের মধ্যে রয়েছে null ভেরিয়েবল, এমটি string, এলিমেন্ট বিহীন array, নিউমেরিক ভ্যালু 0 এবং string ভ্যালু 0, Boolean ভ্যালু false. |
isset | যদি ভেরিয়েবলটি থাকে তবে true রিটার্ন করবে নতুবা false রিটার্ন করবে। |
unset | একটি ভেরিয়েবল clear করে। |
list | একটি array থেকে একই সাথে অনেকগুলো ভেরিয়েবলে ভ্যালু এসাইন করে। |
print এবং echo এর মধ্যে সামান্য একটু পার্থক্য আছে। echo কনস্ট্রাক কোন ভ্যালু রিটার্ন করে না তাই একে এক্সপ্রেশনের ভেতরে ব্যবহার করা যায় না। কিন্তু print কনস্ট্রাক্ট ভ্যালু রিটার্ন করে।
সর্বদা include_once এবং require_once ব্যবহার না করাই ভালো কারণ এগুলো পারফরম্যান্সে প্রভাব ফেলে। পিএইচপি যে ফাইলগুলো include করা হয়েছে সেগুলোর একটি ট্র্যাক রেখে দেয়। এই ফাংশনগুলোর জন্য মেমোরি প্রয়োজন হয় তাই শুধুমাত্র প্রয়োজনেই এগুলো ব্যবহার করা উচিত, include বা require এর বিকল্প হিসেবে নয়।