Portál AbcLinuxu, 6. května 2025 20:34

Dotaz: PHP - Jak na return ve funkci

5.3.2015 00:08 Kolemjdouci
PHP - Jak na return ve funkci
Přečteno: 432×
Odpovědět | Admin
Ahoj. Mám takovou funkci.
private function inc($a, $b){
 return 'test';
}
Potřebuji poradit, jak udělat return a include aby to fungovalo.
private function inc($a, $b){
 return include '/my/dir/filename.php';
}
Pomůže ,mě prosím někdo? Děkuji.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.3.2015 00:22 Kolemjdouci
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžu to udělat takto?
private function inc($a, $b){
 return include '/my/dir/filename.php';
}
A v souboru /my/dir/filename.php
return 'test'
Má to na něco vliv? Zpomalení, více paměti atd.. ? Děkuji
5.3.2015 14:05 Ivo
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Na co je to dobre?

Preco nie toto?

private function inc($a, $b){

return file_get_contents ( '/my/dir/filename.php' );

}
Josef Kufner avatar 6.3.2015 16:34 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Protože to dělá něco úplně jiného.
Hello world ! Segmentation fault (core dumped)
6.3.2015 07:05 soyo
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Zdar, na moje prekvapenie to funguje, ale nespoliehal by som sa, ze takato konstrukcia bude podporovana v kazdej verzii php.

Co sa tyka casu, tak ak je kod v inom subore, bude sa musiet includovat v kazdom pripade. Na toto je najlepsi prakticky test, ktory to zavola napr. 1000x.

Z pohladu citatenosti a pripadne vyuzivania takehoto postupu v inych jazykoch je to mizerne. Ak by sa jednalo o pripad, kedy sa bude nazov includovaneho skriptu dynamicky menit podla parametrov alebo kontextu, tak by bolo fajn siahnut na strategy pattern: PHP-Design-Patterns/Strategy

Pekny den.
Josef Kufner avatar 6.3.2015 16:36 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Je to dokumentované chování, takže to jen tak náhodou nezmizí.
Hello world ! Segmentation fault (core dumped)
9.3.2015 12:20 Kolemjdouci
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chlapy a konečný verdikt je tedy jaký ? Úplně jsem se v tom ztratil :(
Tarmaq avatar 9.3.2015 12:36 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Konecny verdikt je, ze to pouzit muzes, vsak to je Josef Kufner i dolozil odkazem na oficialni dokumentaci.. Nenapsal jsi co te k tomuto reseni vede (rozdeleni do dvou souboru), takze tezko hadat zda je to reseni v tvoji situaci vhodne..
Don't panic!
9.3.2015 12:50 Kolemjdouci
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
To řešení jsem psal já ale nikfo mi neodpověděl jestli je to dobře. K tomuto řešení mě vede pouze ta skutečnost, že velké metody/funkce jsou pro mě velmi nepřehledné a proto jsem je chtěl ukládat do samostatných souborů. Děkuji
9.3.2015 13:36 Mige_Amour | skóre: 12 | Benešov
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Nebylo by tedy rozumnější:

fce.php
<?php

function fce($a, $b) {
    ...
    return $something;
}
other.php
<?php

require 'fce.php';

fce('foo', 'bar');
Tarmaq avatar 9.3.2015 16:32 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Nikdo ti sice neodpovedel, ale ta tvoje odpoved byla oznacena jako reseni. Jinak samozrejme muzes pouzit i reseni od Mige Amour, tedy mit v tech souborech funkce a po includnuti je volat.

Jinak jestli je opravdu jedinym problemem neprehlednost, doporucuju pouzivat takovy textovy editor, ktery umoznuje tzv. folding, tedy skryti urcitych bloku.
Don't panic!
Josef Kufner avatar 9.3.2015 22:56 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Pak na to jdeš zcela špatně. Správná cesta je přes třídy a autoloader.
Hello world ! Segmentation fault (core dumped)
9.3.2015 12:54 Kolemjdouci
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jinak k té dokumentaci, našel jsem jen tohle
a.php
include("b.php");
echo "a";


b.php
echo "b";
return;
ale já echo nepoužívám v celém systému, až v konečné šabloně.
Tarmaq avatar 9.3.2015 16:28 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: PHP - Jak na return ve funkci
Vzdyt se tam pise:
If called from the global scope, then execution of the current script file is ended. If the current script file was included or required, then control is passed back to the calling file. Furthermore, if the current script file was included, then the value given to return will be returned as the value of the include call.
Don't panic!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.