Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: JJan 03. 01. 2018, 21:40:12

Název: Jak zavolat funkci v proměnné
Přispěvatel: JJan 03. 01. 2018, 21:40:12
Ahoj, dělá tady prosím někdo v PHP?
Mám dva soubory
soubor a.php
Kód: [Vybrat]
$a = function () {
return 'text';
};
soubor b.php
Kód: [Vybrat]
include('a.php');
$array['a'];
foreach ( $array as $value )
{
echo $a (); // tohle funkci nezavolá
unset($a); // a tohle funkci nezruší
}
Můžete mi prosím někdo poradit opravu?
Název: Re:Jak zavolat funkci v proměnné
Přispěvatel: Kit 03. 01. 2018, 22:08:28
Mně to po opravě fatálních chyb funguje normálně

a.php:
Kód: [Vybrat]
<?php
$a 
= function () {
    return 
'text';
};

b.php:
Kód: [Vybrat]
<?php
include 'a.php';
$array = ['a'];
foreach (
$array as $value) {
    echo 
$a();
    unset(
$a);
}
Název: Re:Jak zavolat funkci v proměnné
Přispěvatel: JJan 03. 01. 2018, 22:15:32
Jasně, jelikož jsem ten kód napsal tak jak funguje, oprava
Kód: [Vybrat]
<?php
include 'a.php';
$array = ['a'];
foreach (
$array as $value) {
    echo 
$value();
    unset(
$value);
}
Název: Re:Jak zavolat funkci v proměnné
Přispěvatel: mmm 03. 01. 2018, 22:24:59
Kód: [Vybrat]
include 'a.php';
$array = ['a'];
foreach ($array as $value) {
    echo ${$value}();
    unset(${$value});
}

nebo
Kód: [Vybrat]
include 'a.php';
$array = [$a];
foreach ($array as $value) {
    echo $value();
    unset($value);
}
Název: Re:Jak zavolat funkci v proměnné
Přispěvatel: Kit 03. 01. 2018, 22:25:45
Kód: [Vybrat]
<?php
include 'a.php';
$array = ['a'];
foreach (
$array as $value) {
    
$a = $$value;
    echo 
$a();
}

Ovšem do toho pole bych dal místo stringu raději tu funkci.
Název: Re:Jak zavolat funkci v proměnné
Přispěvatel: Kit 03. 01. 2018, 22:35:09
S funkcí v poli to vypadá přece jen jednodušeji a lépe se s tím pracuje:

Kód: [Vybrat]
<?php
include 'a.php';
$array = [$a];
foreach (
$array as $value) {
    echo 
$value();
}
Název: Re:Jak zavolat funkci v proměnné
Přispěvatel: Hm 03. 01. 2018, 22:35:56
Pretty Home Porn!
Název: Re:Jak zavolat funkci v proměnné
Přispěvatel: JJan 03. 01. 2018, 22:41:17
S funkcí v poli to vypadá přece jen jednodušeji a lépe se s tím pracuje:

Kód: [Vybrat]
<?php
include 'a.php';
$array = [$a];
foreach (
$array as $value) {
    echo 
$value();
}

To include patří samozřejmě do toho cyklu...
Kód: [Vybrat]
<?php
$array 
= ['a'];
foreach (
$array as $value) {
    include 
$value '.php';
    
$a = $$value;
    echo 
$a();
}
Název: Re:Jak zavolat funkci v proměnné
Přispěvatel: Kit 03. 01. 2018, 22:48:35
Už začínám v té zvrácenosti tušit logiku. Nechceš raději přesedlat na OOP? Tam je to vyřešené lépe.