我API_Widgets
在使用魔法__call
函数创建在 WordPress 中调用的类时遇到问题。如果我简单地将文件重命名为derp.php
并将类重命名为,API_Derp
那么它可以正常工作。
下面的例子已经去掉了对这个问题不重要的所有东西(所以如果除了第三个代码块中指定的特定致命错误之外还有任何错误,请忽略它)。
请记住,我知道core.php
orAPI
类的__call
工作,因为重命名widgets.php
或调用另一个类就可以了。
核心.php:
class API {
function __call( $method, $args ) {
$rmethod = "API_{$method}";
if ( !class_exists( $rmethod ) ) {
$lmethod = strtolower( $method );
require_once( "{$lmethod}.php" );
}
return new $rmethod( $args );
}
}
小部件.php:
class API_Widgets {
private $widgets = array();
function Add( $widgets ) {
if ( is_array( $widgets ) ) {
foreach ( $widgets as $widget ) {
if ( !in_array( $widget, $this->widgets ) )
$this->widgets[] = $widget;
}
} else
$this->widgets[] = $widgets;
}
}
api.php:
$api = new API();
$widgets = $api->Widgets(); // Fatal error: Class 'API_Widgets' not found in /home4/goldencr/public_html/wp-content/plugins/minecraft-api/api/core.php on line 25
//$widgets->Add( 'some_widget' );