Obiekt

Z PHPEdia.pl
(Przekierowano z Object)
Skocz do: nawigacji, wyszukiwania

Obiekt jest pojedynczą instancją danej klasy. W PHP obiekty tworzone są za pomocą operatora new:

<?php
// tworzymy instancję klasy Klasa i przypisujemy ją do zmiennej $obj
$obj = new Klasa();
// tak odwołujemy się do właściwości (zmiennej)
$obj->właściwość;
// tak odwołujemy się do metody (funkcji)
$obj->metoda(/*argumenty*/);
?>

Działając na obiekcie możemy korzystać jedynie z publicznych właściwości i metod klasy.

Nieskalarność

Obiekt nie jest typem skalarnym, co oznacza, iż nie można go użyć np. jako klucza elementu tablicy.

<?php
class Klasa {}
$obiekt = new Klasa();
$tablica = [1 => 3, $obiekt => 4];
echo $tablica[$obiekt];     //obie te metody niczego nie wyświetlą
echo $tablica[new Klasa()]; //ponieważ kluczem elementu nie może być obiekt
?>

Obiekty w foreach

Obiektów można używać w pętli foreach.

<?php
class Klasa {
  public $publiczna1 = 1;
  public $publiczna2 = 2;
  public $publiczna3 = 3;
  protected $chroniona = 4;
  private $prywatna = 5;
}
 
$o = new Klasa();
foreach($o as $liczba) {
  echo $liczba, "<br>";
}
?>

Powyższy program powinien wypisać liczby 1, 2 i 3, ponieważ zmienne $chroniona i $prywatna nie mogą być używane na zewnątrz klasy. Aby uzyskać do nich dostęp, trzeba pętlę foreach umieścić wewnątrz klasy (wtedy używa się this).

<?php
class Klasa {
  public $publiczna1 = 1;
  public $publiczna2 = 2;
  public $publiczna3 = 3;
  protected $chroniona = 4;
  private $prywatna = 5;
 
  function wypiszWłaściwości() {
    foreach($this as $liczba) {
      echo $liczba, "<br>";
    }
  }
}
 
$o = new Klasa();
$o->wypiszWłaściwości(); // zostaną wypisane wszystkie zmienne, niezależnie od tego, czy są publiczne czy nie
 
?>