পরিচয়
declare এর সিনট্যাক্স পিএইচপি-তে স্টেটমেন্ট অন্যান্য প্রবাহ নিয়ন্ত্রণ কাঠামোর মতো যেমন while, for, foreach ইত্যাদি।
সিনট্যাক্স
declare (directive) { statement1; statement2; . . }
ব্লকের আচরণ নির্দেশের ধরন দ্বারা সংজ্ঞায়িত করা হয়। ঘোষণা বিবৃতিতে তিন ধরনের নির্দেশ প্রদান করা যেতে পারে - টিকস , এনকোডিং এবং কঠোর_টাইপস নির্দেশিকা।
টিক নির্দেশিকা
একটি টিক হল বিশেষ ইভেন্টের একটি নাম যা স্ক্রিপ্টে নির্দিষ্ট সংখ্যক বিবৃতি কার্যকর করা হয়। এই বিবৃতিগুলি PHP-এর অভ্যন্তরীণ এবং আপনার স্ক্রিপ্টের বিবৃতিগুলির সমান (শর্তসাপেক্ষ এবং আর্গুমেন্ট এক্সপ্রেশন ব্যতীত। যে কোনও ফাংশন register_tick_function দ্বারা টিক ইভেন্টের সাথে যুক্ত হতে পারে . ডিক্লেয়ার ডিরেক্টিভে নির্দিষ্ট সংখ্যক টিক দেওয়ার পরে নিবন্ধিত ফাংশনটি কার্যকর করা হবে।
নিম্নলিখিত উদাহরণে, myfunction() প্রতিবার নির্বাহ করা হয় যখন declare construct-এর লুপ 5টি পুনরাবৃত্তি সম্পন্ন করে।
উদাহরণ
<?php function myfunction(){ echo "Hello World\n"; } register_tick_function("myfunction"); declare (ticks=5){ for ($i=1; $i<=10; $i++){ echo $i."\n"; } } ?>
আউটপুট
উপরের স্ক্রিপ্ট কমান্ড লাইন থেকে চালানো হলে এটি নিম্নলিখিত ফলাফল তৈরি করবে −
1 2 3 4 5 Hello World 6 7 8 9 10 Hello World
PHP-এও unregister_tick_function() আছে টিক ইভেন্টের সাথে একটি ফাংশনের অ্যাসোসিয়েশন অপসারণ করতে
কঠোর_টাইপ নির্দেশিকা
পিএইচপি একটি দুর্বলভাবে টাইপ করা ভাষা, একটি নির্দিষ্ট অপারেশন সম্পাদনের জন্য উপযুক্তভাবে একটি ডেটা টাইপ রূপান্তর করার চেষ্টা করে। যদি দুটি পূর্ণসংখ্যা আর্গুমেন্ট সহ একটি ফাংশন থাকে এবং তাদের সংযোজন ফেরত দেয় এবং যেটি আর্গুমেন্ট কল করার সময় ফ্লোট হিসাবে দেওয়া হয়, পিএইচপি পার্সার স্বয়ংক্রিয়ভাবে ফ্লোটকে পূর্ণসংখ্যাতে রূপান্তর করবে। এই জবরদস্তি কাঙ্ক্ষিত না হলে, আমরা strict_types=1 নির্দিষ্ট করতে পারি ডিক্লেয়ার কনস্ট্রাক্টে
উদাহরণ
<?php //strict_types is 0 by default function myfunction(int $x, int $y){ return $x+$y; } echo "total=" . myfunction(1.99, 2.99); ?>
নিম্নোক্ত ফলাফল দিতে −
যোগ করার জন্য ফ্লোট প্যারামিটারগুলিকে পূর্ণসংখ্যাতে জোর করা হয়আউটপুট
total=3
যাইহোক, strict_types=1 দিয়ে delcare construct ব্যবহার করা জবরদস্তি প্রতিরোধ করে
উদাহরণ
<?php declare (strict_types=1); function myfunction(int $x, int $y){ return $x+$y; } echo "total=" . myfunction(1.99, 2.99); ?>
আউটপুট
এটি নিম্নলিখিত ত্রুটি তৈরি করবে -
Fatal error: Uncaught TypeError: Argument 1 passed to myfunction() must be of the type integer, float given, called in line 7 and defined in C:\xampp\php\testscript.php:3
এনকোডিং নির্দেশিকা
ডিক্লেয়ার কনস্ট্রাক্টে এনকোডিং নির্দেশিকা রয়েছে যার সাহায্যে স্ক্রিপ্টের এনকোডিং স্কিম নির্দিষ্ট করা সম্ভব
উদাহরণ
<?php declare(encoding='ISO-8859-1'); echo "This Script uses ISO-8859-1 encoding scheme"; ?>