Rumah  >  Soal Jawab  >  teks badan

Sila beritahu saya tentang ralat kaedah Bukan statik dalam persekitaran PHP yang berbeza.

Kod berjalan seperti biasa di bawah

php5.2.17, tetapi ralat berlaku apabila

php5.4 dan ke atas.

Kod sumber adalah seperti berikut:

Entrance Gateway.php dokumen:

<?php memerlukan 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- Kaedah:POST' );

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

echo json_encode($ret);

?>


Commadn.php Dokumentasi:

<?php

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

class Command{

panggilan fungsi pulibik($params){. diri::callMethod (*********);

                                                                                                                                                                      ’’ {

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


                                                                                          

$ret [ ] = 1;

          $ret[] = $hasil;                                                                                                                                                                                                                                                                                                                                                           hasil;

}

service.inc.php document

<?php

define("WG"__name __.__name_B" ");

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

return;

} else{

$GLOBALS['includefiles'.__

FILE'.__

function __autoload($class_name) {

} //Tentukan sama ada fail itu wujud

                                                                                            ' '.php';

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

$ fileUrl = wg_server_base. $ Class_name. '. {

} memerlukan $fileUrl;

}

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

}

Ralat dilaporkan dalam persekitaran PH 5.4 dan ke atas bagaimana untuk serasi dengan persekitaran PHP 5.2--5.6 tanpa ralat? ? ? , kod ralat:

Standard ketat: Kaedah bukan statik Perintah::call() tidak boleh dipanggil secara statik ***/Gateway.php pada talian 13

Standard ketat: call_user_func_array() menjangka parameter 1 menjadi kaedah panggil balik yang sah, bukan statik ******** tidak boleh dipanggil secara statik dalam *************

Amaran: Tidak boleh mengubah suai maklumat pengepala - pengepala sudah dihantar oleh (output bermula pada **********Command.php:62) dalam *************Gateway.php pada talian 16


虎威虎威2370 hari yang lalu4124

membalas semua(2)saya akan balas

  • 虎威

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

    Soalan tambahan: Jika ia tidak serasi dengan 5.2--5.6, sila beritahu saya cara mengubah kod di atas yang boleh dijalankan secara normal dalam persekitaran 5.2 untuk boleh dilaksanakan dalam 5.4 atau ke atas?

    balas
    0
  • 好人二狗

    $obj = Perintah baru; $obj->panggilan(); Cuba panggil seperti ini

    好人二狗 · 2018-03-29 12:24:01
  • Batalbalas