آرایهها (PHP Arrays)
آرایهها: قدرتمندترین ابزارِ مدیریتِ لیستها 🗃️📊
در PHP، آرایهها فراتر از یک لیستِ ساده هستند. آنها در واقع Maps هستند که میتوانند هر نوع دادهای را در بر بگیرند. به جرات میتوان گفت آرایهها قلبِ تپندهیِ PHP هستند.
۱. آرایههایِ ایندکس دار (Indexed)
لیستهایِ سنتی که با شمارهیِ ایندکس (شروع از ۰) کار میکنند.
{code_block('$fruits = ["Apple", "Orange"];')}۲. آرایههایِ انجمنی (Associative) 🏷️
اینجاست که جادویِ PHP شروع میشود! به جایِ عدد، میتوانید از رشتهها به عنوانِ "کلید" استفاده کنید. این برایِ نمایشِ دادههایِ دیتابیس عالی است.
{code_block('$age = ["Ali" => "25", "Saman" => "30"];')}۳. آرایههایِ چندبعدی
آرایهای که خودش شاملِ آرایههایِ دیگر است (فکر کنید مثلِ یک جدول یا ماتریس).
توابعِ جادوییِ آرایه:
count():تعدادِ اعضا.array_push():اضافه کردن به انتها.asort():مرتبسازی بر اساسِ مقدار (Value).ksort():مرتبسازی بر اساسِ کلید (Key).array_merge():چسباندنِ دو آرایه به هم.
isset() یا array_key_exists() چک کنید که آیا آن خانه وجود دارد، وگرنه با خطایِ Warning: Undefined array key روبرو میشوید.
تودرتو کردنِ آرایهها:
{code_block('$matrix = [[1, 2], [3, 4]];\necho $matrix[1][0]; // ۳')}[$a, $b] = [10, 20];
بخش تخصصی: مهندسی منطق و پرفورمنس در PHP 🐘⚙️
در سطوحِ حرفهای، اجرایِ کد فقط کافی نیست؛ "چگونگیِ" اجرا و بهینهسازیِ آن تفاوتِ بینِ یک کدِ معمولی و یک معماریِ مقیاسپذیر را رقم میزند.
۱. بهینهسازیِ محاسبات با BCMath
در سیستمهایِ مالی و بانکی، دقتِ اعشاریِ معمولی (Float) به دلیلِ خطاهایِ گرد کردنِ باینری قابلِ اعتماد نیست. برایِ این کار، PHP افزونهای به نام BCMath دارد که محاسبات را با دقتِ نامحدود و به صورتِ رشتهای انجام میدهد تا حتی یک ریال هم در محاسبات جابجا نشود.
۲. ساختارِ HashTable در آرایهها
آرایهها در PHP برخلافِ بسیاری از زبانها، در واقع Ordered Hash Maps هستند. هر زمان که شما عضوی به آرایه اضافه میکنید، PHP یک سیستمِ Bucket و Hash را در پشتِ صحنه مدیریت میکند تا سرعتِ دسترسی به دادهها در حالتِ میانگین O(1) باقی بماند.
۳. مفهومِ Closures و کپسولهسازی
توابعِ بینام (Anonymous) در PHP فقط برایِ کارهایِ موقت نیستند. با استفاده از کلمه کلیدی use، میتوانید متغیرهایی را از اسکوپِ بیرونی به داخلِ تابع وارد کنید و یک Closure بسازید که پایه و اساسِ بسیاری از الگوهایِ طراحی مدرن است.
ifها، ابتدا حالتهایِ خطا را چک کرده و از تابع خارج شوید تا خواناییِ کد به حداکثر برسد.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
یک آرایه شاملِ مشخصاتِ یک ماشین بسازید که کلیدِ brand آن Tesla باشد. سپس مقدارِ brand را چاپ کنید.
<?php
$car = ["brand" => "Tesla"];
echo $car["brand"];
?>
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.