sevavietl / type-casting

v0.1 2018-11-03 11:43 UTC

This package is not auto-updated.

Last update: 2024-09-30 20:56:13 UTC


README

Build Status Coverage Status License: MIT PHPStan

PHP不支持方法返回类型提示中的真实协变,也不支持显式类型转换

有时向下转换对象是有用的,这样PhpStorm或PHPStan就不会抱怨缺少的方法或不匹配的类型。

通常使用@var标签来实现这一点。但就像所有与类型有关的phpdoc标签一样,这只是在告诉你的IDE或静态分析工具,你确定知道该类型。

而实际类型转换(比如在Java、C#甚至PHP中,但仅限于原始类型)可以确保对象(或原始类型)可以转换为指定的类型,否则会抛出异常。

因此,你可以将\TypeCasting\TypeCasting trait插入到你的类中(但每个继承链中只能有一个),然后使用类似于Java.lang.Class.cast方法的cast方法(但当然,这只是过于简化的比较)。

downcasting