dongliao6491
2013-07-23 11:02
浏览 61
已采纳

PHP OOP:使用字符串作为别名的标识符

I have a class somewhere in some namespace. Say:

namespace space;
class MyClass(){}

What i want to do is to create an alias for this class without extending etc. Oherenly thing I have is a string which contains class name. What I would like to do is:

$className='MyClass';
use '\space\'.$className as 'space_'.$classname;

Is it possible somehow? Because "use" keyword expects class identifier's literal string token (expecting identifier (T_STRING)) and usual approach, like with variables (say, call function named in a variable by simply calling $functionName()), as described, for example, here, doesn't help.

UPD: Using eval doesn't work for that, of course.

图片转代码服务由CSDN问答提供 功能建议

我在某个命名空间的某处有一个类。 说:

 命名空间空间; 
class MyClass(){} 
   
 
 

我想做的是 为此类创建一个别名而不扩展等。我所拥有的是一个包含类名的字符串。 我想做的是:

  $ className ='MyClass'; 
use'\ space \'。$ className as'space _'。$ classname; 
 <  / code>  
 
 

有可能以某种方式吗? 因为“use”关键字需要类标识符的文字字符串标记(期望标识符(T_STRING))和通常的方法,例如变量(例如,通过简单地调用$ functionName()在变量中命名的调用函数),例如,< a href =“https://stackoverflow.com/questions/4578335/creating-php-class-instance-with-a-string”>这里没有帮助。

UPD:当然,使用eval不起作用。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • doudaifu6083 2013-07-23 11:14
    已采纳

    So it seems you are looking for class_alias

    class_alias('space\MyClass', 'space_MyClass');
    
    评论
    解决 无用
    打赏 举报
  • 查看更多回答(2条)

相关推荐 更多相似问题