Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Redeklaracja klasy
Forum PHP.pl > Forum > Przedszkole
artisan
mam trzy pliki
Kod
<?php
class v{
public $opis;
public $tytul="blabla";
public $cos="to ja jestem blabla";
public $zdjecie="obrazek.png";
public $tytuls="hejcia";
public $tytul2="siema";
public $tresc="fgkjghfcnjbhbnv jhdbnfhv";
public $tresc2="vfdhgfhnfdxgfgxhvghxcnjkvhcnxjfvnnk";
public $stopka="toaj wykonalem te piekna strone";
public function __get($zmienna)
{
$this->$zmienna;

}
private function meta() {
echo '<!DOCTYPE>';
echo '<html><head><meta charset="UTF-8" />';
echo '<meta name="Description" content="Tu wpisz opis zawartości strony" />';
echo' <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />';
echo '<title>'.$this->tytul .'</title>';
echo'    <link rel="Stylesheet" type="text/css" href="style.css" /></head><body>';
}
private function naglowek()
{
echo '<header>';
echo'<section>';
echo'<img class="logo" src="logo.png" alt="logo"/>';
echo'<h1>slogan</h1>';
echo'</section>';
echo'<nav>';
echo'<ul>';
echo'<li><a href="in.php?strona=Domowa">Domowa</a></li>';
echo'<li><a href="in.php?strona=Projekt">O projekcie</a></li>';
echo'<li><a href="in.php?strona=Artykuly">Artykuly</a></li>';
echo'<li><a href="in.php?strona=Forum">Forum</a></li>';
echo'<li><a href="in.php?strona=Linki">Ciekawe linki</a></li>';
echo'<li><a href="#">link</a></li>';
echo'</ul></nav>';
echo'<img src="'.$this->zdjecie .'" alt="obrazek tematyczny" />';
echo'</header>';
}
private function zawartosc()
{
echo'<section id="zaw">';
echo '<article id="opis"><h2>';
echo $opis[0];
echo '</h2><p>';
echo $opis[1];
echo'</p>';
echo '</article>';
echo'<article class="jeden">';
echo'<h2>'.$this->tytuls .'</h2>';
echo'<p>'.$this->tresc .'</p>';
echo'<a href="#">czytaj dalej</a>';
echo'</article>';
echo'<article class="dwa">';
echo'<h2>'.$this->tytul2 .'</h2>';
echo'<p>'.$this->tresc2 .'</p>';
echo'<ul><li>i jakas lista</li>';
echo'<li>i jakas lista</li>';
echo'<li>i jakas lista</li>';
echo'<li>i jakas lista</li>';
echo'</ul>';
echo'<a href="#">czytaj dalej</a>';
echo'</article>';
echo'</section>';



}
private function stopa()
{
echo'<footer>'.$this->stopka .'</footer>';
echo'</body>';
echo'</html>';
}
public function wyswietl()
{
$this->meta();
$this->naglowek();
$this->zawartosc();
$this->stopa();


}


}
?>

Kod
<?php
include("c.php");
class m {

public $opis;
public function __get($zmienna)
{
$this->$zmienna;

}
private function pobierz(){
      try{
$pdo= new PDO('mysql:host=localhost;moje dane, 'logujemy',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
        $pdo->setattribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $zap=$this->opis;
$opis=$pdo->query('Select strona, tresc from strony where strona="$zap"');
foreach($opis->fetchAll() as $przeb)
{
     $wynik=array($przeb['strona'],$przeb['tresc']);
}

           }

        
   catch( PDOException $e)

   {
    echo $e->getmessage();

   }
  
  $wopis=$wynik;
}
public $wopis;




}
?>

Kod
<?php
include("v.php");
include("m.php");
$model= new m();
  $widok= new v();

class c {




public function __get($zmienna)
{
$this->$zmienna;

}
public $strona;
private function ladujtekst()
    {
switch($strona)
{
case "Domowa" :
$opis=$model->opis=$strona;
break;
case "Projekt" :
$opis=$model->opis=$strona;
break;
case "Artykuly" :
$opis=$model->opis=$strona;
break;
case "Forum":
$opis=$model->opis=$strona;
break;
case "Linki":
$opis=$model->opis=$strona;
break;
}
$widok->opis=$model->wopis;
$widok->wyswietl();
    }
    
}

?>


I mam pytanko bo ja już nie widzę i mnie bierze gdzie ja tu chce redeklarować klase v ?
nospor
1) Uzywaj własciwego bbcode!
2) Jak masz blad, to nalezy go podać a nie my mamy zgadywać o jaką klase ci chodzi....
3) To ze w kodzie nie redeklarujesz nie znaczy ze danego kodu nie ładujesz/includujesz kilka razy. A jesli to robisz to wlasnie wtedy następuje redeklaracja
artisan
Powyższy problem rozwiązałem ale mam kolejny a więc tutaj pobieram dane
  1. public $tytul;
  2. public $tresc;
  3. .......
  4. .........
  5. ..........
  6. .....
  7.  
  8. $zap=$this->opis;
  9. $test=$pdo->query('Select strona, tresc from strony where strona="'.$zap.'"');
  10. foreach($test->fetchAll() as $przeb)
  11. {
  12. $this->tytul=$przeb['strona'];
  13. $this->tresc=$przeb['tresc'];
  14.  
  15. }
  16.  
  17. }
  18.  
  19.  
  20. catch( PDOException $e)
  21.  
  22. {
  23. echo $e->getmessage();
  24.  
  25. }
  26.  
  27. }
  28.  

i problem jest że nie zapisuje w zmiennej $tytul czy $tresc, gdy próbuje wynik wpisać do zmiennej globalnej to i tak nic nie daje
  1. global $wyn;
  2. $wyn=$przeb['tresc'];
  3.  
  4. i metoda
  5.  
  6. public function tytul()
  7. {
  8. return $this->tytul=$wyn;
  9. }
  10.  

Gdzie robię błąd?
potreb
Pokaż cały kod, bo z tego jest cokolwiek zrozumieć razem z twoim opisem.
Global to się nie stosuje.
artisan
podaje kod

dowodzenie
  1. <?php
  2. include("v.php");
  3. include("m.php");
  4. class c {
  5. public function __get($zmienna)
  6. {
  7. $this->$zmienna;
  8.  
  9. }
  10. public $strona='Forum';
  11. private function ladujtekst()
  12.  
  13. {
  14. $model= new m();
  15. switch($strona)
  16. {
  17. case "Domowa" :
  18. $model->opis=$strona;
  19. break;
  20. case "Projekt" :
  21. $model->opis=$strona;
  22. break;
  23. case "Artykuly" :
  24. $model->opis=$strona;
  25. break;
  26. case "Forum":
  27. $model->opis=$strona;
  28. break;
  29. case "Linki":
  30. $model->opis=$strona;
  31. break;
  32. }
  33. $widok= new v();
  34. $tytuls=$model->tytul();
  35. $widok->h2=$tytuls;
  36. $widok->p=$model->tresc;
  37. $widok->wyswietl();
  38.  
  39. }
  40. public function wykonaj()
  41. {
  42. $this->ladujtekst();
  43.  
  44. }
  45. }
  46.  
  47. ?>


pobieranie danych

  1. <?php
  2. class m {
  3. public $tytul;
  4. public $tresc='nie boa ha';
  5. public $opis;
  6. public function __get($zmienna)
  7. {
  8. $this->$zmienna;
  9.  
  10. }
  11. private function pobierz(){
  12. try{
  13. $pdo= new PDO('mysql:host=localhost;moje dane,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  14. $pdo->setattribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  15. $zap=$this->opis;
  16. $test=$pdo->query('Select strona, tresc from strony where strona="'.$zap.'"');
  17. foreach($test->fetchAll() as $przeb)
  18. {
  19.  
  20. global $wyn;
  21. $wyn=array($przeb['strona'],$przeb['tresc']);
  22. $this->tytul=$wyn;
  23.  
  24. }
  25. }
  26.  
  27. catch( PDOException $e)
  28.  
  29. {
  30. echo $e->getmessage();
  31.  
  32. }
  33. }
  34. public function tytul()
  35. {
  36. $this->pobierz();
  37. return $this->tytul;
  38.  
  39.  
  40. }
  41.  
  42. }
  43. ?>

w pliku pobierania wszystko się zapisuje bo drukowałem print_r(), problem jest w pliku dowodzenia (chyba)
i plik od widoku
  1. <?php
  2. class v{
  3. public $h2;
  4. public $p;
  5. public $tytul="blabla";
  6. public $cos="to ja jestem blabla";
  7. public $zdjecie="obrazek.png";
  8. public $tytuls="hejcia";
  9. public $tytul2="siema";
  10. public $tresc="fgkjghfcnjbhbnv jhdbnfhv";
  11. public $tresc2="vfdhgfhnfdxgfgxhvghxcnjkvhcnxjfvnnk";
  12. public $stopka="toaj wykonalem te piekna strone";
  13. public function __get($zmienna)
  14. {
  15. $this->$zmienna;
  16.  
  17. }
  18. private function meta() {
  19. echo '<!DOCTYPE>';
  20. echo '<html><head><meta charset="UTF-8" />';
  21. echo '<meta name="Description" content="Tu wpisz opis zawartości strony" />';
  22. echo' <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />';
  23. echo '<title>'.$this->tytul .'</title>';
  24. echo' <link rel="Stylesheet" type="text/css" href="style.css" /></head><body>';
  25. }
  26. private function naglowek()
  27. {
  28. echo '<header>';
  29. echo'<section>';
  30. echo'<img class="logo" src="logo.png" alt="logo"/>';
  31. echo'<h1>slogan</h1>';
  32. echo'</section>';
  33. echo'<nav>';
  34. echo'<ul>';
  35. echo'<li><a href="in.php?strona=Domowa">Domowa</a></li>';
  36. echo'<li><a href="in.php?strona=Projekt">O projekcie</a></li>';
  37. echo'<li><a href="in.php?strona=Artykuly">Artykuly</a></li>';
  38. echo'<li><a href="in.php?strona=Forum">Forum</a></li>';
  39. echo'<li><a href="in.php?strona=Linki">Ciekawe linki</a></li>';
  40. echo'<li><a href="#">link</a></li>';
  41. echo'</ul></nav>';
  42. echo'<img src="'.$this->zdjecie .'" alt="obrazek tematyczny" />';
  43. echo'</header>';
  44. }
  45. private function zawartosc()
  46. {
  47. echo'<section id="zaw">';
  48. echo '<article id="opis"><h2>';
  49. $h=$this->h2;
  50. echo $h[0];
  51. echo '</h2><p>';
  52. echo $this->p;
  53. echo '</p></article>';
  54. echo'<article class="jeden">';
  55. echo'<h2>'.$this->tytuls .'</h2>';
  56. echo'<p>'.$this->tresc .'</p>';
  57. echo'<a href="#">czytaj dalej</a>';
  58. echo'</article>';
  59. echo'<article class="dwa">';
  60. echo'<h2>'.$this->tytul2 .'</h2>';
  61. echo'<p>'.$this->tresc2 .'</p>';
  62. echo'<ul><li>i jakas lista</li>';
  63. echo'<li>i jakas lista</li>';
  64. echo'<li>i jakas lista</li>';
  65. echo'<li>i jakas lista</li>';
  66. echo'</ul>';
  67. echo'<a href="#">czytaj dalej</a>';
  68. echo'</article>';
  69. echo'</section>';
  70.  
  71.  
  72.  
  73. }
  74. private function stopa()
  75. {
  76. echo'<footer>'.$this->stopka .'</footer>';
  77. echo'</body>';
  78. echo'</html>';
  79. }
  80. public function wyswietl()
  81. {
  82. $this->meta();
  83. $this->naglowek();
  84. $this->zawartosc();
  85. $this->stopa();
  86.  
  87.  
  88. }
  89.  
  90.  
  91. }
  92. ?>


@refresh
CuteOne
1. Przerzuć się na pisanie strukturalne do czasu aż ogarniesz jak pisać w OOP
2.
a)
switch($strona) powinna być chyba $this->strona

cool.gif co to kurde jest?
global $wyn;
$wyn=array($przeb['strona'],$przeb['tresc']);

c) co robi ta funkcja?
public function __get($zmienna)
{
$this->$zmienna;

}

na więcej nie starczyło mi sił ;/ zobacz sobie jak piszą takie rzeczy profesjonaliści, w którymś z framework'ów
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.