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

ریاضیات (PHP Math)

30 دقیقه Article

ریاضیات در PHP: فراتر از چهار عملِ اصلی 🧮🔢

جاوااسکریپت پکیجِ Math دارد، اما در PHP توابعِ ریاضی مستقیماً در هسته‌یِ زبان وجود دارند. این توابع به شما اجازه می‌دهند از ساده‌ترین گرد کردن‌ها تا محاسباتِ پیچیده‌یِ مثلثاتی را انجام دهید.

توابعِ پرکاربردِ ریاضی:

  • abs(): مقدارِ مطلق (مثبت) یک عدد را برمی‌گرداند.
  • sqrt(): ریشه‌یِ دوم (جذر) یک عدد.
  • pow($base, $exp): به توان رساندن.
  • round(): گرد کردن به نزدیک‌ترین عدد صحیح.
  • ceil(): گرد کردن به سمتِ بالا (سقف).
  • floor(): گرد کردن به سمتِ پایین (کف).

تولیدِ اعدادِ تصادفی (Random) 🎲

تولیدِ عدد تصادفی در PHP با تابعِ rand() انجام می‌شود. اما اگر به امنیت بالاتری نیاز دارید (مثلاً برایِ توکن‌هایِ امنیتی)، حتماً از random_int() استفاده کنید.

{code_block('echo rand(1, 100); // عددی بین ۱ تا ۱۰۰')}
توابعِ آماری: توابعی مثل min() و max() می‌توانند مجموعه‌ای از اعداد یا حتی یک آرایه را دریافت کرده و کوچکترین/بزرگترین مقدار را پیدا کنند.

گرد کردنِ دقیق:

{code_block('echo round(3.14159, 2); // ۳.۱۴')}
دقت در محاسبات: برایِ کارهایِ سنگینِ ریاضیاتی در PHP، همیشه به یاد داشته باشید که PHP یک زبانِ محاسباتیِ خالص (مثل Fortran یا Python) نیست، اما با کتابخانه‌هایی مثل MathPHP می‌توانید کارهایِ فوق‌حرفه‌ای انجام دهید.
<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ها، ابتدا حالت‌هایِ خطا را چک کرده و از تابع خارج شوید تا خواناییِ کد به حداکثر برسد.

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

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

پیدا کردنِ ریشه دوم Easy
سوال تمرین

با استفاده از تابعِ مناسب، جذرِ عدد 64 را محاسبه و چاپ کنید.

پاسخ تمرین
PHP
<?php
echo sqrt(64);
?>

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

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