ثابتها (PHP Constants)
ثابتها: ارزشهایی که هرگز تغییر نمیکنند 💎🛡️
ثابتها (Constants) مانند متغیرها هستند، با این تفاوت که پس از یک بار تعریف شدن، نه میتوان مقدارشان را تغییر داد و نه میتوان آنها را حذف کرد. آنها بهترین گزینه برایِ ذخیرهیِ تنظیمات (مثل آدرس دیتابیس) هستند.
نحوه تعریفِ ثابت:
دو راهِ اصلی برایِ تعریفِ ثابت وجود دارد:
- تابعِ define(): آشناترین روش.
- کلیدواژهیِ const: روشِ مدرنتر که داخلِ کلاسها هم استفاده میشود.
قوانینِ طلاییِ ثابتها:
- ثابتها (برخلاف متغیرها) علامتِ
$ندارند. - نامِ آنها طبقِ قرارداد همیشه با حروفِ بزرگ نوشته میشود.
- یک ثابت همهجا (Global) در دسترس است و نیازی به کلمه کلیدی
globalندارد.
const در زمانِ کامپایل (Compile-time) مقدار میگیرد، در حالی که define() در زمانِ اجرا (Runtime). به همین دلیل، نمیتوانید از const داخلِ بلاکهایِ if استفاده کنید.
استفاده از ثابت:
{code_block('define("GREETING", "سلام!");\necho GREETING;')}بخش تخصصی: مهندسی منطق و پرفورمنس در PHP 🐘⚙️
در سطوحِ حرفهای، اجرایِ کد فقط کافی نیست؛ "چگونگیِ" اجرا و بهینهسازیِ آن تفاوتِ بینِ یک کدِ معمولی و یک معماریِ مقیاسپذیر را رقم میزند.
۱. بهینهسازیِ محاسبات با BCMath
در سیستمهایِ مالی و بانکی، دقتِ اعشاریِ معمولی (Float) به دلیلِ خطاهایِ گرد کردنِ باینری قابلِ اعتماد نیست. برایِ این کار، PHP افزونهای به نام BCMath دارد که محاسبات را با دقتِ نامحدود و به صورتِ رشتهای انجام میدهد تا حتی یک ریال هم در محاسبات جابجا نشود.
۲. ساختارِ HashTable در آرایهها
آرایهها در PHP برخلافِ بسیاری از زبانها، در واقع Ordered Hash Maps هستند. هر زمان که شما عضوی به آرایه اضافه میکنید، PHP یک سیستمِ Bucket و Hash را در پشتِ صحنه مدیریت میکند تا سرعتِ دسترسی به دادهها در حالتِ میانگین O(1) باقی بماند.
۳. مفهومِ Closures و کپسولهسازی
توابعِ بینام (Anonymous) در PHP فقط برایِ کارهایِ موقت نیستند. با استفاده از کلمه کلیدی use، میتوانید متغیرهایی را از اسکوپِ بیرونی به داخلِ تابع وارد کنید و یک Closure بسازید که پایه و اساسِ بسیاری از الگوهایِ طراحی مدرن است.
ifها، ابتدا حالتهایِ خطا را چک کرده و از تابع خارج شوید تا خواناییِ کد به حداکثر برسد.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
یک ثابت به نام SITE_NAME با مقدار "ParsCode" تعریف کنید و آن را چاپ کنید.
<?php
define("SITE_NAME", "ParsCode");
echo SITE_NAME;
?>
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.