در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

ویژگی های جدید PHP 7

سلام. تا چند سال پیش از نسخه 5 زبان PHP استفاده می شد. ولی از سال 2015 نسخه 7 این زبان ارائه شد که نسبت به ورژن قبل خود از سرعت و کارایی بسیار بالاتری برخوردار است. در این مطلب چند ویژگی برنام نویسی که در نسخه 7 افزوده شده است را معرفی می کنیم.


مشخص کردن نوع داده‌ها


تا قبل از نسخه 7 امکان اینکه در PHP نوع ورودی توابع را تعریف کنیم وجود نداشت. مفسر PHP با توجه به مقداری که داخل متغیر ریخته می‌شد نوع داده را انتخاب می‌کرد. و وقتی که آن مقدار عوض می‌شد نوع داده نیز با توجه به داده جدید تغییر داده می‌شد. در نسخه 7 می‌توان نوع داده را در ورودی توابع و نوع بازگشتی توابع را مشخص نمود. انواع داده‌ای که در این زبان وجود دارد عبارتند از:

  • رشته‌ها (string)
  • عدد صحیح (int)
  • اعداد اعشاری (float)
  • مقادیر منطقی (bool)

البته باید دقت کرد که این تعیین نوع مقادیر فقط در توابع وجود دارد و در تعریف متغیرها این امکان وجود ندارد. برای مثال به کد زیر دقت کنید

function returnsum(float $x, int $y)
{
    return $x + $y;
}
echo returnsum(6, "8.3");
//output float(14)
echo "<br/>";
echo returnsum(4.1, "4.2");
//output float(8.3)

در کد بالا مقادیر خروجی تابع در کامنت آمده است. همانطور که در کد آمده است حتی اگر اعداد بین کوتیشن قرار گرفته باشند به عنوان عدد تفسیر و استفاده می شوند. اما اگر بین کوتیشن یک رشته وجود داشته باشد و عددی بین آن‌ها نباشد این کد خطا می دهد. حال اگر بخواهیم که مشخص کنیم که انواع داده‌ای را که انتخاب کرده‌ایم دقیقاً همان انواع باید استفاده شوند و در غیر این صورت برنامه خطا دهد باید یک خط کد به ابتدای برنامه اضافه کنیم. مانند کد زیر:

declare(strict_types=1);
function returnsum(float $x, int $y)
{
    return $x + $y;
}
echo returnsum(6, 2.5);
//Fatal error
echo "<br/>";
echo returnsum(4.1, "4.2");
// Fatal error

اضافه کردن خط اول در کد بالا باعث می‌شود که مقادیری را که برای ورودی y مشخص کرده‌ایم خطا بدهد. دلیل این خطا هم این است که در فراخوانی اول مقدار 2.5 به y داده شده است در حالی که نوع داده y از نوع عدد صحیح تعریف شده است و در فراخوانی دوم دلیل خطا این است که یک رشته به مقدار عدد صحیح داده شده است. پس دیدیم که اگر بخواهیم قید سخت‌گیری برای انواع داده داشته باشیم باید خط اول را ابتدای برنامه اضافه کنیم. همچنین برای تعیین نوع مقدار بازگشتی هم می‌توان به شکل زیر عمل کرد.

function add($a, $b): int {
    return $a + $b;
}
var_dump(add(1, 2.5));
// output int(3)

همانطور که در کد آورده شده است نوع خروجی را می‌توان هنگام تعریف تابع مشخص کرد. در تعیین نوع خروجی هم می‌توان از کد

declare(strict_types=1);

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


چک کردن مقادیر null


قبل از PHP7 برای این که مشخص شود که یک متغیر مقدار دارد یا خیر از تابع isset استفاده می شد. اما در این نسخه یک عملگر به شکل ?? تعریف شده است که می توان با استفاده از آن مشخص کرد که آیا یک متغیر تعریف شده است یا خیر و اگر تعریف نشده است مقدار پیشفرضی را برای آن مشخص نمود. نحوه استفاده از این عملگر مانند کد زیر است:

$username = $_GET['username'] ?? 'not define';

در کد بالا اگر مقدار username در متغیر get وجود داشته باشد همان مقدار در متغیر username ریخته می شود و در غیر این صورت مقدار not defined در داخل متغیر username قرار می گیرد. این کد معادل کد زیر است

$username = isset($_GET['username']) ? $_GET['username'] : 'not define';

دقت داشته باشید که عملگر ?? را می توان به صورت زنجیره ای و چندتایی نیز به کار برد.


عملگر spaceship


این عملگر برای مقایسه دو متغیر به کار می روند. نتیجه این عملگر همیشه یا 0 یا 1 و یا -1 است به این صورت که اگر متغیر اول از دومی بزرگتر باشد نتیجه 1 و اگر کوچکتر باشد -1 و اگر مساوی باشند نتیجه 0 خواهد بود. این عملگر بر روی انواع داده مختلف کار می کند نحوه کار کردن با این عملگر به شکل زیر است:

echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
 
// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

ثابت های آرایه ای


در php5 و قبل از آن ثابت های آرایه ای را فقط می توانستیم با استفاده از کلمه کلیدی const تعریف کنیم. در Php7 می توان ثابت های آرایه ای را با استفاده از کلمه کلیدی define نیز تعریف نمود. کد زیر یک مثال از تعریف ثابت های آرایه ای می باشد.

define('ANIMALS', [
    'dog',
    'cat',
    'bird'
]);

echo ANIMALS[1]; // outputs "cat"

کلاس های بی نام (anonymous)


در Php7 شما می توانید یک کلاس را بدون نام و هر جا که لازم داشتید تعریف کنید. برای مثال شاید لازم باشد که یک بار یک کلاس تعریف کنید و آن را در یک شی قرار دهید. در این وضعیت می توانید از کلاس های بی نام استفاده کنید. نحوه تعریف این کلاس ها به شکل زیر است:

$m=new class{
  public $sdf=54;
  public function add($a,$b){
      return $a+$b;
  }
};

echo $m->add(45,65);
// output 110


تابع intdiv


این تابع عمل تقسیم صحیح را انجام می دهد. به شکلی که در کد زیر مشاهده می کنید 10 بر 3 تقسیم می شود و نتیجه آن 3 برمیگردد و کاری به باقیمانده و مقدار اعشاری آن ندارد:

var_dump(intdiv(10, 3));

موارد دیگری نیز به این نسخه اضافه شده است که در مطالب دیگر معرفی خواهد شد.

با وب سایت tosinso همراه باشید.

نویسنده: مهدی عادلی فر

منبع: tosinso.com

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#دوره_آموزشی_php #امکانات_php_7 #آموزش_گام_به_گام_php #آموزش_برنامه_نویسی_php #آموزش_php
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....