সংজ্ঞা এবং ব্যবহার
PHP-তে, রিসোর্স (Resource) একটি বিশেষ ডেটা টাইপ যা কোনো বাহ্যিক রিসোর্সকে রেফার করে। একটি রিসোর্স ভেরিয়েবল ডেটার বাহ্যিক সোর্স—যেমন স্ট্রিম, ফাইল, ডেটাবেস ইত্যাদি—এর রেফারেন্স হিসেবে কাজ করে। PHP এই রিসোর্সগুলো তৈরির জন্য প্রাসঙ্গিক ফাংশন ব্যবহার করে। উদাহরণস্বরূপ, fopen() ফাংশন একটি ডিস্ক ফাইল খোলে এবং এর রেফারেন্স একটি রিসোর্স ভেরিয়েবলে সংরক্ষণ করে।
PHP-এর জেন্ড ইঞ্জিন (Zend Engine) রেফারেন্স কাউন্টিং (reference counting) সিস্টেম ব্যবহার করে। ফলে, শূন্য রেফারেন্স কাউন্ট বিশিষ্ট রিসোর্স গারবেজ কলেক্টর দ্বারা স্বয়ংক্রিয়ভাবে ধ্বংস হয়। তাই রিসোর্স ডেটা টাইপের মেমরি ম্যানুয়ালি ফ্রি করার প্রয়োজন নেই।
PHP স্ক্রিপ্টে বিভিন্ন ধরণের রিসোর্স হ্যান্ডেল করা যায়, যাদের জন্য সংশ্লিষ্ট ফাংশন রয়েছে। নিচের টেবিলে একটি নির্বাচিত তালিকা দেওয়া হলো—
| রিসোর্স টাইপের নাম | তৈরিকার ফাংশন | ধ্বংস করার ফাংশন | বিবরণ |
| bzip2 | bzopen() | bzclose() | Bzip2 ফাইল |
| curl | curl_init() | curl_close() | Curl সেশন |
| ftp | ftp_connect() | ftp_close() | FTP স্ট্রিম |
| mssql link | mssql_connect() | mssql_close() | Microsoft SQL Server ডেটাবেসের লিংক |
| mysql link | mysql_connect() | mysql_close() | MySQL ডেটাবেসের লিংক |
| mysql result | mysql_db_query() | mysql_free_result() | MySQL রেজাল্ট |
| oci8 connection | oci_connect() | oci_close() | Oracle ডেটাবেসের কানেকশন |
| ODBC link | odbc_connect() | odbc_close() | ODBC ডেটাবেসের লিংক |
| pdf document | pdf_new() | pdf_close() | PDF ডকুমেন্ট |
| stream | opendir() | closedir() | ডিরেক্টরি হ্যান্ডেল |
| stream | fopen(), tmpfile() | fclose() | ফাইল হ্যান্ডেল |
| socket | fclose() | সকেট হ্যান্ডেল | |
| xml | xml_parser_create() | xml_parser_free() | XML পার্সার |
| zlib | gzopen() | gzclose() | gz-কমপ্রেসড ফাইল |
| zlib.deflate | deflate_init() | None() | ইনক্রিমেন্টাল deflate কনটেক্সট |
| zlib.inflate | inflate_init() | None() | ইনক্রিমেন্টাল inflate কনটেক্সট |
এই প্রেক্ষাপটে, PHP-তে get_resource_type() ফাংশন রয়েছে যা একটি ভেরিয়েবলের রিসোর্স টাইপ রিটার্ন করে।
সিনট্যাক্স
get_resource_type ( resource $handle ) : string
এখানে $handle হলো সে রিসোর্স ভেরিয়েবল যার টাইপ জানতে চাইছেন। এই ফাংশন রিসোর্স টাইপের সাথে মিল রেখে একটি স্ট্রিং রিটার্ন করে।
নিচের উদাহরণে একটি ডিস্ক ফাইলের রিসোর্স টাইপ দেখানো হয়েছে—
উদাহরণ
<?php $fp=fopen("test.txt","w"); var_dump($fp); ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
resource(5) of type (stream)
পরবর্তী উদাহরণে get_resource_type() ফাংশন ব্যবহার করা হয়েছে—
উদাহরণ
<?php $fp = fopen("test.txt", "w"); echo get_resource_type($fp) . "\n"; ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
stream