PHP

PHP KOULUTUSTA VUONNA 2025!

Kurssit saatavilla kautta Suomen. Tule ja varaa oma koulutustapahtumasi heti! Koulutuksen järjestää asiantuntijasi Koulutus- ja konsultointipalvelu KK Mediat.

PHP:n tietotyypit: objektit ja viittaustyypit (byRef,byVal)

Objektit

PHP:ssä objekti (object) on yksi perus tietotyypeistä. Se on viittaus luokasta (class) luotuun ilmentymään. Objektien avulla PHP pystyy mallintamaan monimutkaisiakin datarakenteita helposti.

PHP:ssä olio luodaan määrittelemällä luokka (class) ja alustamalla se muuttujaan new-avainsanalla. Tämä muuttuja saa tietotyypikseen object:


<?php
    class Foo {
        function do_foo() { 
           echo "Do foo."; 
        }
    }

    $bar = new Foo;  // objekti
    $bar->do_foo();  // Do foo
?>


Objektimuuttuja voi sisältää sekä ominaisuuksia (properties) että menetelmiä (methods), joiden avulla ilmentymään säilöttyä tietoa käsitellään.

Objektin tyypin tarkistaminen

Voit tarkistaa muuttujan olevan objekti käyttämällä menetelmää is_object():


<?php
if (is_object($obj)) {
    echo "Muuttuja on objekti.";
}
?>

Voit myös tarkistaa mihin luokkaan objekti kuuluu:


<?php
    if ($bar instanceof Foo) {
        echo "Objekti on luokkaa Foo.";
    }
?>

Objektiviittaukset ovat byReference - kaikki muut tietotyypit byVal

Toisin kuin PHP:n muut tietotyypit, objektiviittaukset tapahtuvat aina nk. byReference. Tämä tarkoittaa sitä, että kun objekti sijoitetaan toiseen muuttujaan, muutokset vaikuttavat myös alkuperäiseen ilmentymään. Pieni esimerkki selventää asiaa:


<?php
    // perustietotyypit toimivat byValue viittauksilla
    $iA = 1; 
    $iB = $iA;
    $iA = 10;
    var_dump($iB); // 1
	

    //objekti toimii byRef-viittauksilla
    class Auto {
        public $merkki = "Tesla";
    }
    $oA = new Auto();
    $oB = $oA;
    $oB->merkki = "BMW";
    echo $oA->merkki; // Tulostaa: BMW
	
?>