E-gradiva > Računalništvo > Programiranje > Načrtovanje in razvoj spletnih aplikacij > PHP > Objektno programiranje

Prijava

Objektno programiranje

 

Osnovni koncepti OOP

 

 

Objektno orientirano programiranje

 

 

PHP in OOP – primer razreda

 

<?php

class Oseba {

    private $ime = ''; // privzeta vrednost

 

    function setIme($ime) {

        $this->ime = $ime;

    }

 

    function getIme() {

        return $this->ime;

    }

}

?>

 

PHP in OOP – primer objektov / instanc

 

<?php

//npr. da je razred definiran v drugi datoteki

require_once('razred/Oseba.php');

 

$jure = new Oseba(); //izdelamo objekt

$jure->setIme('Jure');

 

$nina = new Oseba(); //izdelamo objekt

$nina->setIme('Nina');

 

echo $jure->getIme() . "<br />{$nina->getIme()}";

echo $nina->ime . '<br />' . $jure->ime; //napaka, ni dovoljeno

?>

Jure
Nina
Fatal error: Cannot access private property Oseba::$ime in E:\Dev\dLib\dkum\test.php on line 45

 

PHP in OOP – dodatni konstrukti

 

 

PHP in OOP – primer razreda II

 

<?php

class Oseba {

    private $ime;

    function __construct() {

        echo "Konstruktor klican!<br />";

        $this->ime = "Nedefinirano<br />";

    }

    function __destruct() {

        echo "Destruktor klican!<br />";

    }

    function setIme($ime) { $this->ime = $ime; }

    function getIme() { return $this->ime; }

};

$ime = new Oseba();

echo $ime->getIme();

$ime = NULL; // kliče destruktor, isto se zgodi pri unset()

?>

Konstruktor klican!
Nedefinirano
Destruktor klican!

 

PHP in OOP – dedovanje

 

 

PHP in OOP – primer dedovanja

 

<?php

class Oseba {

    protected $ime; // protected!

    function setIme($ime) { $this->ime = $ime; }

    function getIme() { return $this->ime; }

};

class Student extends Oseba {

    public $fakulteta; // ker je lastnost public, lahko do nje dostopamo kjerkoli!

    function izpis() { echo $this->fakulteta . " " . $this->ime . "<br />"; }

};

$jure = new Student();

$jure->setIme("Jure");

$jure->fakulteta = "FERI";

$nina = new Student();

$nina->setIme("Nina");

$nina->fakulteta = "EPF";

 

$jure->izpis();

$nina->izpis();

?>

FERI Jure
EPF Nina

 

PHP in OOP – primer dedovanja II

 

<?php

class Oseba {

    private $ime; // tokrat private!

    function __construct($ime) { $this->ime = $ime; } //konstruktor

    function setIme($ime) { $this->ime = $ime; }

    function getIme() { return $this->ime; }

};

class Student extends Oseba {

    public $fakulteta; // ker je lastnost public, lahko do nje dostopamo kjerkoli!

    function __construct($ime,$faks) {

        parent::__construct($ime);

        $this->fakulteta = $faks;

    }

    function izpis() { echo $this->fakulteta . " " . $this->getIme() . "<br />"; }

};

$jure = new Student('Jure', 'FERI');

$nina = new Student('Nina', 'EPF');

 

$jure->izpis();

$nina->izpis();

?>

FERI Jure
EPF Nina