在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);
分享到:
相关推荐
在继承链中,PHP5.3引入了晚期静态绑定,允许子类调用父类的静态方法时,使用子类的类型来解析静态属性。这是对早期静态绑定的一种改进,提高了代码的灵活性和可扩展性。 4. **魔术常量(Magic Constants)** ...
在PHP5.3中,以下是一些关键知识点: 1. **命名空间(Namespaces)**:这是PHP5.3引入的一项重大改进,允许开发者更好地组织代码,避免类名冲突。通过命名空间,可以创建独立的逻辑模块,使得大型项目管理更加有序...
这里,`HomeController@index` 实际上是对`App\Http\Controllers HomeController` 类的`index` 方法的引用,这里的`@` 符号并不是PHP的一部分,而是TP5框架中的约定,表示调用控制器的方法。 在实际项目中,良好的...
功能完备,文章、会员、论坛,更多功能全力开发中; 注重SEO,语义化, 关键词、内链,助您提高搜索排名; 统计分析,让数据说话,随时掌握网站流量和销售动态。 2)真开源真免费! 国内唯一开源企业门户系统; 以...
在这个例子中,我们把userCenter\login这个命名空间导入,并给它起了一个别名loginAlias,之后我们就可以使用这个简短的别名来引用login类。 总结来说,PHP的命名空间功能为我们提供了一种组织代码的手段,这使得...
- 通过对象调用类中的方法。 **11.4 继承** - PHP5支持单一继承,子类可以继承父类的属性和方法。 **11.5 接口** - PHP5引入了接口的概念,接口定义了一个抽象的契约,类可以通过实现接口来满足该契约的要求。 ##...
当我们在代码中使用`use`语句引入别名或者在测试类中模拟对象时,`CLASS`常量就显得尤为重要。例如,在单元测试中,我们经常需要创建类的mock对象,如`$bar = $this->getMock('vendorpackageBar')`。如果我们使用`...
PHP命名空间是PHP5.3版本引入的一个重要特性,它的设计概念与C#中的命名空间类似,命名空间主要是为了解决在项目中类、函数和常量的名称冲突问题,它允许将代码分割成不同的部分,这样不同的开发者可以使用相同的...
这样的用法,PHP官方文档中并没有明确说明这种用法,但根据上下文推断,PHP可能将use语句后的最后一个命名空间分段作为别名使用,即SomeClass作为MyProject\SomeClass的别名。 为了代码的清晰性和可维护性,推荐在...
为了避免这种情况,PHP5.3版本引入了命名空间(namespace)的概念,用来解决类和函数命名上的冲突问题。 命名空间的定义十分简单,通过关键字namespace后跟命名空间的名称即可。一个PHP文件中可以定义多个命名空间,...
当使用`use`关键字导入类或接口时,可以省略命名空间前缀,直接使用类名来创建实例或调用静态方法。例如: ```php <?php use MyProject\Sub\Level\MyClass; $myObject = new MyClass(); echo $myObject->test(); `...
在本文中,我们将深入探讨如何在 Laravel 框架中进行角色权限管理,特别是基于 `Bican/Roles` 库的实现以及它在 Laravel 5.3 中的应用。`Bican/Roles` 是一个广受欢迎的 Laravel 包,用于轻松地在应用中添加角色和...
在PHP5.3版本之前,常量是使用define关键字定义的,而PHP5.3及以后版本则引入了const关键字用于定义常量。不过,const关键字定义的常量才会受到命名空间的影响,而使用define定义的全局常量不受命名空间的影响。 ...
View类权限调整,新增virtual_path功能,新增makeIndex()方法用于生成URL的索引部分; Response增加COOKIE相关方法,调整basicAuth()参数,增加digestAuth()方法; Helper::createFolders()增加返回值(bool); ...