Esercitazione PHP

PHP HOME Introduzione a PHP Installazione PHP Sintassi PHP Commenti PHP Variabili PHP PHP Eco/Stampa Tipi di dati PHP Stringhe PHP Numeri PHP PHP matematica Costanti PHP Operatori PHP PHP Se...Altro...Altro Passaggio PHP Ciclo PHP Funzioni PHP Matrici PHP Superglobali PHP RegEx PHP

Moduli PHP

Gestione dei moduli PHP Convalida del modulo PHP Modulo PHP richiesto URL/e-mail del modulo PHP Modulo PHP completo

PHP avanzato

Data e ora PHP PHP Include Gestione dei file PHP Apri/Leggi file PHP Creazione/scrittura di file PHP Caricamento file PHP Cookie PHP Sessioni PHP Filtri PHP Filtri PHP avanzati Funzioni di callback PHP PHP JSON Eccezioni PHP

PHP OOP

PHP Che cos'è OOP Classi/Oggetti PHP Costruttore PHP PHP distruttore Modificatori di accesso PHP Ereditarietà PHP Costanti PHP Classi astratte PHP Interfacce PHP Tratti PHP Metodi statici PHP Proprietà statiche PHP Spazi dei nomi PHP Iterabili PHP

Database MySQL

Database MySQL MySQL Connect MySQL Crea DB MySQL Crea tabella Dati di inserimento MySQL MySQL Ottieni l'ultimo ID MySQL inserisce più MySQL preparato MySQL Seleziona dati MySQL dove MySQL Ordina per MySQL Elimina dati Dati di aggiornamento MySQL Dati limite MySQL

PHP XML

Parser XML PHP Analizzatore PHP SimpleXML PHP SimpleXML - Ottieni PHP XML espatriato PHP XML DOM

PHP - AJAX

Introduzione all'Ajax AJAX PHP Database AJAX XML AJAX Ricerca in tempo reale AJAX Sondaggio AJAX

Esempi PHP

Esempi PHP compilatore PHP Quiz PHP Esercizi PHP Certificato PHP

Riferimento PHP

Panoramica di PHP matrice PHP Calendario PHP Data PHP Directory PHP Errore PHP Eccezione PHP File system PHP Filtro PHP PHP FTP PHP JSON Parole chiave PHP PHP Libxml Posta PHP PHP matematica PHP Varie PHP MySQLi Rete PHP Controllo dell'output PHP RegEx PHP PHP SimpleXML Flusso PHP Stringa PHP Gestione delle variabili PHP Analizzatore XML PHP Zip PHP Fuso orario PHP

PHP OOP - Classi e oggetti


Una classe è un modello per oggetti e un oggetto è un'istanza di classe.


Caso OOP

Supponiamo di avere una classe denominata Fruit. Un frutto può avere proprietà come nome, colore, peso, ecc. Possiamo definire variabili come $nome, $colore e $peso per contenere i valori di queste proprietà.

Quando i singoli oggetti (mela, banana, ecc.) vengono creati, ereditano tutte le proprietà e i comportamenti dalla classe, ma ogni oggetto avrà valori diversi per le proprietà.


Definisci una classe

Una classe viene definita utilizzando la class parola chiave, seguita dal nome della classe e da un paio di parentesi graffe ({}). Tutte le sue proprietà e metodi vanno all'interno delle parentesi graffe:

Sintassi

<?php
class Fruit {
  // code goes here...
}
?>

Di seguito dichiariamo una classe denominata Fruit composta da due proprietà ($name e $color) e due metodi set_name() e get_name() per impostare e ottenere la proprietà $name:

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}
?>

Nota: in una classe, le variabili sono chiamate proprietà e le funzioni sono chiamate metodi!


Definisci oggetti

Le lezioni non sono niente senza oggetti! Possiamo creare più oggetti da una classe. Ogni oggetto ha tutte le proprietà e i metodi definiti nella classe, ma avranno valori di proprietà diversi.

Gli oggetti di una classe vengono creati utilizzando la newparola chiave.

Nell'esempio seguente, $apple e $banana sono istanze della classe Fruit:

Esempio

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}

$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');

echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?>

Nell'esempio seguente, aggiungiamo altri due metodi alla classe Fruit, per impostare e ottenere la proprietà $color:

Esempio

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
  function set_color($color) {
    $this->color = $color;
  }
  function get_color() {
    return $this->color;
  }
}

$apple = new Fruit();
$apple->set_name('Apple');
$apple->set_color('Red');
echo "Name: " . $apple->get_name();
echo "<br>";
echo "Color: " . $apple->get_color();
?>


PHP - La parola chiave $this

La parola chiave $this si riferisce all'oggetto corrente ed è disponibile solo all'interno dei metodi.

Guarda il seguente esempio:

Esempio

<?php
class Fruit {
  public $name;
}
$apple = new Fruit();
?>

Quindi, dove possiamo cambiare il valore della proprietà $name? Ci sono due modi:

1. All'interno della classe (aggiungendo un metodo set_name() e usando $this):

Esempio

<?php
class Fruit {
  public $name;
  function set_name($name) {
    $this->name = $name;
  }
}
$apple = new Fruit();
$apple->set_name("Apple");

echo $apple->name;
?>

2. Fuori dalla classe (modificando direttamente il valore della proprietà):

Esempio

<?php
class Fruit {
  public $name;
}
$apple = new Fruit();
$apple->name = "Apple";

echo $apple->name;
?>

PHP - istanza di

Puoi utilizzare la instanceofparola chiave per verificare se un oggetto appartiene a una classe specifica:

Esempio

<?php
$apple = new Fruit();
var_dump($apple instanceof Fruit);
?>