Metodi
Fa parte della sezione Programmazione orientata agli oggetti del percorso PHP di Coddy. Lezione 5 di 91.
I metodi sono funzioni che appartengono a una classe. Definiscono i comportamenti o le azioni che gli oggetti possono eseguire.
Ecco un esempio di una classe con metodi:
<?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;
}
}Crea un oggetto calcolatrice:
$myCalc = new Calculator();Chiama un metodo che non richiede parametri:
$myCalc->greet();Chiama i metodi con i parametri:
$sumResult = $myCalc->add(5, 3);
echo $sumResult . "\n";Chiama un metodo che stampa e restituisce un valore:
$product = $myCalc->multiply(4, 7);Output:
Hello! I'm a calculator.
8
4 × 7 = 28I metodi possono:
- Accettare parametri come
add($a, $b) - Restituire valori come
return $a + $b;
- Stampa l'output direttamente come
echo "Hello!"; - Esegui sia la stampa che la restituzione
Punto chiave: i metodi definiscono ciò che i tuoi oggetti possono fare. Usa le parole chiave public function per definire un metodo all'interno di una classe. Chiama i metodi usando l'operatore -> su un oggetto.
Sfida
FacileCrea una classe BankAccount in bank_account.php con:
- Una proprietà
public $balance - Un metodo
depositche accetta un importo e lo aggiunge al saldo - Un metodo
withdrawche accetta un importo e lo sottrae dal saldo - Un metodo
getBalanceche restituisce il saldo corrente
Poi, in driver.php, crea un conto con saldo 0, deposita $100, preleva $30 e stampa il saldo nel formato: "Current balance: $[balance]"
Provalo tu
<?php
require_once 'bank_account.php';
$myAccount = new BankAccount();
$myAccount->balance = 0;
// TODO: Deposita 100
// TODO: Preleva 30
// TODO: Stampa il saldo nel formato: "Current balance: $[balance]"
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Programmazione orientata agli oggetti
1Fondamenti della programmazione orientata agli oggetti
File esterniIntroduzione alla programmazione orientata agli oggettiClassi e oggettiLa parola chiave $thisMetodiProprietàCostruttore (__construct)Distruttore (__destruct)Riepilogo - Calcolatrice semplice4Ereditarietà
Ereditarietà di baseLa parola chiave parent::Sovrascrittura dei metodiLa parola chiave finalClassi astratteRiepilogo - Gerarchia dei dipendenti7Incapsulamento
Pubblico, Protetto, PrivatoApprofondimento sui modificatori di accessoGetter e SetterOccultamento delle informazioniPromozione dei parametri del costruttore (8.0)Riepilogo - Sistema di gestione dei registri degli studenti10Concetti avanzati di programmazione a oggetti
Composizione vs ereditarietàDependency InjectionClassi anonimeEnumerazioni (PHP 8.1)Fibers (PHP 8.1)Approfondimento sulla clonazione degli oggettiGeneratori e iteratori13Modelli di progettazione, parte 2
Modello CommandModello AdapterModello DecoratorModello Template MethodModello StateModello CompositeModello Repository2Namespace e autoloading
Introduzione ai namespaceLa keyword useStandard di autoloading PSR-4Autoloader di ComposerRiepilogo - Progetto organizzato5Interfacce e contratti
Introduzione alle interfacceImplementare le interfacceImplementare più interfacceInterfaccia vs classe astrattaType hinting con le interfacceRiepilogo - Calcolatore di forme8Metodi magici
Introduzione ai metodi magici__toString e __debugInfo__get, __set, __isset, __unset__call e __callStatic__clone e clonazione degli oggetti__serialize e __unserializeRiepilogo - Collezione personalizzata11Sistema dei tipi e gestione degli errori
Dichiarazioni di tipoTipi nullableTipi unione e intersezioneClassi di eccezioneGerarchia di eccezioni personalizzataTry, Catch, FinallyRiepilogo - Validatore di moduli14Progetto: Gestione della biblioteca
Panoramica del progettoClassi Libro e Utente3Proprietà delle classi
Proprietà di istanza e staticheCostanti nelle classiMetodi e proprietà staticiProprietà private e protectedProprietà readonly (PHP 8.1)Riepilogo - Gestore di conti bancari6Polimorfismo
Ridefinizione dei metodi, ripresaPolimorfismo tramite interfacceSuggerimenti sui tipi e tipi UnionBinding statico tardivoRiepilogo - Processore di pagamenti9Tratti
Introduzione ai trattiUtilizzare più trattiRisoluzione dei conflitti tra trattiMetodi astratti nei trattiTratti vs ereditarietà12Design pattern - Parte 1
Introduzione ai design patternPattern SingletonPattern FactoryPattern ObserverPattern StrategyEsercitati da solo: Compilatore PHP online