مب

مبانی در PHP

1 تمرین

درباره‌ی مبانی

نحوه‌ی نگارش کلی

PHP یک زبان تفسیرشده است، یعنی کدی را که می‌نویسید مستقیماً اجرا می‌کند. فایل‌های کد PHP، فایل‌های متنی‌ای هستند که برای مشخص کردن شروع کد PHP، شامل تگ آغازین <?php می‌شوند. اگر فایل فقط شامل کد PHP باشد، می‌توان تگ پایانی ?> را که برای مشخص کردن پایان کد PHP به کار می‌رود، حذف کرد. برای آشنایی بیشتر با تگ PHP، مستندات تگ PHP را ببینید.

<?php

// All PHP code goes here

// No closing tag required at the end

برای خوانایی بیشتر، همه‌ی نمونه‌های کد، تگ آغازین PHP یعنی <?php را حذف کرده‌اند. اما ما آن را در همه‌ی تمرین‌های PHP داریم، پس لازم نیست خودتان آن را اضافه کنید.

همه‌ی دستورها، مانند انتساب‌ها یا فراخوانی توابع، باید برای جداسازی دستورها با ; پایان یابند. حذف ; (مثل JavaScript) مجاز نیست و به خطاهای نگارشی منجر می‌شود. درباره‌ی جداسازی دستورها در مستندات PHP بیشتر بدانید.

$message = "Success!"; // Statement correctly ends with `;`
$message = "I know JavaScript." // PHP Parse error: syntax error, [...]

مقدار و متغیر

PHP یک زبان برنامه‌نویسی با نوع‌دهی پویا است. نوع مقدارها تنها در زمان اجرای برنامه بررسی می‌شود. با استفاده از عملگر انتساب =، می‌توان هر نوع مقداری را به هر اسم متغیری نسبت داد. اسم متغیرها باید با علامت دلار $ شروع شود. برای بررسی عمیق‌تر متغیرها، مستندات متغیر در PHP را ببینید.

$count = 1; // Assign an integer value of 1
$count = 2; // Re-assign a new value to the variable

$count = false; // You may assign any value type

// Strings can be created by enclosing the characters
// within single `'` quotes or double `"` quotes.
$message = "Success!";

تابع و متد

مقادیر ثابت و مقادیری که در متغیرها ذخیره شده‌اند، می‌توانند به توابع پاس داده شوند. هنگام تعریف آرگومان‌های تابع، برای نگه‌داشتن مقادیر ورودی، متغیرهای جدیدی ساخته می‌شود.

// Declare the window_width function
function window_width($width)
{
    echo $width; // Access the value passed into the function as $width
    // ...
}

window_width(100); // Call the function with the literal value 100

$newWidth = 100;
window_width($newWidth); // Call the function with the value stored in $newWidth

توابع می‌توانند با کلیدواژه‌ی return مقدار برگردانند. مقادیری که برگردانده می‌شوند می‌توانند مقدار ثابت باشند، در متغیر ذخیره شده باشند یا نتیجه‌ی یک دستور باشند.

function window_height()
{
    $heightOffset = 10;

    return 100 + $heightOffset;
}

توابعی که داخل کلاس‌ها و نمونه‌های آن‌ها قرار دارند، متد نامیده می‌شوند. برای فراخوانی یک متد، اسم آن پس از نمونه و -> می‌آید. نمونه‌ای از یک کلاس با عملگر new ساخته می‌شود. متدها به متغیر ویژه‌ی $this دسترسی دارند که به نمونه‌ی جاری اشاره می‌کند.

<?php
// Calculator.php

class Calculator {
    // ...

    public function sub($x, $y)
    {
        return $this->add($x, -$y); // Calls the method add() of the current instance
    }

    public function add($x, $y)
    {
        return $x + $y;
    }
}

$calculator = new Calculator(); // Creates a new instance of Calculator class
$calculator->sub(3, 1); // Calls the method sub() of the instance stored in $calculator
// => 2

در تمرین‌های بعدی، توابع و کلاس‌ها را عمیق‌تر بررسی خواهیم کرد.

دیباگ ساده

به عنوان یک شکل ساده از دیباگ، چاپ مقادیر و محتوای متغیرها به درک آنچه اتفاق می‌افتد کمک می‌کند. PHP می‌تواند مقادیر را با روش‌های زیر چاپ کند:

  • echo $variable; برای نمایش یک بازنمایی رشته‌ای از مقدار
  • print $variable; که همان echo $variable; است
  • var_dump($variable); برای شناخت بیشتر مقدار، مثلاً نوعی که PHP می‌بیند

هنگام استفاده از echo یا print: رشته‌های خالی، false و null نمایش داده نمی‌شوند. و کلاس‌ها و نمونه‌ها باعث می‌شوند آن‌ها خطا بدهند. برای دیدن این موارد از var_dump() استفاده کنید.

در ویرایشگر آنلاین، خروجی‌ای که تولید می‌کنید همراه با نتایج تست نمایش داده می‌شود. وقتی از CLI استفاده می‌کنید، خروجی پیش از خلاصه‌ی تست، درهم‌آمیخته با نشانگر پیشرفت ظاهر می‌شود.

سازماندهی کد

فایل‌ها واحدهای پایه‌ی سازماندهی کد در PHP و بسیاری از زبان‌های دیگر هستند. برای نشان دادن اسم فایلی که باید در یک بلوک کد به آن نگاه کنید، از یک کامنت استفاده می‌کنیم. هرگز لازم نیست چنین کامنت‌هایی را به فایل‌هایتان اضافه کنید:

<?php
// NameOfPhpFile.php

[...]

کد، توابع و کلاس‌ها می‌توانند همه در یک فایل واحد حضور داشته باشند. اما معمولاً این گونه واحدهای کد در فایل‌های جداگانه قرار دارند.

معمولاً هر کلاس در یک فایل جداگانه قرار می‌گیرد و اسم فایل با کلاس مطابقت دارد.

<?php
// Calculator.php

class Calculator {
    // ...

    function add($x, $y)
    {
        return $x + $y;
    }
}

توابع معمولاً در فایل‌هایی کنار هم قرار می‌گیرند که موضوع مشترکشان را توصیف می‌کنند.

<?php
// window_handling.php

function window_paint()
{
    // ...
}

function window_size($width, $height)
{
    // ...
}

function window_move($x, $y)
{
    // ...
}

و اغلب فایل‌هایی وجود دارند که دستورهایی برای اجرای مستقیم در خود دارند، مانند index.php که معمولاً به عنوان نقطه‌ی ورود یک برنامه‌ی وب به کار می‌رود.

<?php
// index.php

$sum = add(1, 2);
// ...

قواعد نام‌گذاری

اسم کلاس‌ها باید همه به شکل PascalCase باشند. بسته به استاندارد سبک، اسم متغیرها، توابع و متدها می‌تواند camelCase یا snake_case باشد. اسم‌ها می‌توانند شامل حروف a-zA-Z، اعداد 0-9 و زیرخط _ باشند، اما نمی‌توانند با عدد شروع شوند.

کامنت

کامنت‌های تک‌خطی با // شروع می‌شوند و یک بلوک متن را می‌توان با /* و */ احاطه کرد تا به یک کامنت چندخطی تبدیل شود.

// Single-line comment

/*
  Multi-line comment
*/
ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

مبانی را یاد بگیرید