Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]instancja klasy w klasie
-Gość-
post
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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
michalg
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 07:53