توابع (PHP Functions)
توابع: آجرهایِ سازندهیِ برنامه 🧱👷♂️
تابع (Function) قطعه کدی است که یک نام دارد و هر زمان به آن نیاز باشد، صدا زده میشود. قانونِ طلاییِ برنامهنویسی DRY (تکرار نکن!) با توابع محقق میشود.
تعریف و فراخوانی:
{code_block('function sayHello($name) {\n return "سلام " . $name;\n}\necho sayHello("ایران");')}پارامترهایِ هوشمند:
در PHP میتوانید برایِ پارامترها مقدارِ پیشفرض (Default Value) بگذارید تا اگر کاربر مقداری نداد، برنامه خطا ندهد:
{code_block('function setHeight($h = 50) { ... }')}تایپ کستینگ در ورودی و خروجی (PHP 7+) 🛡️
برایِ امنیتِ بیشتر، میتوانید نوعِ دادهیِ ورودی و خروجی را مشخص کنید:
{code_block('function sum(int $a, int $b): int {\n return $a + $b;\n}')}& استفاده کنید، تابع مستقیماً رویِ متغیرِ اصلیِ بیرون از تابع تاثیر میگذارد.
تعدادِ متغیرِ پارامترها (Variadic Functions):
با استفاده از ... میتوانید هر تعداد ورودی که خواستید به تابع بدهید (مثل آرایه دریافت میشود).
بخش تخصصی: مهندسی منطق و پرفورمنس در PHP 🐘⚙️
در سطوحِ حرفهای، اجرایِ کد فقط کافی نیست؛ "چگونگیِ" اجرا و بهینهسازیِ آن تفاوتِ بینِ یک کدِ معمولی و یک معماریِ مقیاسپذیر را رقم میزند.
۱. بهینهسازیِ محاسبات با BCMath
در سیستمهایِ مالی و بانکی، دقتِ اعشاریِ معمولی (Float) به دلیلِ خطاهایِ گرد کردنِ باینری قابلِ اعتماد نیست. برایِ این کار، PHP افزونهای به نام BCMath دارد که محاسبات را با دقتِ نامحدود و به صورتِ رشتهای انجام میدهد تا حتی یک ریال هم در محاسبات جابجا نشود.
۲. ساختارِ HashTable در آرایهها
آرایهها در PHP برخلافِ بسیاری از زبانها، در واقع Ordered Hash Maps هستند. هر زمان که شما عضوی به آرایه اضافه میکنید، PHP یک سیستمِ Bucket و Hash را در پشتِ صحنه مدیریت میکند تا سرعتِ دسترسی به دادهها در حالتِ میانگین O(1) باقی بماند.
۳. مفهومِ Closures و کپسولهسازی
توابعِ بینام (Anonymous) در PHP فقط برایِ کارهایِ موقت نیستند. با استفاده از کلمه کلیدی use، میتوانید متغیرهایی را از اسکوپِ بیرونی به داخلِ تابع وارد کنید و یک Closure بسازید که پایه و اساسِ بسیاری از الگوهایِ طراحی مدرن است.
ifها، ابتدا حالتهایِ خطا را چک کرده و از تابع خارج شوید تا خواناییِ کد به حداکثر برسد.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
تابعی به نام multiply بنویسید که دو عدد دریافت کرده و حاصلضربِ آنها را return کند. سپس حاصل ضرب 5 در 4 را چاپ کنید.
<?php
function multiply($a, $b) {
return $a * $b;
}
echo multiply(5, 4);
?>
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.