Maison  >  Questions et réponses  >  le corps du texte

Veuillez me parler de l'erreur de méthode non statique dans différents environnements PHP.

Le code s'exécute normalement sous

php5.2.17, mais une erreur se produit lorsque

php5.4 et supérieur.

Le code source est le suivant :

Document Entry Gateway.php :

<?php require dirname(__FILE__) '/Command.php';

$d=$_POST['data'] ;

if (get_magic_quotes_gpc()){

$d=stripslashes($d);

}

$param = json_decode($d);

$ret = Command::call($param);


header('content-type:application:json;charset=utf8');

header('Access-Control-Allow-Origin:*');

header('Access-Control-Allow- Méthodes : POST' );

header('Access-Control-Allow-Headers:x-requested-with,content-type');

echo json_encode($ret);

?>


Documentation Commadn.php :

<?php

require dirname(__FILE__) '/service.inc.php';

class Command{

appel de fonction publique ($params){

$result = self::callMethod (*********);

                                                                                ’          ’       ’’ {

        $result=call_user_func_array(Array($classStr,$funcStr),$params);

                                                                                          

$ret [ ] = 1;

          $ret[] = $result;                                                                                                                                                                                                                                             result;

}

service.inc.php document

<?php

define("WG_SERVER_BASE",dirname(__FILE__) . "/ ");

if (isset($GLOBALS) ['includefiles'.__FILE__])){

return;

}else{

$GLOBALS['includefiles'.__FILE__]=true;

function __autoload($class_name) {

} //Déterminer si le fichier existe                                                                                                                                "API")!==false){

                    $fileUrl = 'api/'.PLATFORM_TYPE."/".$class_name. '.php';

           }else if(strpos($class_name,"Data")!==false){

                                                                                                                                                                      $fileUrl = WG_SERVER_BASE.$class_name.'.php';

}

if(file_exists($fileUrl)) {

} require $fileUrl;

}

} _default_timezone_set('Etc/GMT-8') ;

}

Une erreur est signalée dans l'environnement PH 5.4 et supérieur, mais normale dans 5.2. Veuillez me le dire. comment être compatible avec l'environnement PHP 5.2--5.6 sans erreurs ? ? ? , code d'erreur :

Normes strictes : méthode non statique Command::call() ne doit pas être appelé de manière statique dans ***/Gateway.php en ligne 13

Normes strictes : call_user_func_array() attend le paramètre 1 doit être une méthode de rappel valide et non statique ******** ne doit pas être appelé de manière statique dans *************


Attention : Impossible de modifier les informations d'en-tête - en-têtes déjà envoyé par (sortie commencée à **********Command.php:62) dans *************Gateway.php en ligne 16

虎威虎威2421 Il y a quelques jours4174

répondre à tous(2)je répondrai

  • 虎威

    虎威2018-03-27 11:36:28

    Question supplémentaire : s'il n'est pas compatible avec 5.2--5.6, alors dites-moi comment transformer le code ci-dessus qui peut s'exécuter normalement dans l'environnement 5.2 pour qu'il soit exécutable en 5.4 ou supérieur ?

    répondre
    0
  • 好人二狗

    $obj = nouvelle commande ; $obj->appel(); Essayez de l'appeler comme ça

    好人二狗 · 2018-03-29 12:24:01
  • Annulerrépondre