php5.2.17 では正常に動作しますが、
php5.4 以降ではエラーが発生します。
ソースコードは次のとおりです:
入口 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(' Access-Control-Allow-Methods:POST');
header('Access-Control-Allow-Headers:x-requested-with,content-type');
echo json_encode( $ret);
?>
##Commadn.php ドキュメント:
< ?php
require dirname(__FILE__) . '/service.inc.php';class コマンド{ Public function call($params){ $ result = self::callMethod(*************); return $result; } private function callMethod(** *){
$ret[] =1; *** } return $result;}
service.inc. php document
<?phpdefine("WG_SERVER_BASE",dirname(__FILE__) . "/");if (isset($GLOBALS[' includefiles'.__FILE__])){
return;}else{ $GLOBALS['includefiles'.__FILE__]= true;
function __autoload($class_name) {
//ファイルが存在するかどうかを判断します
if(strpos($class_name,"Service")!==false) {
$fileUrl = WG_SERVER_BASE. 'service/'.$class_name.'.php';
}else if(strpos($class_name,"API")!==false){
. 'api/'.PLATFORM_TYPE."/".$class_name.'.php';
}else if(strpos($class_name,"Data")!==false){
} $fileUrl = WG_SERVER_BASE. 'data/'.$class_name.'.php';
} Else {
$ fileurl = wg_server_base. $ Class_name. '.'. ){
require $fileUrl;
}
}
date_default_timezone_set('Etc/GMT-8');
}
PH 環境 5.4 以降ではエラーが報告されますが、5.2 ではエラーが報告されます。 PHP5.2~5.6環境にエラーなく互換させるにはどうすればよいでしょうか? ? ? 、エラー コード: 厳格な標準: 非静的メソッド Command::call() で静的に呼び出すべきではありません ***/Gateway.php の 13 行目厳格な標準: call_user_func_array() が期待するもの パラメータ 1 は有効なコールバック、非静的メソッドである必要があります ******** は ***********
警告: 変更できませんヘッダー情報 - ヘッダー によってすでに送信されました (出力は に開始されました) **********Command.php:62) 内 *************\Gateway.php 16 行目
補足質問: 5.2〜5.6と互換性がない場合、5.2環境で正常に実行できる上記のコードを5.4以降で実行できるように変換する方法を教えてください。