PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-通过变量访问类静态函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

因此,我有一个名为router的PHP类,它使用URL并将其爆炸以找到所需的组件,操作和任何给定的值.然后,它加载负责的类,运行操作等.我现在通过一个用户类将用户访问权限集成到该类中.@H_404_1@

对于每个组件(是一个类),我都有一个名为“ perms”的静态类数组变量,该变量将每个操作作为索引保存,并将数字作为运行该操作所需的最低权限.每个组件还具有一个静态函数,用于获取所传递动作名称的权限值.@H_404_1@

我遇到的问题是使静态函数与存储在变量中的类的名称一起正常工作.在路由器中,我使用一个变量来保存组件的名称.@H_404_1@

@H_404_1@

$this->controller // cms, calendar ,etc

然后,将“ Controller”添加到其中以获取类的名称@H_404_1@

@H_404_1@

$class = $this->controller.'Controller'; // cmsController, calendarController, etc

但是,尝试使用静态函数访问静态函数时出现错误@H_404_1@

@H_404_1@

$minActionPerm = $class::getPerms( $this->action ); // No go, parse error

从字面上键入类名称时,我没有收到任何错误,但这不是真正的解决方案.@H_404_1@

@H_404_1@

$minActionPerm = cmsController::getPerms( $this->action ); // Good, but literal

当我创建类的对象以运行操作时,该变量也起作用.@H_404_1@

@H_404_1@

$object = new $class();

我敢肯定这可能只是一个简单的答案-例如变量使用,但这是我目前不知道的答案.@H_404_1@

解决方法:@H_404_1@

您需要使用call_user_func功能.@H_404_1@

例:@H_404_1@

@H_404_1@

call_user_func(array($class, 'getPerms'), $this->action);

如果您使用的是PHP 5.2.3,也可以通过以下方式进行操作:@H_404_1@

@H_404_1@

call_user_func($class . '::getPerms', $this->action);

大佬总结

以上是大佬教程为你收集整理的php-通过变量访问类静态函数全部内容,希望文章能够帮你解决php-通过变量访问类静态函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: