Comment appeler une fonction à partir d'un autre fichier de classe en php
J'ai un Response.php fichier qui a une fonction à l'intérieur et je veux appeler la fonction à l'autre .fichier php.
voici l'Response.php
<?php
include 'connection.php';
$response = array();
class Response_Function{
public function fieldMissing() {
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
$response = json_encode($response);
echo $response;
}
}
?>
et c'est le fichier de l'appel de la fieldMissing()
fonction
<?php
include 'connection';
require_once 'include/Response.php';
$db = new Response_Function();
$response = $db->fieldMissing();
echo $response;
?>
- et????????????
- Quel mal y - passe maintenant par rapport à ce que vous souhaitez? Mais je pense que l'intérieur de la définition de fieldMissing (), vous pouvez vouloir
return $response;
au lieu deecho $response;
, parce que c'est la fonction ne retourne rien. Par conséquent, dans le second fichier $réponse aura pas de valeur qui lui est assignée. - que faites-vous ranée et??
- je tiens à appeler l'fieldMissing fonction. comment vais-je l'appeler
- Vous êtes déjà l'appeler!
- mais il n'y a pas de réponse apparaissent ..
- Vérifié pour quelque chose d'intéressant dans les journaux?
Vous devez vous connecter pour publier un commentaire.
Comme BrianDHall dit, dans votre fonction, vous devez remplacer
echo
avecreturn
Vous ne devriez pas écho dans une fonction, utilisez toujours le retour à la place et laisser l'appelant écho partout où il a besoin.
Response.php
fichier de l'appel de la fonction fieldMissing()
Il y a deux problèmes avec votre code:
1) La réponse tableau doit être déclaré à l'INTÉRIEUR de la fonction (si toutefois vous avez besoin d'accéder à partir d'ailleurs dans la classe, de déclarer et de les utiliser comme un attribut de classe à l'INTÉRIEUR de la classe);
2) Comme d'autres l'ont souligné, la dernière instruction de votre fonction doit retourner la valeur au lieu de l'imprimer.
Pour résumer, votre Response.php fichier devrait ressembler à ceci: