কম্পিউটার

পিএইচপি 8 এ ইউনিয়নের ধরন


PHP 8-এ Union Type ব্যবহার করে, আমরা একক টাইপ ব্যবহার না করে দুই বা ততোধিক প্রকারের মান ব্যবহার করতে পারি। একাধিক প্রকার নির্দিষ্ট করতে, উল্লম্ব লাইন (|) তাদের সাথে যোগ দিতে ব্যবহৃত হয়।

ইউনিয়ন টাইপ প্যারামিটার, রিটার্নের ধরন এবং বৈশিষ্ট্য সমর্থন করে।

সিনট্যাক্স

type1|type2|……|type_n

উদাহরণ 1:ইউনিয়নের ধরন

<?php
   class Number
   {
      private int | float $num;
      public function getNum():
      float | int
      {
         return $this->num
      }
      public function setNum(float | int):
      void
      {
         $this->num = $num;
      }
   }
?>

উদাহরণ 2:ইউনিয়ন টাইপ ব্যবহার করে পিএইচপি 8 প্রোগ্রাম

<?php
   class Number{
      private int|float $number;
      public function setNumber(int|float $number): void {
         $this->number = $number;
      }
      public function getNumber(): int|float {
         return $this->number;
      } #passing floats or integer values to the number object
   }
   $number = new Number();
   $number->setNumber(5);
   print_r($number->getNumber());
   $number->setNumber(11.54);
   print_r($number->getNumber());
?>

আউটপুট

511.54

ইউনিয়ন টাইপে বাতিলযোগ্য প্রকারগুলি

PHP 7.1-এ, প্রশ্ন চিহ্নের সাথে nullable type ব্যবহার করা হয় ?type . PHP 8-এ, আমরা nullable প্রকারগুলিকে type|null হিসাবে ঘোষণা করতে পারি . যেমন:float|int|null , কিন্তু আমরা এটিকে ?float|int হিসাবে ঘোষণা করতে পারি না .

খারাপযোগ্য টাইপ সিনট্যাক্স

type1|type2|null

আমাদের ?type1|type2 এর মত ঘোষণা করা উচিত নয় কারণ এটি একটি অস্পষ্ট ঘোষণা হবে।

  • কম্পাইল-টাইম ত্রুটি পরীক্ষা করা হচ্ছে − PHP-এ, টাইপ ডিক্লেয়ারেশনে ইউনিয়ন টাইপ ডুপ্লিকেট বা রিডান্ড্যান্ট টাইপ অনুমোদিত নয়। ক্লাস/ইন্টারফেস অটোলোড না করে কম্পাইল-টাইমে এই চেকটি ঘটবে।

  • ডুপ্লিকেট প্রকার অনুমোদিত নয় − আমরা PHP-তে int|int-এর মতো ডুপ্লিকেট ঘোষণা করতে পারি না এবং এছাড়াও int|?int অনুমোদিত নয় কারণ এটি একটি সিনট্যাক্স ত্রুটি ফিরিয়ে দেবে। "মারাত্মক ত্রুটি:ডুপ্লিকেট টাইপ... অন লাইনে অপ্রয়োজনীয়।"

  • অকার্যকর প্রকার অনুমোদিত নয়৷ − PHP 8-এ, ইউনিয়ন টাইপ void অন্য কোন প্রকারের সাথে একত্রিত করার অনুমতি নেই৷

উদাহরণ

Function foo(): void|null{}

PHP 8-এ মিথ্যা টাইপ

False type হল PHP 8-এ Union টাইপের একটি অংশ। রিটার্ন মান বা ত্রুটির অনুপস্থিতি দেখাতে আমরা রিটার্ন মান হিসেবে নাল ব্যবহার করি। উদাহরণস্বরূপ:ধরুন আমাদের একটি ক্লাস পদ্ধতি রয়েছে যা ছাত্র আইডি দ্বারা শিক্ষার্থীকে খুঁজে পায়। ছাত্র আইডি উপস্থিত না থাকলে, ছাত্র আইডি উপস্থিত ছিল না তা দেখানোর জন্য এটি নাল দিতে পারে। কিন্তু PHP false ব্যবহার করে যদি ছাত্র আইডি পাওয়া যায় না।

  • নাল টাইপের পরিবর্তে যেকোনো ব্যর্থতার জন্য False type ব্যবহার করা হয়।

  • আমরা একটি স্বতন্ত্র টাইপ হিসাবে মিথ্যা ব্যবহার করতে পারি না এবং বাতিলযোগ্য স্বতন্ত্র প্রকারগুলি অনুমোদিত নয়৷ তার মানে, আমরা মিথ্যা, মিথ্যা|নাল, এবং ?false ব্যবহার করতে পারি না।

  • প্যারামিটার, বৈশিষ্ট্য এবং রিটার্ন মানগুলির মতো প্রকারগুলি যেখানেই গ্রহণ করা হয় সেখানে আমরা মিথ্যা ব্যবহার করতে পারি।

  • এটির কোন সত্যিকারের আক্ষরিক প্রকার নেই, পরিবর্তে আমরা শুধুমাত্র বুলের প্রকার ব্যবহার করতে পারি।

উদাহরণ

<?php
   Class Student {
      public function find(int $id): User|false
      {
         // ...
      }
   }
?>

  1. পিএইচপি বুলিয়ান ডেটা টাইপ

  2. পিএইচপি ট্যাগ

  3. পিএইচপি টাইপ অপারেটর

  4. পিএইচপি পাই() ফাংশন