Autor Zpráva
aha
Profil
Ahoj,
učím se PHP a narazil jsem na tento problém, pokouším se přistoupit k proměnné třídy z instance a vypsat ji. Nejde mi to. Někde tam je chyba vyplývající z podstaty věci a já na to nemůžu přijít. Poradíte?
<?php
require_once ('ladenka.php');

class Personal 
{
// $jmeno je private, nebo protected
protected $jmeno;
private $mzda;

// snaha o nastavení getterr a setteru, nechci použít  __get ani __set
public function nastavitJmeno($nazev){
	$this->jmeno=$nazev;
	}
public function ziskatJmeno(){
	return $this->jmeno;
	}
	
}

$zamestnanec = new  Personal();
$zamestnanec->nastavitJmeno("Mario");
$zamestnanec->ziskatJmeno();
$zamestnanec->jmeno;
$jmeno=$zamestnanec;
// a tady mám problém když chci vypsat proměnnou
echo "$jmeno";
?>

Tohle je chybová hláška: Cannot access protected property Personal::$jmeno
Předem dík
aha
Profil
Jo, asi jsem dost nezdůraznil, že mi jde o to abych ji vypsal z objektu Personal, ne v rámci třídy.
Mastodont
Profil
A proč nenapíšeš prostě
echo $zamestnanec->ziskatJmeno();

?
aha
Profil
Díky,
jak prosté milý Watsone.
ale stejně by mě zajímalo, proč nefunguje tohle:
$zamestnanec = new  Personal();
$zamestnanec->nastavitJmeno("Mario");
$zamestnanec->ziskatJmeno();

$jmeno=$zamestnanec;

echo $jmeno;

a musím to napsat takhle:
$zamestnanec = new  Personal();
$zamestnanec->nastavitJmeno("Mario");

$jmeno = $zamestnanec->ziskatJmeno();

echo "$jmeno";

Ještě jednou dík
fajzen
Profil
$zamestnanec->ziskatJmeno();
toto ti funguje, členská funkcia naozaj vráti meno, ale nie je tam echo, takže sa nevypíše

$jmeno=$zamestnanec;
tu priraďuješ celý objekt, nie len meno

echo $jmeno;
a tu sa následne pokúšaš vypísať celý objekt, nie len meno
aha
Profil
fajzen
Dík, takhle po lopatě jsem to pochopil :-)

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: