Proprietà e metodi statici - OOP in PHP

Proprietà e metodi statici - OOP in PHP

In PHP, le proprietà e i metodi statici sono elementi delle classi a cui si può accedere senza la necessità di creare un'istanza della classe.

Le proprietà statiche sono definite utilizzando la parola chiave "static" e possono essere utilizzate per conservare dati che devono essere condivisi tra tutte le istanze della classe.

Sintassi di proprietà e metodi statici

In questo esempio, abbiamo definito una proprietà statica chiamata "myStaticProperty" nella classe "MyClass" e gli abbiamo assegnato il valore "Hello, World!". Abbiamo poi utilizzato l'operatore di risoluzione di ambito (::) per accedere alla proprietà statica dalla classe senza creare un'istanza.

class MyClass {
  public static $myStaticProperty = "Hello, World!";
}

echo MyClass::$myStaticProperty;

I metodi statici, invece, sono definiti utilizzando la parola chiave "static" e possono essere utilizzati per eseguire operazioni che non richiedono di accedere alle proprietà dell'istanza della classe.

class MyClass {
  public static function myStaticMethod() {
    echo "Hello, World!";
  }
}

MyClass::myStaticMethod();

In questo esempio, abbiamo definito un metodo statico chiamato "myStaticMethod" nella classe "MyClass" che stampa la stringa "Hello, World!". Abbiamo poi utilizzato l'operatore di risoluzione di ambito (::) per invocare il metodo statico dalla classe senza creare un'istanza.

Esempio utilizzando proprietà e metodi statici

<?php
class User {
    // Creiamo una proprietà statica con valore di defalut 0
    public static int $count = 0;

  public function __construct($name) {
    $this->name = $name;
    User::$count++;
  }

  // Creiamo un metodo statico che richiama la proprietà $count della classe stessa usando la keyword self
  public static function getCount() {
    return self::$count;
  }
}

// Creazione di tre oggetti User
$user1 = new User('Donato');
$user2 = new User('Martina');
$user3 = new User('Charlie');

// Accesso alla proprietà statica $count
echo 'Numero di utenti: ' . User::$count . "\n";

// Accesso al metodo statico getCount
echo 'Numero di utenti: ' . User::getCount() . "\n";

In questo esempio, abbiamo definito una classe User con una proprietà statica $count e un metodo statico getCount. La proprietà $count tiene traccia del numero di istanze della classe User create, mentre il metodo getCount restituisce il valore di $count.

Abbiamo quindi creato tre oggetti User e incrementato la proprietà $count ogni volta che viene creato un nuovo oggetto. Infine, abbiamo accesso sia alla proprietà statica $count che al metodo statico getCount utilizzando la sintassi ClassName::propertyName e ClassName::methodName rispettivamente.

Scritto da Donato Pirolo

Ciao, sono Donato, frontend developer con una smisurata passione per la SEO. Creo strumenti ad hoc per aiutare aziende e professionisti ad essere cercati sul web e trovare clienti.

Potrebbero interessarti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyright © 2023
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram