Voir le code d'une fonction

Résolu
math_b67 Messages postés 529 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 1 juin 2021 - Modifié par math_b67 le 18/11/2013 à 12:03
math_b67 Messages postés 529 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 1 juin 2021 - 20 nov. 2013 à 14:23
Bonjour,

Je ne sais pas si c'est possible, mais je souhaiterai voir le code qui se trouve dans une fonction PHP.
Par exemple, au lieu d'utiliser les fonctions "decbin" ou "bindec" pour convertir du décimal en binaire et inversement, je voudrais voir l'intérieur de la fonction pour la reproduire manuscritement.

Je vous remercie d'avance.

Mathieu

2 réponses

cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
19 nov. 2013 à 17:59
Bonjour,

Tu sembles chercher les sources d'un interpréteur php.
En voici un : https://github.com/php/php-src
Cet interpréteur est écrit en C. Ça ne risque pas de t'aider beaucoup.

Les fonctions bindec et decbin sont dans math.c


/* {{{ proto int bindec(string binary_number)
Returns the decimal equivalent of the binary number */
PHP_FUNCTION(bindec)
{
zval **arg;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &arg) == FAILURE) {
return;
}
convert_to_string_ex(arg);
if (_php_math_basetozval(*arg, 2, return_value) == FAILURE) {
RETURN_FALSE;
}
}


/* {{{ proto string decbin(int decimal_number)
Returns a string containing a binary representation of the number */
PHP_FUNCTION(decbin)
{
zval **arg;
char *result;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &arg) == FAILURE) {
return;
}
convert_to_long_ex(arg);
result = _php_math_longtobase(*arg, 2);
RETURN_STRING(result, 0);
}

--
1
math_b67 Messages postés 529 Date d'inscription dimanche 5 octobre 2008 Statut Membre Dernière intervention 1 juin 2021
20 nov. 2013 à 14:23
Hahah, en effet ça ne m'aide pas beaucoup, je pensais trouver l'algorithme complet en PHP, je ne savais pas que les fonctions étaient codées en C, j'aurais au moins appris cela :)

Merci
0
Rejoignez-nous