Bonjour,
Après avoir suivi l'excellent premier tuto sur la POO, je me suis lancé et j'ai créé une class que j'espère évolutive pour les besoins de mon site. Toutefois, je ne sais pas comment faire pour appeler la fonction d'une class dans une autre fonction de la même class. Voici mon code :
class iptc
{
function idp($file, $iptc)
{
GetImageSize($file, $info);
$v = iptcparse($info["APP13"]);
$idp = $v[$iptc][0];
return $idp;
}
function yyy()
{
idp("img/img01.jpg", '2#005');
}
}
Merci d'avance !
Il vous faudra aussi les passer en paramètre dans la fonction yyy
function yyy($file, $iptc){
return $this->idp($file, $iptc);
}
Bonjour,
Si tu dois appeller une méthode qui ce trouve dans la même class
$this->idp("...", "...");
Si la méthode est static
self::idp("...", "...");
Cela ne fonctionne malheureusement pas avec le code que j'ai communiqué dans ce post. J'ai droit à un plantage de ma page :-(
Oups, non c'est bon, j'ai résolu le pb, enfin pas complètement car je n'obtiens pas le résultat voulu mais je cherche... Merci à toi.
Je ne comprends pas pourquoi la fonction yyy ne fonctionne pas. Peux-tu m'aider ?
Effectivement si tu veux que ta méthode "yyy" retourne le résultat de "idp()" tu dois ajouter un "return" comme dans l'exemple de @Carouge10
Merci de votre réponse, mais cela ne fonctionne toujours pas. Voici le code :
class iptc {
function idp($file, $iptc) {
GetImageSize($file, $info);
$v = iptcparse($info["APP13"]);
$idp = $v[$iptc][0];
return $idp;
}
function yyy()
{
idp($file, $iptc);
return $this->idp;
}
}
$id = ($result->idp('img/img001.jpg', $idp[id]));
$num = substr($id, 9, 8);
$nat = substr($id, 0, 1);
$col = substr($id, 1, 2);
$col2 = substr($id, 3, 2);
$cat = substr($id, 5, 2);
$scat = substr($id, 7, 2);
<?php echo $id;?>
Ce code fonctionne, mais si j'appelle la fonction yyy au lieu de idp, ça ne fonctionne plus. Quelque chose m'échappe, mais quoi ?
Merci.
Faut-il ajouter les variables $file et $iptc, comme ceci :
return $this->idp($file, $iptc);
Je l'ai fait, mais ça n'a rien changé.
Je ne vois pas...
En effet, ça me semble logique et c'est d'ailleurs ce que j'avais fait au début mais sans return. En fait, j'appelais la fonction idp dans ma fonction yyy avec this alors qu'un retour du résultat idp suffit.
Merci à vous !