عملگرها (PHP Operators)
عملگرها: ابزارهایِ پردازشِ داده 🛠️⚡
عملگرها (Operators) نمادهایی هستند که رویِ مقادیر عملیات انجام میدهند. در PHP تنوعِ عملگرها بسیار زیاد است و برخی از آنها بسیار هوشمند هستند.
۱. عملگرهایِ ریاضی (+, -, *, /, %, **)
باقیمانده تقسیم (%) و توان (**) از موارد پرکاربرد هستند.
۲. عملگرهایِ مقایسهای (==, ===, !=, <>)
بسیار مهم: تفاوتِ == (تساوی مقدار) و === (تساوی مقدار و نوع) را همیشه در نظر داشته باشید. همیشه از === استفاده کنید تا امنیتِ کد بالاتر برود.
۳. عملگرهایِ منطقی (and, or, xor, !)
برایِ ترکیبِ چندین شرط با هم استفاده میشوند.
عملگرهایِ مدرنِ PHP 8:
- Spaceship (<=>): برایِ مقایسهیِ کوچک، مساوی یا بزرگ بودن (عالی برایِ مرتبسازی).
- Null Coalescing (??): برایِ چک کردنِ وجودِ یک متغیر و دادنِ مقدارِ پیشفرض در یک خط.
جادویِ Null Coalescing:
{code_block('$user = $_GET["name"] ?? "مهمان";\necho $user;')}() استفاده کنید تا ترتیبِ اجرا را خودتان تعیین کنید.
بخش تخصصی: مهندسی منطق و پرفورمنس در PHP 🐘⚙️
در سطوحِ حرفهای، اجرایِ کد فقط کافی نیست؛ "چگونگیِ" اجرا و بهینهسازیِ آن تفاوتِ بینِ یک کدِ معمولی و یک معماریِ مقیاسپذیر را رقم میزند.
۱. بهینهسازیِ محاسبات با BCMath
در سیستمهایِ مالی و بانکی، دقتِ اعشاریِ معمولی (Float) به دلیلِ خطاهایِ گرد کردنِ باینری قابلِ اعتماد نیست. برایِ این کار، PHP افزونهای به نام BCMath دارد که محاسبات را با دقتِ نامحدود و به صورتِ رشتهای انجام میدهد تا حتی یک ریال هم در محاسبات جابجا نشود.
۲. ساختارِ HashTable در آرایهها
آرایهها در PHP برخلافِ بسیاری از زبانها، در واقع Ordered Hash Maps هستند. هر زمان که شما عضوی به آرایه اضافه میکنید، PHP یک سیستمِ Bucket و Hash را در پشتِ صحنه مدیریت میکند تا سرعتِ دسترسی به دادهها در حالتِ میانگین O(1) باقی بماند.
۳. مفهومِ Closures و کپسولهسازی
توابعِ بینام (Anonymous) در PHP فقط برایِ کارهایِ موقت نیستند. با استفاده از کلمه کلیدی use، میتوانید متغیرهایی را از اسکوپِ بیرونی به داخلِ تابع وارد کنید و یک Closure بسازید که پایه و اساسِ بسیاری از الگوهایِ طراحی مدرن است.
ifها، ابتدا حالتهایِ خطا را چک کرده و از تابع خارج شوید تا خواناییِ کد به حداکثر برسد.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
نتیجهیِ مقایسهیِ تساویِ مقدار و نوع بین عدد 10 و رشتهیِ "10" را با var_dump چاپ کنید.
<?php
var_dump(10 === "10");
?>
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.