20 ویژگی جدید PHP که در سال 2023 باید آن ها را بدانید

20 New PHP Features You Must Know in 2023

19 شهریور 1402
20 new php feature in 2023

PHP همیشه در حال پیشرفت است و مهم است که با آخرین ویژگی ها و پیشرفت های آن به روز بمانید. این مقاله 20 ویژگی PHP را که تا سال 2023 باید بدانید، معرفی می کند که هر کدام با یک مثال کد نشان داده شده است.

  1. ()str_contains:

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

$sentence = "The quick brown  jumps over the lazy .";
$word = "";
if (str_contains($sentence, $word)) {
echo "The sentence contains the word .";
}

  1. ()str_starts_with:

بررسی می کند که آیا یک رشته با یک زیر رشته مشخص شروع می شود یا خیر.

$sentence = " Launching into space!";
if (str_starts_with($sentence, "")) {
echo "The sentence starts with a rocket emoji!";
}

  1. ()str_ends_with:

بررسی می کند که آیا یک رشته با یک زیر رشته مشخص به پایان می رسد.

$sentence = "It's a beautiful day! ";
if (str_ends_with($sentence, "")) {
echo "The sentence ends with a sun emoji!";
}

  1. ()get_debug_type:

نوع متغیر را دریافت می کند.

$num = 42;
echo get_debug_type($num); // "integer"

  1. ()get_resource_id:

آیدی یکتا و منحصر به فرد داده را برمی گرداند.

$file = fopen('test.txt', 'r');
echo get_resource_id($file); // e.g., "7"

  1. ()fdiv:

تابعی برای تقسیم که از تقسیم بر صفر پشتیبانی نمی کند.

$result = fdiv(10, 0); // INF

  1. ()preg_last_error_msg:

یک پیام قابل خواندن برای انسان و آخرین خطای اجرای PCRE regex را برمی گرداند.

preg_match('/(/', '');
echo preg_last_error_msg(); // "missing )"

  1. ()array_key_first:

اولین کلید یک آرایه را واکشی می کند.

$array = [''=>'Apple', ''=>'Orange', ''=>'Grape'];
echo array_key_first($array); // ""

  1. ()array_key_last:

آخرین کلید یک آرایه را واکشی می کند.

$array = [''=>'Apple', ''=>'Orange', ''=>'Grape'];
echo array_key_last($array); // ""

  1. ()ErrorException::getSeverity:

اهمیت و شدت خطا را دریافت می کند.

try {
trigger_error("Custom error", E_USER_WARNING);
} catch (ErrorException $e) {
echo $e->getSeverity(); // 512
}

  1. توابع فیلتر:

PHP 8 چندین تابع فیلتر جدید را معرفی کرده است. در اینجا مثالی برای استفاده از filter_var با FILTER_VALIDATE_BOOL آورده شده است:

var_dump(filter_var('yes', FILTER_VALIDATE_BOOL)); // bool(true)

  1. کلاس WeakMap:

یک کلاس جدید که ارجاعاتی به اشیا دارد، که مانع از جمع آوری زباله برای اشیا نمی شود.

$weakmap = new WeakMap();
$obj = new stdClass();
$weakmap[$obj] = 'Hello, world!';

  1. مقدار اشیا:

PHP ۸ ارتقای ویژگی Constructor (Constructor Property Promotion) را معرفی کرده است که یک سینتکس جدید برای ساخت مقادیر اشیا است.

class Money {
public function __construct(
public int $amount,
public string $currency
) {}
}

$tenDollars = new Money(10, 'USD');

  1. عبارت Match:

Match یک عبارت مانند switch است.

echo match (1) {
0 => '',
1 => '',
default => '',
};

  1. عملگر Nullsafe:

این عملگر جدید (?->) امکان بررسی تهی بودن هنگام دسترسی به ویژگی ها یا متدها را فراهم می کند.

class User {
public function getAddress(): ?Address {
// returns Address or null
}
}

$user = new User();
$country = $user?->getAddress()?->country; // no error if getAddress() returns null

  1. آرگومان های نامگذاری شده:

این ویژگی به شما امکان می دهد با تعیین نام مقدار، مقادیر را به یک تابع بفرستید.

new Money(amount: 10, currency: 'USD');

  1. اتربیوت ها:

همچنین به عنوان حاشیه نویسی در سایر زبان های برنامه نویسی شناخته می شود.

#[Attribute]
class ExampleAttribute {}

#[ExampleAttribute]
class ExampleClass {}

  1. ارتقای ویژگی Constructor:

این ویژگی امکان ترکیب ویژگی های کلاس و  Constructor را در یک تعریف واحد امکان پذیر می کند.

class Money {
public function __construct(
public int $amount,
public string $currency
) {}
}

  1. تایپ های Union:

این ویژگی امکان تعریف type را می‌دهد که می‌توانند یکی از چندین نوع را داشته باشند.

function print_id(int|string $id): void {
echo 'ID: ' . $id;
}

  1. کامپایل Just In Time (JIT):

PHP 8 دو موتور کامپایل JIT Tracing JIT و Function JIT را معرفی می کند.

توجه: کامپایل JIT قابلیتی نیست که بتوان آن را به طور مستقیم با یک قطعه کد نشان داد، اما یک پیشرفت مهم در PHP 8 است که می‌تواند عملکرد قابل توجهی را بهبود بخشد.

در نتیجه، PHP یک زبان دائما در حال تکامل با بسیاری از ویژگی‌ها و پیشرفت‌های جدید هیجان‌انگیز است. چه یک توسعه دهنده باتجربه PHP باشید و چه یک تازه وارد، ارزش وقت گذاشتن برای آشنایی با این ویژگی های جدید و استفاده از آنها در کدتان را دارد. کنجکاو بمانید، به یادگیری ادامه دهید و از کدنویسی لذت ببرید!

نویسنده شوید
دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.