PHP یک زبان تایپ آزاد است(PHP is a Loosely Typed Language)

در مثال بالا، توجه کنید که لازم نیست به PHP بگوییم متغیر کدام نوع داده است.


PHP بسته به مقدار آن، به طور خودکار یک نوع داده را به متغیر مرتبط می کند.
از آنجایی که انواع داده ها به معنای دقیق تنظیم نشده اند، می توانید کارهایی مانند این را انجام دهید
اضافه کردن یک رشته به یک عدد صحیح بدون ایجاد خطا.


در PHP 7، اعلان‌های نوع اضافه شدند. این به ما گزینه ای برای تعیین می دهد
نوع داده مورد انتظار هنگام اعلان یک تابع و با افزودن سخت
اعلامیه، یک "کشنده" پرتاب می کند
اگر نوع داده با هم مطابقت نداشته باشد، خطا می‌کند.


در مثال زیر سعی می کنیم هم یک عدد و هم یک رشته را به آن ارسال کنیم
بدون استفاده از strict:

عمل کنید

مثال



<?php
function addNumbers(int $a, int $b) {
    return $a
+ $b;
}

echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is
changed to int(5), and it will return 10
?>




برای تعیین سخت باید declare(strict_types=1); را تنظیم کنیم.
این باید در اولین خط فایل PHP باشد.



در مثال زیر سعی می کنیم هم یک عدد و هم یک رشته را به آن ارسال کنیم
تابع، اما در اینجا سخت را اضافه کرده ایم
اعلامیه:



مثال



<?php declare(strict_types=1); // strict requirement

function
addNumbers(int $a, int $b) {
    return $a + $b;
}
echo addNumbers(5, "5
days");
// since strict is enabled and "5 days" is not an integer, an
error will be thrown
?>





اعلامیه سخت موارد را مجبور می‌کند به روش مورد نظر استفاده شوند.