• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd: redeclare html()

VPS Starter Arubacloud
0 głosów
266 wizyt
pytanie zadane 7 listopada 2016 w PHP przez molik Użytkownik (950 p.)
edycja 7 listopada 2016 przez molik

Cześć!

Nie mogę uporać się z pewnym problemem. Rozumiem, że jest ponownie zadeklarowane.. ale nie wiem o co tu chodzi: 

Błąd: 

Fatal error: Cannot redeclare html() (previously declared in /nauka/php/test/includes/helpers.inc.php:2) in /nauka/php/test/includes/helpers.inc.php on line 4

<?php
    function html($text){
        return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
    }

    function htmlout($text){
        echo html($text);
    }
?>

 

2 odpowiedzi

+1 głos
odpowiedź 7 listopada 2016 przez HaKIM Szeryf (87,590 p.)

Zmień kod z plain-text na php.

Dziwne, ale mi śmiga:

<?php
    function html($text){
        return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
    }
 
    function htmlout($text){
        echo html($text);
    }
    echo html('Hello World');
    htmlout('Hello World');

Jest to jedyny plik czy może jakoś połączony z innymi?

komentarz 7 listopada 2016 przez molik Użytkownik (950 p.)
nie, nie.. jest to jedyny.. wlasnie dlatego nie wiem o co tu chodzi...

Sorry ale nie wiem jak zmienić plain-text ;/
komentarz 7 listopada 2016 przez HaKIM Szeryf (87,590 p.)

Możesz to objeść if'em.

Choć, ja bym polecił użył i zalecał przestrzeń nazw.

namespace MyHtml{
        function html($text){
        return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
    }
 
    function htmlout($text){
        echo html($text);
    }
    
    echo html('Hello World');
    htmlout('Hello World');
}

namespace SomeLibrary{
    function html($text, $text2) {
        return "Hello { $text } & { $text2 }";
    }
}

Śmiga cacy.

Tutaj możesz przetestować:

http://sandbox.onlinephpfunctions.com/

Zanim zadasz pytanie jak wywołać funkcję html() z przestrzeni nazw przejżyj:

http://php.net/manual/pl/language.namespaces.php

komentarz 7 listopada 2016 przez molik Użytkownik (950 p.)
Niestety do przestrzeni nazw jeszcze nie doszedłem i nie wiem jak one działają, więc jak powinienem rozwiązać ten problem
komentarz 7 listopada 2016 przez HaKIM Szeryf (87,590 p.)
edycja 7 listopada 2016 przez HaKIM

To dojdź.

Wszystko wytłumaczone w manualu.

W skrócie:

Plik index.php

print \MyHtml\html('HelloWorld');

Bez umiejętności posługiwania się dokumentacją daleko nie zajdziesz.

No, chyba że chcesz być kolejną koparką w korpo. wink

Trochę więcej kodu:

namespace MyHtml{
 
        function html($text){
            return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
        }
   
    function htmlout($text){
        echo html($text);
    }
}
  
namespace SomeLibrary{
    function html($text, $text2) {
        return "Hello { $text } & { $text2 }";
    }
}
 
namespace Index{
    print \MyHtml\html('Hello');
}

Nie wkurzaj się na styl - kod był robiony tak se o.

http://www.php-fig.org/psr/

komentarz 7 listopada 2016 przez molik Użytkownik (950 p.)
Ok dzięki
komentarz 7 listopada 2016 przez HaKIM Szeryf (87,590 p.)

Jak nie będziesz potrafił zaimplementować poprzez namespace daj znać. Acz, przeczytanie introduction w manual'u o namespace'ach powinno rozwiązać wszelkie wątpliwości.

0 głosów
odpowiedź 7 listopada 2016 przez CzikaCarry Szeryf (75,340 p.)

Fatal error: Cannot redeclare html() (previously declared in /nauka/php/test/includes/helpers.inc.php:2) in /nauka/php/test/includes/helpers.inc.php on line 4

komentarz 7 listopada 2016 przez molik Użytkownik (950 p.)
Dokładnie.. Wcześniej zadeklarowane w /nauka/php/test/includes/helpers.inc.php:2

Podobne pytania

0 głosów
1 odpowiedź 77 wizyt
0 głosów
1 odpowiedź 288 wizyt

92,452 zapytań

141,262 odpowiedzi

319,079 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...