Это домашнее задание. Я создал 2 класса, Objecte и Ordinador. Обязательно, чтобы свойства Ordinador были частными, и $ preu в Objecte тоже.
<?php
class Objecte
{
var $model;
private $preu;
public function __construct($model,$preu)
{
$this->model=$model;
$this->preu=$preu;
}
}
?>
Это Ординадор
<?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
Любые предложения, как получить к нему доступ?
Вы должны создать публичную функцию, которая вызывает приватную переменную
public function getPreu(){
return $this->preu;
}
вместо:
parent::__construct($model,$preu);
пытаться:
$this->__construct($model,$preu);
В этом случае я храню объекты следующим образом:
$index=$_SESSION['numOrdinadorsO'];
$_SESSION['objetos_ordinador'][$index]=inserirOrdinadorO();
А функция 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 = new Objecte (‘modele’, ‘preu’); А затем echo $ obj-> getPreu ();