Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Mozna w php5, deklarowac metody poza ciałem klasy ?
Forum PHP.pl > Forum > PHP > Object-oriented programming
Vdeth
No to pytanie jest w temacie.. sciagnołem najnowszego snapshota.. i jakiś bład mi wywala.. :/ .. A robie tak :
[php:1:504fbfa770]<?php
class ble {
var $cos_tam
var $cos_tam2
}


function ble::napisz_cos_tam() // i tu parser php mi znajduje bład sad.gif
{
echo "cos_tam";
}
?>[/php:1:504fbfa770]
To czy można tak ? biggrin.gif . Bo nic nie mogłem znaleźć na php.net i zendzie na temat tego.. a tak przynajmiej sie robi w C++..
Jabol
bo metody muisz deklarować w klasie, a nie na zewnątrz (jak w c++ bodajrze).
Vdeth
Jabol ->
Cytat
(..)a tak przynajmiej sie robi w C++..
biggrin.gif .
Ale jeśli sie nie da to słabo :/ . Zdeklarował bym se w jednym pliku klasy a w reszcze były by metody smile.gif .
Jabol
ups, nie zauważyłem. Możesz to osiągnąć o co ci chodzi za pomocą dziedziczenia. W jednym pliku klase i zmienne a w drugim dorzucasz do tego metody
Vdeth
Jabol -> Mozesz pokazać przykład malutki biggrin.gif . Zaczełem kombinować bo takie coś mi nie działa.. patrz ->

[php:1:0c2d62f228]<?php
plik.php

require("plik1.php");

class obj() {

__construct()
{
return 0;
}

}

plik1.php

class ble extends obj{ // i tu jest parse error, ni ma klasy obj

// ciało klasy

}

?>[/php:1:0c2d62f228]

I nie działa, a wiedziałem że na webcity.pl tak robił... może php5 nie pozwala na takie coś ..?
Jabol
pozwala, ale:
przy definicji klasy nie dajesz (), po prostu class obj { ble ble }
przy definiowaniu metod dajesz function bleble() {bleble}
plik z klasą includujesz odwrotnie (czyli do pliku klasy dziecka includujesz rodzica), a jeżeli nie to musisz zainkludować klasę dziecko *po* zdefiniowaniu klasy rodzica (tak chyba też jest w c++)[php:1:e0376cc6a1]<?php
plik.php

class obj {

function __construct()
{
return 0;
}

}

require("plik1.php");

plik1.php

class ble extends obj{ // i tu nie powinno być parse error

// ciało klasy

}

?>
[/php:1:e0376cc6a1]
Vdeth
ups ten nawias... to przez funkcje biggrin.gif .To wiem :] . Tooo wiem też bo nie przeczytałem kodu biggrin.gif zanim wysałelem ( przeczytaj dwa razy zanim wyślesz :idea:, no i nastepnym razem skopiuje kod zamiast napisze od nowa biggrin.gif :idea: . )
Cytat
czyli do pliku klasy dziecka includujesz rodzica), a jeżeli nie to musisz zainkludować klasę dziecko *po* zdefiniowaniu klasy rodzica

No własnie tak myśłem.. :/.. tyklko że dużo razy trze includować to, robie ten sposób 2 :]. Szkoda że nie działa deklaracja poza klasą biggrin.gif .

edit :
Txz -> it's working biggrin.gif . Ja chce deklaracje poza biggrin.gif
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.