برای اطلاعات دقیقتر دربارهی این موضوعات، به صفحهی مفهوم سر بزنید.
تگ شروع PHP، یعنی <?php، آغاز کد PHP را مشخص میکند.
همهی دستورها باید با ; پایان یابند تا از یکدیگر جدا شوند.
<?php
$message = "Success!"; // Statement correctly ends with `;`
$message = "I fail." // PHP Parse error: syntax error, [...]
برای خواندن راحتتر، همهی نمونهکدها تگ شروع <?php را حذف کردهاند.
کامنتهای تکخطی با // شروع میشوند.
// Single line comment
با استفاده از عملگر انتساب = میتوان مقداری را به یک «متغیر» نسبت داد.
اسم متغیرها باید با علامت دلار $ شروع شود و از قواعد نامگذاری پیروی کند.
$count = 1; // Assign value of 1
// Strings can be created by enclosing the characters
// within single `'` quotes or double `"` quotes.
$message = "Success!";
میتوان مقادیر و متغیرها را به «توابع» ارسال کرد.
آرگومانهای تابع به متغیرهای جدیدی تبدیل میشوند که مقادیر ارسالشده را در خود نگه میدارند.
توابع میتوانند با استفاده از کلیدواژهی return هر مقداری را برگردانند.
function window_height($height)
{
return $height + 10;
}
window_height(100);
// => 110
توابعی که داخل کلاسها و نمونههای آنها قرار دارند، «متد» نامیده میشوند.
برای فراخوانی یک متد، قبل از اسم آن، نمونه و -> میآید.
متدها به متغیر ویژهی $this دسترسی دارند که به نمونهی جاری اشاره میکند.
<?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
در این تمرین قرار است کدی بنویسید که به شما کمک کند لازانیای عالیای از کتاب آشپزی محبوبتان بپزید.
پنج وظیفه دارید که همه به زمان صرفشده برای پخت لازانیا مربوط میشوند.
تابع expectedCookTime را در کلاس Lasagna پیادهسازی کنید. این تابع هیچ آرگومانی نمیگیرد و برمیگرداند که لازانیا چند دقیقه باید در فر بماند.
بر اساس کتاب آشپزی، زمان مورد انتظار در فر ۴۰ دقیقه است:
<?php
$timer = new Lasagna();
$timer->expectedCookTime()
// => 40
تابع remainingCookTime را در کلاس Lasagna پیادهسازی کنید. این تابع تعداد دقایقی را که لازانیا تا کنون در فر بوده است بهعنوان آرگومان میگیرد و بر اساس زمان مورد انتظار در فر از وظیفهی قبلی، برمیگرداند که لازانیا چند دقیقهی دیگر باید در فر بماند.
<?php
$timer = new Lasagna();
$timer->remainingCookTime(30)
// => 10
تابع totalPreparationTime را در کلاس Lasagna پیادهسازی کنید. این تابع تعداد لایههایی را که به لازانیا اضافه کردهاید بهعنوان آرگومان میگیرد و برمیگرداند که چند دقیقه صرف آمادهسازی لازانیا کردهاید، با این فرض که آمادهسازی هر لایه ۲ دقیقه طول میکشد.
<?php
$timer = new Lasagna();
$timer->totalPreparationTime(3)
// => 6
تابع totalElapsedTime را در کلاس Lasagna پیادهسازی کنید. این تابع دو آرگومان میگیرد: آرگومان اول تعداد لایههایی است که به لازانیا اضافه کردهاید و آرگومان دوم تعداد دقایقی است که لازانیا در فر بوده است.
این تابع باید برمیگرداند که در مجموع چند دقیقه روی پخت لازانیا کار کردهاید، یعنی مجموع زمان آمادهسازی بر حسب دقیقه و زمانی که لازانیا تا این لحظه در فر گذرانده است.
<?php
$timer = new Lasagna();
$timer->totalElapsedTime(3, 20)
// => 26
تابع alarm را در کلاس Lasagna پیادهسازی کنید. این تابع هیچ آرگومانی نمیگیرد و پیامی برمیگرداند که نشان میدهد لازانیا آمادهی خوردن است.
<?php
$timer = new Lasagna();
$timer->alarm()
// => "Ding!"