当前位置: 首页 > 面试题库 >

PHP中的动态静态方法调用?

许俊雅
2023-03-14
问题内容

请具有PHP经验的人提供以下帮助。在我的代码中的某个地方,我调用了一个非实例化类中的公共静态方法:

$result = myClassName::myFunctionName();

但是,我希望有许多这样的类,并根据用户的语言即时确定正确的类名称。换句话说,我有:

$language = 'EN';

…,我需要做类似的事情:

$result = myClassName_EN::myFunctionName();

我知道我可以将语言作为参数传递给函数,并在一个通用类中处理它,但是由于种种原因,我希望使用其他解决方案。

有人吗?谢谢。


问题答案:

使用call_user_func函数:

http://php.net/manual/zh/function.call-user-
func.php

例:

call_user_func('myClassName_' . $language . '::myFunctionName');


 类似资料:
  • 问题内容: 尝试在静态类中调用非静态方法时遇到错误。 无法从类型播放中静态引用非静态方法methodName() 我不能使该方法静态,因为这也给我一个错误。 此静态方法无法从xInterface隐藏实例方法 有什么办法可以在另一个静态方法中轮回调用非静态方法?(这两种方法位于单独的包和单独的类中)。 问题答案: 从静态方法中调用非静态方法的唯一方法是使类的实例包含非静态方法。根据定义,非静态方法是

  • 本文向大家介绍浅谈PHP中静态方法和非静态方法的相互调用,包括了浅谈PHP中静态方法和非静态方法的相互调用的使用技巧和注意事项,需要的朋友参考一下 在PHP的非静态方法中可以调用静态方法 上面的代码会输出: this is strPrint static function. 而下面的代码会直接挂掉,php直接给出fatal error: Fatal error: Using $this when

  • 问题内容: 有没有一种方法可以在PHP的同一类中动态调用方法?我的语法不正确,但是我正在寻找类似的方法: 问题答案: 有多种方法可以做到这一点: 您甚至可以使用反射API http://php.net/manual/en/class.reflection.php

  • 我想知道是否有一种方法来验证和调用一个模拟,该模拟是为一个私有静态方法创建的,该私有静态方法是从一个被测试的公共静态方法调用的。 下面是我正在测试的公共静态方法 我已经使用powermokito对私有静态方法进行了如下嘲弄:

  • 本文向大家介绍php面向对象中static静态属性和静态方法的调用,包括了php面向对象中static静态属性和静态方法的调用的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php中static静态属性和静态方法的调用。分享给大家供大家参考。具体如下: 这里分析了php面向对象中static静态属性和静态方法的调用。关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置

  • 我最近对 PHP 5.4 进行了更新,但收到有关静态和非静态代码的错误。 这是错误: 这是第371行: 我希望有人能帮忙。