Jak zavolat funkci v proměnné

JJan

Jak zavolat funkci v proměnné
« kdy: 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?


Kit

Re:Jak zavolat funkci v proměnné
« Odpověď #1 kdy: 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);
}

JJan

Re:Jak zavolat funkci v proměnné
« Odpověď #2 kdy: 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);
}

mmm

Re:Jak zavolat funkci v proměnné
« Odpověď #3 kdy: 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);
}

Kit

Re:Jak zavolat funkci v proměnné
« Odpověď #4 kdy: 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.


Kit

Re:Jak zavolat funkci v proměnné
« Odpověď #5 kdy: 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();
}

Hm

Re:Jak zavolat funkci v proměnné
« Odpověď #6 kdy: 03. 01. 2018, 22:35:56 »
Pretty Home Porn!

JJan

Re:Jak zavolat funkci v proměnné
« Odpověď #7 kdy: 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();
}

Kit

Re:Jak zavolat funkci v proměnné
« Odpověď #8 kdy: 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.