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
Freigeben: 2023-03-02 22:16:01
Original
1170 Leute haben es durchsucht

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>
    Nach dem Login kopieren
    } 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>
    Nach dem Login kopieren
    }

    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

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage