>백엔드 개발 >PHP 튜토리얼 >php- PHP가 배열을 사용하여 클래스의 메서드를 호출하면 오류가 발생합니다.

php- PHP가 배열을 사용하여 클래스의 메서드를 호출하면 오류가 발생합니다.

WBOY
WBOY원래의
2016-12-05 13:27:211171검색

php

/**

  • 세션 활성화/session_start();/*
  • 초기화 파일 포함/include_once '../../../sys/ config/db-cred.inc.php';/*
  • 구성 정보에 대한 상수 정의/foreach ( $C as $name => $val ) {define($name, $val);}/*

  • 폼 액션을 키로 사용하여 연관 배열 생성
    */
    $actions = array(
    'event_edit' => array(
    '객체' => '캘린더',
    '방법' => 'processForm',
    '헤더' => '위치:../../'
    ),

    'user_login' => array(
    'object' => 'Admin',
    'method' => 'processLoginForm',
    'header' => '위치:../. /'
    )
    );
    /**

  • 세션의 교차 사이트 방지 태그가 제출된 태그와 일치하고 요청된 작업이 합법적인지 확인하세요
    */
    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 {
    //토큰/액션이 불법인 경우 홈페이지로 리디렉션
    header("Location:../../");
    exit;
    }

  • function __autoload($class) {

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

    }

    주요 문제는 다음과 같습니다. $obj->$use_array'method'
    이 단계에 도달하자마자 함수 이름은 E:qampphtdocsSource Filespublicassetsincprocess.inc.php:40의 문자열이어야 합니다. 스택 추적: #0 {main} throw in E:qampphtdocsSource Filespublicassetsincprocess.inc.php on line 40 오류가 나타납니다.

    $obj를 사용하여 이 클래스의 processForm() 또는 processLoginForm() 메서드를 직접 호출할 수 있습니다.
    하나님께 도움을 구하세요.

답글 내용:

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.