Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak poprawić 4 błędy (Warning)
Forum PHP.pl > Forum > Przedszkole
r3pilc3
Witam
Jak poprawić 4 błędy, które się pojawiają wraz z nową wersją XAMPP, który posiada nową wersję PHP 5.4.4

Warning: Creating default object from empty value in C:\xampp\htdocs\Sklep_jubilerski\core\classes\controller_base.php on line 13
Warning: Creating default object from empty value in C:\xampp\htdocs\Sklep_jubilerski\core\classes\controller_base.php on line 17

Warning: Creating default object from empty value in C:\xampp\htdocs\Sklep_jubilerski\core\classes\router.php on line 118
Warning: Creating default object from empty value in C:\xampp\htdocs\Sklep_jubilerski\core\classes\router.php on line 131

plik controller_base.php:
  1. <?php
  2. Abstract Class Controller_Base {
  3. protected $registry;
  4. function __construct($registry, $models, $addons, $layout, $controller) {
  5. $this->registry = $registry;
  6. $this->session = $registry->session;
  7. $this->error = $registry->error;
  8. $this->text = $registry->text;
  9. $this->router = $registry->router;
  10. $this->template = $registry->template;
  11. $this->db = $registry->db;
  12. foreach($models as $model){
  13. $this->model->$model = $registry->model->$model;
  14. }
  15. if($addons)
  16. foreach($addons as $addon){
  17. $this->addon->$addon = $registry->addon->$addon;
  18. }
  19. $this->template->layout = $layout;
  20. $this->here = $controller;
  21. }
  22. abstract function index($args=null,$post=null);
  23. function addon($addon){
  24. return 'http://'.server_addr.site_addr.'core/addons/'.$addon;
  25. }
  26. }
  27. ?>


plik router.php:
-linia 118:
  1. $this->registry->addon->$addon = $addon2;

oraz linia 131:
  1. $this->registry->model->$name = $model;



Proszę o pomoc.
CuteOne
Zapewne obiekt $registry->model->$model jest pusty lub nie istnieje
  1. foreach($models as $model){
  2.  
  3. var_dump($registry->model->$model);
  4. die();
  5. }
CuteOne
Odpowiedź jest dość prosta odwołujesz się do czegoś co nie istnieje. Wcześniej dany obiekt musi być zainicjowany
bpskiba
Twój problem nie jest związany z wersją php lub xamppa, ale z konfiguracją.
Komunikat, który widzisz jest ostrzeżeniem, a nie błędem. Świadczy o niestaranności programisty, ale strona może działać prawidłowo.
Nowsze wersje php mają domyślnie ustawione wyświetlanie warning'ów w przeciwieństwie do starszych wersji
Aby "na szybko" rozwiązać sobie problem po prostu w php.cnf (lub ini) wyłącz wyświetlanie błędów i ostrzeżeń.
Oczywiście wyłączenie komunikatu nie leczy przyczyny.......
bpskiba
Podrążę temat dalej smile.gif
a może zapytam o parametry register_globals i save_mode ...........
greycoffey
Odwołujesz się odrazu do $this->model->[etc..], nie mając jeszcze nic w $this->model. PHP próbuje pobrać $this->model, i w pobranym (zakładanym) obiekcie wyszukać ciąg dalszy. Jednak $this->model === null. Ja to tak widzę. Do tego zmienne klasowe nie są nigdzie zadekralowane, to też może być problem.

<OFFTOP>
Cytat
Jestę początkujacy


</OFFTOP>
klocu
Nie no litości.

Masz warning tej samej treści co dopiero poprawiłeś. To nawet nie zastanawiając się za długo i mając dodatkowo wgląd w pełny kod wpadłbym na pomysł, że problem leży w tym samym. TYM SAMYM.

Czyli odwołujesz się do obiektu nie stworzonego wcześniej. (@greycoffey już wyjaśnił problem)
Za ubijanie ostrzeżeń i notyfikacji to ja nie wiem - zawsze w fazie produkcji włączam wyświetlane wszystkiego.

--
Cytat
Jestem początkujący

To nie zwalnia cię z logicznego myślenia i w miarę samodzielnego rozwiązywania problemów.
Przedstawiłeś problem, koledzy przedstawili ci rozwiązanie, ale za ciebie nie napiszą całego skryptu i nie poprawią każdej błahostki.
No to już - czas zakasać rękawy i zrobić to ANALOGICZNIE jak wcześniejsze błędy (plik wskazany, numery linii też)
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.