Affecter une fonction à une variable

[Résolu]
Signaler
Messages postés
260
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
5 novembre 2010
-
Messages postés
260
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
5 novembre 2010
-
Salut à tous.

Un problème se pose à moi et j'aurais besoin de vous pour trouver une petite idée.

Je dois faire un calcul avec une formule qui sort d'une base de donnée. (genre : $total=row[1]; avec $row[1] qui est le résultat d'une requete(ma formule)). Jusque là, pas de problème.

Mais dans certains cas, je souhaiterais avoir des conditions dans ma formule. Et là, problème.

'$total=' est dans mon code donc impossible d'y toucher. Il faudrait donc que je puisse avoir quelque chose du genre
$total= if($a=1){ return 42;};
ou
$total= function p(){ return 42;};

Mais rien de tout ça ne marche.

Quelqu'un aurait un idée?
Jespère que j'ai été assez clair...

Merci d'avance

<hr />
lowkey

4 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

Dans ce cas, c'est pas une fonction que tu veux exécuter, mais du code php.
http://fr2.php.net/manual/fr/function.eval.php

:o))
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

Je pense que cette fonction va te plaire ;)
http://fr2.php.net/manual/fr/function.create-function.php
Messages postés
260
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
5 novembre 2010
1
Salut!!

En effet, cette fonction me plait, mais elle ne répond pas vraiment à mes attentes...

J'ai lu la doc et a aucun moment (j'ai pu louper le passage) je n'ai vu qu'il était possible d'avoir quelque chose du genre :
$total=create_function('', 'return 14;');

D'après ce que j'ai vu, on est obligé d'initialiser la fonction et d'y faire appel. Or comme je l'ai mis précedement, je souhaiterais quelque chose du genre :
$total= if($a=1){ return 42;};
ou
$total= function p(){ return 42;};

En simplifié, je voudrais que tout se face en une ligne de code (excepté l'affichage).

Si quelqu'un a une autre idée ou si j'ai loupé quelque chose avec cette fonction, je suis toujours preneur.

<hr />
lowkey
Messages postés
260
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
5 novembre 2010
1
Merci neigedhiver !!

Deuxième fois que tu m'aide grâce à cette fonction. Je vais aller lire sa doc complète.

<hr />
lowkey