ল্যাঙ্গুয়েজ কনস্ট্রাক্ট(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

একটি ভ্যালু আউটপুটে দেখাতে ব্যবহৃত হয়।

print

একটি ভ্যালু আউটপুটে দেখাতে ব্যবহৃত হয়।

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 এর বিকল্প হিসেবে নয়।