Fonction appelle Fonction

PHaPio
Invité n'ayant pas de compte PHPfrance

02 oct. 2019, 15:25

Bonjour,

Est-il possible d'utiliser une fonction qui permet d'appeller d'autres fonctions et d'afficher le résultat de plusieurs d'entre elles?

Code : Tout sélectionner

public function versChaine() { echo 'Nom:' , $this->getNom(), ' ID : ', $this->getId(), 'Nuit : ', $this->getNuit(), 'Jour : ', $this->getJour(); }
L'idée est là, mais pas le résultat :D
Devrais-je déclarer ma fonction Chaine avant ? ou lui créer une variable rien que pour elle ??

Mammouth du PHP | 2703 Messages

02 oct. 2019, 15:41

c'est possible.

que se passe-t-il exactement lors de l'appel de cette fonction ? vu que le code me parait correct.

PHaPio
Invité n'ayant pas de compte PHPfrance

02 oct. 2019, 15:44

Fatal error: Uncaught Error: Call to undefined function versChaine()
Il n'a pas l'air de connaitre la fonction

Mammouth du PHP | 2703 Messages

02 oct. 2019, 16:01

il nous manque le code l'appel de cette fonction.

PHaPio
Invité n'ayant pas de compte PHPfrance

02 oct. 2019, 16:10

Ah, il me le manque aussi je pense ..

( Je fais quelques tests/ découvertes, je suis totallement newbie )


J'ai fais un

Code : Tout sélectionner

versChaine();
A la fin de mon code pour appeller la fonction

Code : Tout sélectionner

public function versChaine() { echo 'Nom:' , $this->getNom(), ' ID : ', $this->getId(), 'Nuit : ', $this->getNuit(), 'Jour : ', $this->getJour(); }

Mammouth du PHP | 2703 Messages

02 oct. 2019, 16:16

il faudrait le code complet.

PHaPio
Invité n'ayant pas de compte PHPfrance

02 oct. 2019, 16:24

Code : Tout sélectionner

<?PHP class Bateau { private $_idBat; private $_nomBat; private $_longueurBat; // Debut de la class bateau + variables en private private $_largeurBat; public function __construct($unId, $unNom, $uneLongueur, $uneLargeur) //Constructeur // Le constructeur qui va permettre de créer des instances de classe { $this->setId($unId); //Initialisation de l'Id //Le nouveau bateau(this) va affecter la valeur ID à la propriété $this->setNom($unNom); //Initialisation du nom $this->setLongueur($uneLongueur); //Initialisation de la Longueur $this->setLargeur($uneLargeur); //Initialisation de la Largeur } public function setId($unId) //Mutateur qui modifie l'attribut _idBat //Fonction setId parametre unId { $this->_idBat = $unId; // La variable de départ prends la valeur de celle du constructeur } public function setNom($unNom) //Mutateur qui modifie l'attribut _nomBat { $this->_nomBat = $unNom; } public function setLongueur($uneLongueur) //Mutateur qui modifie l'attribut _longueurBat { $this->_longueurBat = $uneLongueur; } public function setLargeur($uneLargeur) //Mutateur qui modifie l'attribut _largeurBat { $this->_largeurBat = $uneLargeur; } public function setVersChaine() { } public function getId() //fonction getID récupère la variable et définit la nouvelle valeur pour le bateau crée { return $this->_idBat; } public function getNom() { return $this->_nomBat; } public function getLongueur() { return $this->_longueurBat; } public function getLargeur() { return $this->_largeurBat; } public function versChaine() { echo 'Nom du bateau :' , $this->getNom(), ' ID : ', $this->getId(), 'Longueur : ', $this->getLongueur(), 'Largeur : ', $this->getLargeur(); } } // fin de la Classe Bateau $bateau1 = new Bateau(2,'Batoto',150,47); // je créer mon premier objet $bateau2 = new Bateau(5,'titanic',100,200); versChaine($bateau1); ?>

Mammouth du PHP | 2703 Messages

02 oct. 2019, 16:27

le message d'erreur est logique, il n'existe pas de fonction versChaine() dans ce code.
la fonction de classe versChaine ne prend pas de paramètre.

PHaPio
Invité n'ayant pas de compte PHPfrance

02 oct. 2019, 16:38

Ducoup je dois créer une nouvelle variable ? ( Je dirais peut être )
La fonction VersChaine doit être dans le constructeur ? ( Je pense que non )

Ou alors créer une fonction en dehors du constructeur qui ressemblerai à ça ?

Code : Tout sélectionner

public function setVersChaine($VersLaChaine) //$VersLaChaine étant une nouvelle variable { $this->_VersChaine = $unId; }

Mammouth du PHP | 2703 Messages

02 oct. 2019, 16:41

relis ton cours de programmation objet ou l'exemple dont tu t'inspires.

PHaPio
Invité n'ayant pas de compte PHPfrance

02 oct. 2019, 17:06

Selon mon cours, la fonction retourne une variable

Code : Tout sélectionner

<?php function name_fonction ($params1, $params2, $params3, ... , $paramsN) { // code de la fonction return ($une_variable) } ?>
Alors est il possible de faire un :

return ($this->getNom,$this->getID...) ??

Mammouth du PHP | 2703 Messages

02 oct. 2019, 17:10

oui, mais ta classe est bien codée, c'est dans
$bateau1 = new Bateau(2,'Batoto',150,47); // je créer mon premier objet
$bateau2 = new Bateau(5,'titanic',100,200);
versChaine($bateau1);

qu'il y a un problème. il faut donc relire un cours de programmation objet pour savoir comment utilisé un objet une fois qu'il a été créé.

PHaPio
Invité n'ayant pas de compte PHPfrance

02 oct. 2019, 17:14

Ok merci pour les conseils , je vais voir ce que je peux faire :)


Et pour le :

Code : Tout sélectionner

versChaine($bateau1);
C'etait un test, il est actuellement sous cette forme :

Code : Tout sélectionner

versChaine();