Veuillez me parler de l'erreur de méthode non statique dans différents environnements PHP.
虎威
虎威 2018-03-27 11:27:47
0
2
4258
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

虎威
虎威

répondre à tous(1)
虎威

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 $obj = nouvelle commande ; $obj-&gt;appel(); Essayez de l'appeler comme ça
    好人二狗 auteur 2018-03-29 12:24:01
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal