الـ Methods
جزء من قسم Object Oriented Programming في رحلة PHP على Coddy — الدرس 5 من 91.
الأساليب (Methods) هي دوال تنتمي إلى فئة (class). وهي تُعرّف السلوكيات أو الإجراءات التي يمكن للكائنات (objects) القيام بها.
إليك مثال على كلاس (class) يحتوي على دوال (methods):
<?php
class Calculator {
public function greet() {
echo "Hello! I'm a calculator.\n";
}
public function add($a, $b) {
return $a + $b;
}
public function multiply($x, $y) {
$result = $x * $y;
echo $x . " × " . $y . " = " . $result . "\n";
return $result;
}
}أنشئ كائن حاسبة:
$myCalc = new Calculator();استدعاء ميثود لا يحتاج إلى معاملات:
$myCalc->greet();استدعاء الدوال (Methods) مع المعاملات:
$sumResult = $myCalc->add(5, 3);
echo $sumResult . "\n";استدعِ دالة (method) تقوم بطباعة وإرجاع قيمة في آن واحد:
$product = $myCalc->multiply(4, 7);المخرجات:
Hello! I'm a calculator.
8
4 × 7 = 28يمكن للدوال (Methods) أن:
- تأخذ معاملات (parameters) مثل
add($a, $b) - ترجع قيمًا مثل
return $a + $b;
- طباعة المخرجات مباشرة مثل
echo "Hello!"; - القيام بكل من الطباعة والإرجاع
نقطة رئيسية: تُحدد الأساليب (Methods) ما يمكن لكائناتك القيام به. استخدم الكلمات الرئيسية public function لتعريف أسلوب داخل فئة (class). استدعِ الأساليب باستخدام عامل التشغيل -> على كائن.
التحدي
سهلأنشئ فئة BankAccount في bank_account.php تحتوي على:
- خاصية
public $balance - دالة
depositتأخذ مبلغاً وتضيفه إلى الرصيد - دالة
withdrawتأخذ مبلغاً وتطرحه من الرصيد - دالة
getBalanceتُرجع الرصيد الحالي
ثم في driver.php، أنشئ حساباً برصيد 0، وأودع 100 دولار، واسحب 30 دولاراً، واطبع الرصيد بالتنسيق التالي: "Current balance: $[balance]"
ورقة مرجعية
الأساليب (Methods) هي دوال تنتمي إلى فئة (class) وتحدد السلوكيات أو الإجراءات التي يمكن للكائنات (objects) القيام بها.
قم بتعريف الأساليب داخل الفئة باستخدام public function:
<?php
class Calculator {
public function greet() {
echo "Hello! I'm a calculator.\n";
}
public function add($a, $b) {
return $a + $b;
}
public function multiply($x, $y) {
$result = $x * $y;
echo $x . " × " . $y . " = " . $result . "\n";
return $result;
}
}استدعِ الأساليب باستخدام عامل التشغيل -> على الكائن:
$myCalc = new Calculator();
$myCalc->greet();
$sumResult = $myCalc->add(5, 3);
$product = $myCalc->multiply(4, 7);يمكن للأساليب أن:
- تأخذ معاملات (parameters):
add($a, $b) - تعيد قيمًا (Return values):
return $a + $b; - تطبع مخرجات:
echo "Hello!"; - تقوم بالطباعة والإرجاع معًا
جرّب بنفسك
<?php
require_once 'bank_account.php';
$myAccount = new BankAccount();
$myAccount->balance = 0;
// TODO: إيداع 100
// TODO: سحب 30
// TODO: طباعة الرصيد بالتنسيق: "Current balance: $[balance]"
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Object Oriented Programming
1أساسيات OOP
الملفات الخارجيةمقدمة في OOPClasses مقابل Objectsالكلمة المفتاحية $thisالـ Methodsالـ Propertiesالمنشئ (__construct)الهادم (__destruct)مراجعة - آلة حاسبة بسيطة4الوراثة
الوراثة الأساسيةالكلمة المفتاحية parent::إعادة تعريف الدوال (Method Overriding)الكلمة المفتاحية finalالأصناف المجردة (Abstract Classes)مراجعة - هيكلية الموظفين7التغليف (Encapsulation)
العام، المحمي، الخاص (Public, Protected, Private)نظرة متعمقة على معدلات الوصولدوال Getters و Settersإخفاء المعلوماتميزة Constructor Promotion (8.0)مراجعة - نظام سجلات الطلاب10مفاهيم البرمجة كائنية التوجه المتقدمة
التركيب مقابل الوراثةحقن التبعيةالأصناف المجهولةالتعدادات (PHP 8.1)الألياف (PHP 8.1)تعمق في استنساخ الكائناتالمولدات والمكررات13أنماط التصميم - الجزء الثاني
نمط الأمرنمط المحولنمط المزيننمط طريقة القالبنمط الحالةنمط التركيبنمط المستودع2مساحات الأسماء والتحميل التلقائي
مقدمة إلى مساحات الأسماءالكلمة المفتاحية useمعيار التحميل التلقائي PSR-4أداة التحميل التلقائي Composerملخص - مشروع منظم5الواجهات والعقود
مقدمة إلى الواجهاتتنفيذ الواجهاتتنفيذ واجهات متعددةالواجهة مقابل الـ Abstract Classالـ Type Hinting مع الواجهاتملخص - حاسبة الأشكال8الميثودات السحرية (Magic Methods)
مقدمة في الميثودات السحرية__toString و __debugInfo__get, __set, __isset, __unset__call و __callStatic__clone واستنساخ الكائنات__serialize و __unserializeمراجعة - Custom Collection3خصائص الكلاس
خصائص الـ Instance مقابل الخصائص الساكنة (Static)الثوابت في الكلاساتالدوال والخصائص الساكنة (Static)الخصائص الخاصة (Private) والمحمية (Protected)خصائص للقراءة فقط (Readonly) في PHP 8.1مراجعة - مدير الحساب البنكي6تعدد الأشكال (Polymorphism)
مراجعة إعادة تعريف الدوال (Method Overriding)تعدد الأشكال عبر الـ Interfacesتلميح النوع (Type Hinting) وأنواع الاتحاد (Union Types)الربط الاستاتيكي المتأخر (Late Static Binding)ملخص - معالج الدفع (Payment Processor)