Autor Zpráva
Brouzdalek
Profil
Vysvětlí mi někdo, prosím, proč se tak musí psát úvozovky u funkce Tisk() ? Opravdu nechápu...


<?
class CAdresa
{
var $Jmeno, $Prijmeni;
var $Ulice, $Obec, $PSC;

function Tisk()
{
echo $this->Jmeno." ".$this->Prijmeni.": ";
echo $this->Ulice.", ".$this->Obec.", ".$this->PSC;
}
}

$adresa = new CAdresa; // vytvoření objektu - instance
$adresa->Jmeno = "Jan"; // inicializace proměnných
$adresa->Prijmeni = "Novák";
$adresa->Ulice = "Dlouhá 13";
$adresa->Obec = "Praha 1";
$adresa->PSC = "110 00";

$adresa->Tisk(); // volání členské proměnné

?>
Petr Tichý
Profil
A kde máš ty uvozovky?
Broudzalek
Profil *
echo $this->Jmeno." ".$this->Prijmeni.": ";

echo $this->Ulice.", ".$this->Obec.", ".$this->PSC;
DJ Miky
Profil
Můžeš tam mít třeba i apostrofy...

Pokud myslíš, na co tam je to " ", tak to je tam na oddělení jména a příjmení atd.
Petr Tichý
Profil
To přeci přidává postupně:

1, mezeru mezi jméno a příjimení
2, dvoujtečku a mezeru za celé jméno
3, čárku za název ulice, obec a PSČ

Jinak by to bylo slité a bez mezer.
Broudzalek
Profil *
Myslel jsem, že to má něco společnýho se spojováním textových řetězců, ale to by musely být ještě přeci úvozovky za 'echo' ?!

Je to dobře, protože to tahkle funguje a jinak ne...ale je to prostě divný ;-//
Broudzalek
Profil *
To přeci přidává postupně:

1, mezeru mezi jméno a příjimení
2, dvoujtečku a mezeru za celé jméno
3, čárku za název ulice, obec a PSČ

Jinak by to bylo slité a bez mezer.


No a co ty tečky ? ;-)
Petr Tichý
Profil
Jistě, že je to spojování řetězců. Nemuseli. Nejdřív jde proměná (pole) a potom se napijí (tečka) " " (čili mezera) a zase se napojí (tečka) zbytek.
djlj
Profil
Myslel jsem, že to má něco společnýho se spojováním textových řetězců
Ano, má. Však je taky spojuješ.
djlj
Profil
No a co ty tečky ? ;-)
Právě na to spojení dvou řetězců.
Petr Tichý
Profil
Tečka spojuje řetězce v php.
Broudzalek
Profil *
Já vám všem rozumím, ale proč to teda není před 'echo' ?!
bukaj
Profil
Já vám všem rozumím, ale proč to teda není před 'echo' ?!
.echo ...atd.
nebo
echo ."blabla"...atd.
protože, jak již bylo psáno, spojuje to řetězce a v tvém případě je první řetězec za echo to $this->Jmeno ;)
Broudzalek
Profil *
já bych napsal:

echo ".$this->Jmeno." ".$this->Prijmeni.": ";
YoSarin
Profil
Broudzalek
ale proč to teda není před 'echo'
tolik k tomu rozumnění. :)
Proč by měly být uvozovky před echo?
Ber to echo jako funkci - echo($string);
řetězce v PHP se spojují pomocí . (tečky) -> takže echo "a"."b"; vypíše "ab". echo $string; vypíše obsah stringu; a když to chceš spojit, tak napíšeš prostě echo $string." další řetězec";
U uvozovek by pochopitelně šlo i echo "$string další řetězec";
Broudzalek
Profil *
Aha, tak teď už chápu...Díky...
YoSarin
Profil
Broudzalek
já bych napsal:
echo ".$this->Jmeno." ".$this->Prijmeni.": ";


No to bys tomu dal. :)
Teoretické otázky:
1) Co to je řetězec?
posloupnost znaků uzavřená uvozovkami (") nebo apostrofy (') (velice zjednodušeně)

2) jak se spojují řetězce?
znakem tečka (.)

3) co dělá echo?
Vypíše na výstup parametr který za ním následuje
echo "ahoj"; //vypíše ahoj

$text = "ahoj";
echo $text; //vypíše ahoj

4) když chci vypsat dva řetězce za sebou, jak to udělám?
$text1 = "ahoj";

$text2 = "karle";
echo $text1.$text2; //vypíše spojené text1 a text2, tzn ahojkarle
echo $text1." ".$text2; //vypíše celkem tři řetězce po sobě - $text1, " " a $text2, tzn ahoj karle
DoubleThink
Profil *
Zamykám.

2 Broudzalek:
Elementární pravidla syntaxe PHP viz manuál. Zde konkrétně datový typ string.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0