这是作业。我创建了两个类,Objecte和Ordinador。 Ordinador属性是私有的,Objecte中的$ preu也是强制性的。
<?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
有关如何访问它的任何建议吗?。
答案 0 :(得分:1)
您必须创建一个调用private var
的公共函数public function getPreu(){
return $this->preu;
}
答案 1 :(得分:0)
而不是:
parent::__construct($model,$preu);
尝试:
$this->__construct($model,$preu);
答案 2 :(得分:0)
在这种情况下,我要存储这样的对象:
$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;
}
不确定如何实施Yair给我的解决方案:
$ obj = new Objecte(&#39; modele&#39;,&#39; preu&#39;);然后回显$ obj-&gt; getPreu();