Autor Zpráva
Jiří Ráb
Profil
Ahoj chci se zeptat,když dědím ze třídy a potřebuji upravovat a přistupovat k proměnným zda použít parent nebo this ?
viz kod
<?php
declare(strict_types=1);
class Dopravni_pros{
    private $typ_dop_pros;
    private $nazev;
    private $poc_mist;
    private $max_rychlost;
    private $palivo;
    private $motor;

    
    public function __construct(string $typ_dop_pros,string $nazev, int $poc_mist, int $max_rychlost, string $palivo, string $motor){
        if($typ_dop_pros=='trolejbus' && $palivo=='nafta'){
            echo ' Zadali jste spatne palivo nebo typ dopravního prostredku. '.
        }else if($typ_dop_pros=='autobus' && $palivo=='elektrina'){
            echo ' Zadali jste spatne palivo nebo typ dopravního prostredku. '.

        }else{
            $this->typ_dop_pros=$typ_dop_pros;
            $this->nazev=$nazev;
            $this->poc_mist=$poc_mist;
            $this->max_rychlost=$max_rychlost;
            $this->palivo=$palivo;
            $this->motor=$motor;


        }


    }

     


    
}
$ob=new Dopravni_pros();

?>

<?php
require_once('Dopravni_pros.php');

class Uprava extends Dopravni_pros{

    public function __construct(){
        

    }

    
    public function __get(){

    $pole=array($this->typ_dop_pros,$this->nazev,$this->poc_mist,$this->max_rychlost,$this->palivo,$this->motor);

   for($i=0;$i<count($pole);$i++){
    return $pole[$i];
}




    }


    public function __set($nastaveni,$hodnota){
        switch ($nastaveni) {
            case 'typ_dop_pros':
                $this->typ_dop_pros=$hodnota;
                break;

            case 'nazev':
                $this->nazev=$hodnota;
                break;

            case 'poc_mist':
                $this->poc_mist=$hodnota;
                break;        

            case 'max_rychlost':
                $this->max_rychlost=$hodnota;
                break;    

            case 'palivo':
               $this->palivo=$hodnota;
                break;
                
            case 'motor':
                $this->motor=$hodnota;
                break;        


            
            default:
                echo'Vami zadane parametry nebyly nalezeny.'
                break;
        }




    }

    
}
$up=new Uprava();
$up->get_();
$up->set_();

  ?>
weroro
Profil
Vidteľnosť private platí iba pre konkrétnu triedu. Potomok triedy nemá ku tejto premennej/metóde prístup. Na to aby si mal prístup, musí byť nastavená public alebo protected. V tedy môžeš z potomka volať tieto premenné/metódy cez $this->
M4n
Profil *
Když nebudeš parent používat vůbec (nebo čistě jen pro účely volání rodičovské metody z té, která ji právě přepisuje), neuděláš chybu.
Jiří Ráb
Profil
Díky za pomoc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: