دوره‌ها / آموزش جامع PHP (از صفر تا استادی) / عملگرها (PHP Operators)

عملگرها (PHP Operators)

30 دقیقه Article

عملگرها: ابزارهایِ پردازشِ داده 🛠️⚡

عملگرها (Operators) نمادهایی هستند که رویِ مقادیر عملیات انجام می‌دهند. در PHP تنوعِ عملگرها بسیار زیاد است و برخی از آن‌ها بسیار هوشمند هستند.

۱. عملگرهایِ ریاضی (+, -, *, /, %, **)

باقیمانده تقسیم (%) و توان (**) از موارد پرکاربرد هستند.

۲. عملگرهایِ مقایسه‌ای (==, ===, !=, <>)

بسیار مهم: تفاوتِ == (تساوی مقدار) و === (تساوی مقدار و نوع) را همیشه در نظر داشته باشید. همیشه از === استفاده کنید تا امنیتِ کد بالاتر برود.

۳. عملگرهایِ منطقی (and, or, xor, !)

برایِ ترکیبِ چندین شرط با هم استفاده می‌شوند.

عملگرهایِ مدرنِ PHP 8:

  • Spaceship (<=>): برایِ مقایسه‌یِ کوچک، مساوی یا بزرگ بودن (عالی برایِ مرتب‌سازی).
  • Null Coalescing (??): برایِ چک کردنِ وجودِ یک متغیر و دادنِ مقدارِ پیش‌فرض در یک خط.

جادویِ Null Coalescing:

{code_block('$user = $_GET["name"] ?? "مهمان";\necho $user;')}
اولویتِ عملگرها (Precedence): ضرب همیشه قبل از جمع انجام می‌شود. اگر شک دارید، حتماً از پرانتز () استفاده کنید تا ترتیبِ اجرا را خودتان تعیین کنید.
عملگرهایِ افزایشی (++$x و $x++): تفاوت در این است که عدد ابتدا اضافه شود و بعد استفاده شود، یا ابتدا استفاده شود و بعد اضافه شود. این نکته در حلقه‌هایِ حساس بسیار مهم است.
<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: مهندسی منطق و پرفورمنس در PHP 🐘⚙️

در سطوحِ حرفه‌ای، اجرایِ کد فقط کافی نیست؛ "چگونگیِ" اجرا و بهینه‌سازیِ آن تفاوتِ بینِ یک کدِ معمولی و یک معماریِ مقیاس‌پذیر را رقم می‌زند.

۱. بهینه‌سازیِ محاسبات با BCMath

در سیستم‌هایِ مالی و بانکی، دقتِ اعشاریِ معمولی (Float) به دلیلِ خطاهایِ گرد کردنِ باینری قابلِ اعتماد نیست. برایِ این کار، PHP افزونه‌ای به نام BCMath دارد که محاسبات را با دقتِ نامحدود و به صورتِ رشته‌ای انجام می‌دهد تا حتی یک ریال هم در محاسبات جابجا نشود.

۲. ساختارِ HashTable در آرایه‌ها

آرایه‌ها در PHP برخلافِ بسیاری از زبان‌ها، در واقع Ordered Hash Maps هستند. هر زمان که شما عضوی به آرایه اضافه می‌کنید، PHP یک سیستمِ Bucket و Hash را در پشتِ صحنه مدیریت می‌کند تا سرعتِ دسترسی به داده‌ها در حالتِ میانگین O(1) باقی بماند.

۳. مفهومِ Closures و کپسوله‌سازی

توابعِ بی‌نام (Anonymous) در PHP فقط برایِ کارهایِ موقت نیستند. با استفاده از کلمه کلیدی use، می‌توانید متغیرهایی را از اسکوپِ بیرونی به داخلِ تابع وارد کنید و یک Closure بسازید که پایه و اساسِ بسیاری از الگوهایِ طراحی مدرن است.

نکته طلایی: همیشه برایِ شرط‌هایِ پیچیده از Early Return استفاده کنید. به جایِ تودرتو کردنِ ifها، ابتدا حالت‌هایِ خطا را چک کرده و از تابع خارج شوید تا خواناییِ کد به حداکثر برسد.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

مقایسه دقیق Medium
سوال تمرین

نتیجه‌یِ مقایسه‌یِ تساویِ مقدار و نوع بین عدد 10 و رشته‌یِ "10" را با var_dump چاپ کنید.

پاسخ تمرین
PHP
<?php
var_dump(10 === "10");
?>

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.