首页 / PHP / php-通过变量访问类静态函数
php-通过变量访问类静态函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-通过变量访问类静态函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1226字,纯文字阅读大概需要2分钟。
内容图文
因此,我有一个名为router的PHP类,它使用URL并将其爆炸以找到所需的组件,操作和任何给定的值.然后,它加载负责的类,运行操作等.我现在通过一个用户类将用户访问权限集成到该类中.
对于每个组件(是一个类),我都有一个名为“ perms”的静态类数组变量,该变量将每个操作作为索引保存,并将数字作为运行该操作所需的最低权限.每个组件还具有一个静态函数,用于获取所传递动作名称的权限值.
我遇到的问题是使静态函数与存储在变量中的类的名称一起正常工作.在路由器中,我使用一个变量来保存组件的名称.
$this->controller // cms, calendar ,etc
然后,将“ Controller”添加到其中以获取类的名称
$class = $this->controller.'Controller'; // cmsController, calendarController, etc
但是,尝试使用静态函数访问静态函数时出现错误
$minActionPerm = $class::getPerms( $this->action ); // No go, parse error
从字面上键入类名称时,我没有收到任何错误,但这不是真正的解决方案.
$minActionPerm = cmsController::getPerms( $this->action ); // Good, but literal
当我创建类的对象以运行操作时,该变量也起作用.
$object = new $class();
我敢肯定这可能只是一个简单的答案-例如变量使用,但这是我目前不知道的答案.
解决方法:
您需要使用call_user_func功能.
例:
call_user_func(array($class, 'getPerms'), $this->action);
如果您使用的是PHP 5.2.3,也可以通过以下方式进行操作:
call_user_func($class . '::getPerms', $this->action);
内容总结
以上是互联网集市为您收集整理的php-通过变量访问类静态函数全部内容,希望文章能够帮你解决php-通过变量访问类静态函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。