`

php 5.3中的类的别名的用法

    博客分类:
  • PHP
PHP 
阅读更多
  在PHP 5.3中,要是想引入一些类的名字很长的话,书写起来比较麻烦,这个时候
可以用PHP 5.3的类的别名的用法,举例说明如下:

class Irrational_Long_Class_Name
{
// empty class
}

class_alias('Irrational_Long_Class_Name', 'ShortAlias');

$shortAliasInstance = new ShortAlias();
var_dump( $shortAliasInstance instanceof Irrational_Long_Class_Name);
# true
var_dump( $shortAliasInstance instanceof ShortAlias);
# true


可以用get_class()获得原先真实的类名,比如:
class Irrational_Long_Class_Name
{

public function getClass()
{
print get_class();
}
}

class_alias('Irrational_Long_Class_Name', 'ShortAlias');

$aInstanceWithAlias = new ShortAlias();

$aInstanceWithAlias->getClass();
#  Irrational_Long_Class_Name
print get_class($aInstanceWithAlias);
# Irrational_Long_Class_Name


还可以在FUNCTION中,直接使用别名类,比如:
  class TestClass
{
public function doSomethingWithShortAliasInstance(ShortAlias $b) { }
}
class_alias('Irrational_Long_Class_Name', 'ShortAlias');
$aInstanceWithAlias = new ShortAlias();
$testClassInstance = new TestClass();
$testClassInstance->doSomethingWithShortAliasInstance($aInstanceWithAlias);
2
1
分享到:
评论
1 楼 yeaha 2011-06-16  
都5.3了,干脆直接用use关键字搞定得了。

<?php
use Foo as Bar;

class Foo {
}

$foo = new Bar;
echo get_class($foo);

相关推荐

    php5.3版本开发环境源代码

    在继承链中,PHP5.3引入了晚期静态绑定,允许子类调用父类的静态方法时,使用子类的类型来解析静态属性。这是对早期静态绑定的一种改进,提高了代码的灵活性和可扩展性。 4. **魔术常量(Magic Constants)** ...

    PHP最新帮助文档(2011-12-1)

    在PHP5.3中,以下是一些关键知识点: 1. **命名空间(Namespaces)**:这是PHP5.3引入的一项重大改进,允许开发者更好地组织代码,避免类名冲突。通过命名空间,可以创建独立的逻辑模块,使得大型项目管理更加有序...

    TP5 namespace 和 use 的用法

    这里,`HomeController@index` 实际上是对`App\Http\Controllers HomeController` 类的`index` 方法的引用,这里的`@` 符号并不是PHP的一部分,而是TP5框架中的约定,表示调用控制器的方法。 在实际项目中,良好的...

    蝉知企业门户系统 v5.3蝉知企业门户系统 changezhiEPS php企业门户系统

    功能完备,文章、会员、论坛,更多功能全力开发中; 注重SEO,语义化, 关键词、内链,助您提高搜索排名; 统计分析,让数据说话,随时掌握网站流量和销售动态。 2)真开源真免费! 国内唯一开源企业门户系统; 以...

    php中namespace use用法实例分析

    在这个例子中,我们把userCenter\login这个命名空间导入,并给它起了一个别名loginAlias,之后我们就可以使用这个简短的别名来引用login类。 总结来说,PHP的命名空间功能为我们提供了一种组织代码的手段,这使得...

    PHP5中文手册

    - 通过对象调用类中的方法。 **11.4 继承** - PHP5支持单一继承,子类可以继承父类的属性和方法。 **11.5 接口** - PHP5引入了接口的概念,接口定义了一个抽象的契约,类可以通过实现接口来满足该契约的要求。 ##...

    php5.5中类级别的常量使用介绍

    当我们在代码中使用`use`语句引入别名或者在测试类中模拟对象时,`CLASS`常量就显得尤为重要。例如,在单元测试中,我们经常需要创建类的mock对象,如`$bar = $this-&gt;getMock('vendorpackageBar')`。如果我们使用`...

    PHP命名空间(namespace)的动态访问及使用技巧

    PHP命名空间是PHP5.3版本引入的一个重要特性,它的设计概念与C#中的命名空间类似,命名空间主要是为了解决在项目中类、函数和常量的名称冲突问题,它允许将代码分割成不同的部分,这样不同的开发者可以使用相同的...

    php中namespace及use用法分析

    这样的用法,PHP官方文档中并没有明确说明这种用法,但根据上下文推断,PHP可能将use语句后的最后一个命名空间分段作为别名使用,即SomeClass作为MyProject\SomeClass的别名。 为了代码的清晰性和可维护性,推荐在...

    PHP命名空间namespace定义及导入use用法详解

    为了避免这种情况,PHP5.3版本引入了命名空间(namespace)的概念,用来解决类和函数命名上的冲突问题。 命名空间的定义十分简单,通过关键字namespace后跟命名空间的名称即可。一个PHP文件中可以定义多个命名空间,...

    php 命名空间(namespace)原理与用法实例小结

    当使用`use`关键字导入类或接口时,可以省略命名空间前缀,直接使用类名来创建实例或调用静态方法。例如: ```php &lt;?php use MyProject\Sub\Level\MyClass; $myObject = new MyClass(); echo $myObject-&gt;test(); `...

    Laravel开发-roles

    在本文中,我们将深入探讨如何在 Laravel 框架中进行角色权限管理,特别是基于 `Bican/Roles` 库的实现以及它在 Laravel 5.3 中的应用。`Bican/Roles` 是一个广受欢迎的 Laravel 包,用于轻松地在应用中添加角色和...

    PHP中命名空间的使用例子

    在PHP5.3版本之前,常量是使用define关键字定义的,而PHP5.3及以后版本则引入了const关键字用于定义常量。不过,const关键字定义的常量才会受到命名空间的影响,而使用define定义的全局常量不受命名空间的影响。 ...

    crossphp 开发框架 v1.6.1.zip

    View类权限调整,新增virtual_path功能,新增makeIndex()方法用于生成URL的索引部分; Response增加COOKIE相关方法,调整basicAuth()参数,增加digestAuth()方法; Helper::createFolders()增加返回值(bool); ...

Global site tag (gtag.js) - Google Analytics