![]() |
![]() |
-Gość- |
![]()
Post
#1
|
Goście ![]() |
Dlaczego konstrukcja taka:
Kod <?php include "klasa_a.php"; $a= new A(); $a= new A(); ?> klasa_a.php Kod <?php class A { function __construct() { include "klasa_b.php"; $b= new b(); } } ?> wywala błąd PHP Fatal error: Cannot redeclare class b a konstrukcje Kod <?php include "klasa_a.php"; $a= new A(); $a= new A(); ?> klasa_a.php Kod <?php class A { function __construct() { } } ?> i Kod <?php include "klasa_a.php"; $a= new A(); ?> klasa_a.php Kod <?php class A { function __construct() { include "klasa_b.php"; $b= new b(); } } ?> działa poprawnie ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 8 Dołączył: 20.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Bo plik klasa_b zostaje dwa razy zaincludowany. Include może includować dany plik wiele razy, dlatego dostajesz błąd, że chcesz ponownie zadeklarować klasę B. Jeśli już musisz (dlaczego ?) includować w konstruktorze, to użyj include_once.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 07:53 |