PHP همیشه در حال پیشرفت است و مهم است که با آخرین ویژگی ها و پیشرفت های آن به روز بمانید. این مقاله 20 ویژگی PHP را که تا سال 2023 باید بدانید، معرفی می کند که هر کدام با یک مثال کد نشان داده شده است.
بررسی می کند که آیا یک رشته در یک رشته دیگر وجود دارد یا خیر.
$sentence = "The quick brown jumps over the lazy ."; $word = ""; if (str_contains($sentence, $word)) { echo "The sentence contains the word ."; }
بررسی می کند که آیا یک رشته با یک زیر رشته مشخص شروع می شود یا خیر.
$sentence = " Launching into space!"; if (str_starts_with($sentence, "")) { echo "The sentence starts with a rocket emoji!"; }
بررسی می کند که آیا یک رشته با یک زیر رشته مشخص به پایان می رسد.
$sentence = "It's a beautiful day! "; if (str_ends_with($sentence, "")) { echo "The sentence ends with a sun emoji!"; }
نوع متغیر را دریافت می کند.
$num = 42; echo get_debug_type($num); // "integer"
آیدی یکتا و منحصر به فرد داده را برمی گرداند.
$file = fopen('test.txt', 'r'); echo get_resource_id($file); // e.g., "7"
تابعی برای تقسیم که از تقسیم بر صفر پشتیبانی نمی کند.
$result = fdiv(10, 0); // INF
یک پیام قابل خواندن برای انسان و آخرین خطای اجرای PCRE regex را برمی گرداند.
preg_match('/(/', ''); echo preg_last_error_msg(); // "missing )"
اولین کلید یک آرایه را واکشی می کند.
$array = [''=>'Apple', ''=>'Orange', ''=>'Grape']; echo array_key_first($array); // ""
آخرین کلید یک آرایه را واکشی می کند.
$array = [''=>'Apple', ''=>'Orange', ''=>'Grape']; echo array_key_last($array); // ""
اهمیت و شدت خطا را دریافت می کند.
try { trigger_error("Custom error", E_USER_WARNING); } catch (ErrorException $e) { echo $e->getSeverity(); // 512 }
PHP 8 چندین تابع فیلتر جدید را معرفی کرده است. در اینجا مثالی برای استفاده از filter_var با FILTER_VALIDATE_BOOL آورده شده است:
var_dump(filter_var('yes', FILTER_VALIDATE_BOOL)); // bool(true)
یک کلاس جدید که ارجاعاتی به اشیا دارد، که مانع از جمع آوری زباله برای اشیا نمی شود.
$weakmap = new WeakMap(); $obj = new stdClass(); $weakmap[$obj] = 'Hello, world!';
PHP ۸ ارتقای ویژگی Constructor (Constructor Property Promotion) را معرفی کرده است که یک سینتکس جدید برای ساخت مقادیر اشیا است.
class Money { public function __construct( public int $amount, public string $currency ) {} } $tenDollars = new Money(10, 'USD');
Match یک عبارت مانند switch است.
echo match (1) { 0 => '', 1 => '', default => '', };
این عملگر جدید (?->) امکان بررسی تهی بودن هنگام دسترسی به ویژگی ها یا متدها را فراهم می کند.
class User { public function getAddress(): ?Address { // returns Address or null } } $user = new User(); $country = $user?->getAddress()?->country; // no error if getAddress() returns null
این ویژگی به شما امکان می دهد با تعیین نام مقدار، مقادیر را به یک تابع بفرستید.
new Money(amount: 10, currency: 'USD');
همچنین به عنوان حاشیه نویسی در سایر زبان های برنامه نویسی شناخته می شود.
#[Attribute] class ExampleAttribute {} #[ExampleAttribute] class ExampleClass {}
این ویژگی امکان ترکیب ویژگی های کلاس و Constructor را در یک تعریف واحد امکان پذیر می کند.
class Money { public function __construct( public int $amount, public string $currency ) {} }
این ویژگی امکان تعریف type را میدهد که میتوانند یکی از چندین نوع را داشته باشند.
function print_id(int|string $id): void { echo 'ID: ' . $id; }
PHP 8 دو موتور کامپایل JIT Tracing JIT و Function JIT را معرفی می کند.
توجه: کامپایل JIT قابلیتی نیست که بتوان آن را به طور مستقیم با یک قطعه کد نشان داد، اما یک پیشرفت مهم در PHP 8 است که میتواند عملکرد قابل توجهی را بهبود بخشد.
در نتیجه، PHP یک زبان دائما در حال تکامل با بسیاری از ویژگیها و پیشرفتهای جدید هیجانانگیز است. چه یک توسعه دهنده باتجربه PHP باشید و چه یک تازه وارد، ارزش وقت گذاشتن برای آشنایی با این ویژگی های جدید و استفاده از آنها در کدتان را دارد. کنجکاو بمانید، به یادگیری ادامه دهید و از کدنویسی لذت ببرید!
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.