zpřístupnění proměnných uvintř třídy
5 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
ehm, pokoušim se rozchodit objekty v php a narazil jsem na následující problém. mám proměnné v souboru, který vkládám do souboru s objektama, kde je chci pomocí členských funkcí vypsat -něco jako: include "chybove_hlasky.php"; ... class pokus{ ... function vypis(){ echo $chyba; } ... } ... $ted->vypis(); ...//snad me chapete;) možná, že i chápu proč to nic nevypisuje, ale jde mi hlavně o to jak to obejít. napadlo mě to vyřešit pomocí $GLOBALS nebo define. oboje funguje dobře, ale pořád se mi to nezda jako ideální řešení... nevíte někdo jak to řešit líp?
-
nechápu tě, každopádně sem vyhrabal jeden ze starších skriptíků (úplně nanic, ale na vysvětlení je to geniální)... snad ti to pomůže: <?php /* skript kontroluje pravost e-mailu a zpracovává ho. řešení přes objekt je zde zbytečné ale je to hezký příklad... */ class email { var $mail; var $jmeno; var $vystup; function add_mail($mail){ $this->mail = $mail; } function add_jmeno($jmeno){ $this->jmeno = $jmeno; } function out($text){ $this->vystup .= $text; } function is_mail_valid(){ $valid = ereg("^([a-zA-Z0-9\._-]+@[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4})$", $this->mail); return $valid; } function getHTML(){ $gethtml = "<a href=\"mailto:". $this->mail ."\">". $this->jmeno ."</a>"; return $gethtml; //<a href="mailto:mail@mail.cz>$jmeno</a>" } function getEML(){ $geteml = "'". $this->jmeno ."'<". $this->mail .">"; return $geteml; //'jméno'<mail@mail.cz> } } $mailer = new email; if($_POST['test'] == 1){ if($_POST['jmeno'] != ""){ $mailer->add_jmeno($_POST['jmeno']); } else { $mailer->add_jmeno('[anonym]'); } if($_POST['mail'] != ""){ $mailer->add_mail($_POST['mail']); } if($mailer->is_mail_valid() == 1){ $mailer->out($mailer->getHTML() ."<br>"); $mailer->out($mailer->getEML()); } else { $mailer->out("E-mail není validní!"); } } else { $mailer->out("není zadáno jméno ani e-mail"); } $mailer->out(' <br><br> <hr> <form method="post" action="mailer.php"> <table> <tr> <td align="right">jmeno:</td> <td><input type="text" name="jmeno" size="30"'); if($mailer->is_mail_valid() != 1){ $mailer->out(' value="'. $_POST['jmeno'] .'"'); } $mailer->out('></td> </tr> <tr> <td align="right">mail:</td> <td><input type="text" name="mail" size="30"></td> </tr> <tr> <td><input type="hidden" name="test" value="1"></td> <td><input type="submit" value="zpracuj"></td> </tr> </table> </form> '); echo($mailer->vystup); ?>
-
mno, můj největší problém je vždycky v tom, že svý problémy neumim pojmenovat:(. pak už bych to snad i vygooglil... narychlo sem splacal jeden priklad o co mi jde ------ pokus_hlasky.php ---------- <?php $chyba_1 = "klasicka promenna..."; define("_CHYBA_2", "promenna pomoci define..."); $GLOBALS['chyba_3'] = "a konecne globalni;)..."; ?> ------ pokus.php ---------- <?php include "pokus_hlasky.php"; class muj_objekt{ var $Hlava, $Telo, $Pata;//nedulezity function promenny(){ echo "<br />1 -> ".$chyba_1;//nevypise echo "<br />2 -> "._CHYBA_2;//vypise echo "<br />3 -> ".$GLOBALS['chyba_3'];//vypise } } $vypisuj = new muj_objekt(); $vypisuj->promenny(); ?> prostě ty proměnný nechci předávat jako parametr funkcí, a přesto je v nich chci vypisovat..., asi je to blbost, ale radši sem se chtěl zeptat a ujistit se jak se to píše...
-
$chyba_1 = "klasicka promenna..."; (...) class muj_objekt{ var $Hlava, $Telo, $Pata;//nedulezity function promenny(){ global $chyba_1; // <<=== ZDE... echo "<br />1 -> ".$chyba_1;//nevypise echo "<br />2 -> "._CHYBA_2;//vypise echo "<br />3 -> ".$GLOBALS['chyba_3'];//vypise } } (...)
-
tak to jsem pěknej trouba...:D dik;)