ট্র্যাক
/
PHP
PHP
/
অনুশীলনী
/
শহরের অফিস
শহরের অফিস

শহরের অফিস

লার্নিং অনুশীলনী

ভূমিকা

টাইপ ডিক্লারেশন

PHP-তে টাইপ ডিক্লারেশন ফাংশনের আর্গুমেন্ট, রিটার্ন ভ্যালু এবং ক্লাস প্রোপার্টির জন্য রানটাইমে টাইপ অ্যাসারশন প্রদান করে। ফাংশনে void রিটার্ন টাইপ যোগ করা যায়, যা বোঝায় যে ফাংশন থেকে কোনো মান রিটার্ন হয় না। ডিক্লেয়ার করা টাইপগুলো রানটাইম অ্যাসারশন হিসেবেও কাজ করে যে, ফাংশনগুলো যুক্তিসঙ্গত টাইপের একটি রেসপন্স রিটার্ন করছে।

<?php

class Driver
{
    private int $serial_number;

    public function setSerialNumber(int $number): void
    {
        $this->serial_number = $number;
    }

    public function getSerialNumber(): int
    {
        return $this->serial_number; 
    }
}

$driver = new Driver();
$driver->setSerialNumber("Version 1b"); // This will throw a TypeError

টাইপ ইউনিয়ন

যদি একটি ফাংশন আর্গুমেন্ট, রিটার্ন ভ্যালু বা ক্লাস প্রোপার্টি একাধিক টাইপের হতে পারে, তাহলে একটি টাইপ ইউনিয়ন ডিক্লেয়ার করা যায়।

<?php

class IdentityCard
{
    private int|null $id = null;

    public function assign(int|float $id): void
    {
        $this->id = intval($id);
    }
}

$card = new IdentityCard();
$card->assign(5.0);

মিক্সড টাইপ

কোড নিয়ে কাজ করার সময় আমরা অনেক সময় টাইপ নির্দিষ্ট করতে পারি না। PHP 8.0 থেকে mixed নামে একটি এস্কেপ-হ্যাচ টাইপ দেওয়া হয়েছে। mixed হলো object|resource|array|string|float|int|bool|null-এর একটি টাইপ ইউনিয়নের সমতুল্য।

নির্দেশনা

আপনি কিছুদিন ধরে সিটি অফিসে কাজ করছেন, এবং আপনার দৈনন্দিন কাজের গতি বাড়ানোর জন্য কিছু টুল তৈরি করেছেন, যেমন ফর্ম পূরণ করা।

এখন আপনার সাথে একজন নতুন সহকর্মী যোগ দিচ্ছেন, আর আপনি বুঝতে পারলেন যে আপনার টুলগুলো হয়তো নিজে থেকেই বোঝা যাবে না। আপনার অফিসে অনেক অদ্ভুত রীতি আছে, যেমন সবসময় বড় হাতের অক্ষরে ফর্ম পূরণ করা আর কোনো ফিল্ড খালি না রাখা।

প্রথম পদক্ষেপ হিসেবে আপনি PHP টাইপ ডিক্লারেশন যোগ করার সিদ্ধান্ত নিলেন, যাতে আপনার নতুন সহকর্মী সহজেই কাজে নেমে আপনার টুলগুলো ব্যবহার শুরু করতে পারেন।

1. Address ক্লাসের টাইপ ডিক্লেয়ার করুন

Address ক্লাসে ডিক্লেয়ার করা প্রতিটি প্রপার্টিতে প্রপার্টি টাইপ ডিক্লারেশন যোগ করুন। প্রতিটি ক্লাস প্রপার্টি স্ট্রিং হিসেবে ডিক্লেয়ার করা উচিত।

2. খালি মান দিয়ে ফর্ম পূরণের টাইপ ডিক্লেয়ার করুন

Form ক্লাসের blanks মেথডে একটি প্যারামিটার টাইপ ডিক্লারেশন এবং একটি রিটার্ন টাইপ ডিক্লারেশন যোগ করুন। মেথডটি একটি ইন্টিজার দৈর্ঘ্য নেবে এবং খালি লাইনের একটি স্ট্রিং রূপ রিটার্ন করবে।

3. একটি মানকে আলাদা অক্ষরে ভাগ করার সময় টাইপ ডিক্লেয়ার করুন

Form ক্লাসের letters মেথডে একটি প্যারামিটার টাইপ ডিক্লারেশন এবং একটি রিটার্ন টাইপ ডিক্লারেশন যোগ করুন। মেথডটি শব্দ বোঝানো একটি স্ট্রিং নেবে এবং অক্ষরের একটি অ্যারে রিটার্ন করবে।

4. একটি মান একটি ফর্মে ফিট হবে কি না তা যাচাই করার সময় টাইপ ডিক্লেয়ার করুন

Form ক্লাসের checkLength মেথডে প্যারামিটার টাইপ ডিক্লারেশন এবং একটি রিটার্ন টাইপ ডিক্লারেশন যোগ করুন। মেথডটি একটি শব্দ (স্ট্রিং) এবং একটি সর্বোচ্চ দৈর্ঘ্য (ইন্টিজার) নেবে এবং একটি ট্রু বা ফলস মান রিটার্ন করবে।

5. ফর্মে একটি ঠিকানা ফরম্যাট করার সময় টাইপ ডিক্লেয়ার করুন

Form ক্লাসের formatAddress মেথডে একটি প্যারামিটার টাইপ ডিক্লারেশন, যেখানে আগে আপডেট করা Address ক্লাস ব্যবহার করবেন, এবং একটি রিটার্ন টাইপ ডিক্লারেশন যোগ করুন। মেথডটি একটি Address নেবে এবং একটি ফরম্যাট করা স্ট্রিং রিটার্ন করবে।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
PHP Exercism

শহরের অফিস শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, PHP ট্র্যাকের 11টি কনসেপ্ট122টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।