Heim >Backend-Entwicklung >PHP-Tutorial >PHP: PHP verwendet ein Array, um eine Methode in einer Klasse aufzurufen, und es tritt ein Fehler auf

PHP: PHP verwendet ein Array, um eine Methode in einer Klasse aufzurufen, und es tritt ein Fehler auf

WBOY
WBOYOriginal
2016-12-05 13:27:211150Durchsuche

php

/**

  • Sitzung aktivieren/session_start();/*
  • Initialisierungsdatei einschließen/include_once '../../../sys/ config/db-cred.inc.php';/*
  • Konstanten für Konfigurationsinformationen definieren/foreach ( $C as $name => $val ) {define($name, $val);}/*

  • Generieren Sie ein assoziatives Array mit Formularaktion als Schlüssel
    */
    $actions = array(
    'event_edit' => array(
    'object' => 'Calendar',
    'method' => 'processForm',
    'header' => 'Location:../../'

    'user_login' => array(

    'object' => 'Admin',
    'method' => 'processLoginForm',
    'header' => 'Location:../. . /'
    )
    );
    /**

  • Stellen Sie sicher, dass das Anti-Cross-Site-Tag in der Sitzung mit dem übermittelten Tag übereinstimmt und dass die angeforderte Aktion legal ist

    */
    if ( $_POST['token']==$_SESSION['token'] &&
    isset( $ actions[$_POST['action']]) ) {
    $use_array = $actions[$_POST['action']];
    $obj = new $use_array'object';

    <code>if ( true == $msg=$obj->$use_array['method']() ) {    header($use_array['header']);    exit;} else {    die( $msg );}</code>
    } else {

    //Wenn das Token/die Aktion illegal ist, leiten Sie zur Startseite weiter
    header("Location:../../");
    exit;
    }

  • function __autoload($class) {

    <code>$filename = "../../../sys/class/class.".$class.".inc.php";if ( file_exists($filename) ) {    include_once $filename;}</code>
    }

    Das Hauptproblem ist folgendes: $obj->$use_array'method'

    Sobald Sie diesen Schritt erreicht haben, muss der Funktionsname eine Zeichenfolge in E:qampphtdocsSource Filespublicassetsincprocess.inc.php:40 sein. Stack-Trace: #0 {main} wird in E:qampphtdocsSource Filespublicassetsincprocess.inc.php in Zeile 40 geworfen Es erscheint ein Fehler.

    Wenn Sie $obj verwenden, um die Methode „processForm()“ oder „processLoginForm()“ in dieser Klasse direkt aufzurufen, können Sie dies tun.

    Bitte Gott um Hilfe.

Antwortinhalt:

http://blog.sina.com.cn/s/blog_8d7518cb0100zk1t.html

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn