2015-03-15 6 views
-2

Это домашнее задание. Я создал 2 класса, Objecte и Ordinador. Обязательно, чтобы свойства Ordinador были частными и $ preu в Objecte тоже.Показать объект частные объекты

<?php 
class Objecte 
{ 
var $model; 
private $preu; 

public function __construct($model,$preu) 
{ 
    $this->model=$model; 
    $this->preu=$preu; 
} 
} 
?> 

Это Ordinador:

<?php 
include('classe_objecte.php'); 
class Ordinador extends Objecte 
{ 
private $disc_dur; 
private $ram; 

public function Ordinador($model,$preu,$disc_dur,$ram) 
{ 
    parent::__construct($model,$preu); 
    $this->disc_dur=$disc_dur; 
    $this->ram=$ram;  
} 
} 
?> 

Я сохранил некоторые объекты я создал. Они хранятся в массиве SESSION. Так что теперь я должен показать значения, но они частные в классах, я получаю эту ошибку:

Notice: Undefined property: Ordinador::$preu 
Fatal error: Cannot access private property Ordinador::$disc_dur 

Любые предложения, как получить доступ к нему ?.

+0

Вы можете добавить некоторые методы получения в свои классы; методы, возвращающие значения. – jeroen

ответ

0

вместо:

parent::__construct($model,$preu); 

попробовать:

$this->__construct($model,$preu); 
1

Вы должны создать публичную функцию, которая вызывает к частному вар

public function getPreu(){ 
    return $this->preu; 
} 
+0

Спасибо Yair, как я новичок в PHP, как я могу назвать этот метод вне класса? –

+0

$ obj = new Objecte ('modele', 'preu'); А затем echo $ obj-> getPreu(); –

+0

UPDATE добавлено ниже –

0

В этом случае я хранящей таких как:

$index=$_SESSION['numOrdinadorsO'];  
    $_SESSION['objetos_ordinador'][$index]=inserirOrdinadorO(); 

И Funtion inserirOrdinadorO выглядит следующим образом:

function inserirOrdinadorO() 
{ 
    $_SESSION['ordinadorsO']=array('model_ordinadors'=>$_POST['model_ordinadors'],'preu_ordinadors'=>$_POST['preu_ordinadors'],'tamany'=>$_POST['tamany'],'ram'=>$_POST['ram']); 

    $model=$_SESSION['ordinadorsO']['model_ordinadors']; 
    $preu=$_SESSION['ordinadorsO']['preu_ordinadors']; 
    $disc_dur=$_SESSION['ordinadorsO']['tamany']; 
    $ram=$_SESSION['ordinadorsO']['ram']; 

    $ord_tmp = new Ordinador($model,$preu,$disc_dur,$ram); 

    $_SESSION['numOrdinadorsO']+=1; 
    echo "Objecte Ordinador inserit.</br>";  
    return $ord_tmp; 
} 

Не уверен, как реализовать решение Яир дал мне:

$ OBJ = новый Objecte ('Modele', 'preu'); А затем echo $ obj-> getPreu();

Смежные вопросы