sevavietl / type-casting
v0.1
2018-11-03 11:43 UTC
Requires
- php: >=7.1
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpstan/phpstan: ^0.10.5
- phpunit/phpunit: ^7.4
This package is not auto-updated.
Last update: 2024-09-30 20:56:13 UTC
README
PHP不支持方法返回类型提示中的真实协变,也不支持显式类型转换。
有时向下转换对象是有用的,这样PhpStorm或PHPStan就不会抱怨缺少的方法或不匹配的类型。
通常使用@var标签来实现这一点。但就像所有与类型有关的phpdoc标签一样,这只是在告诉你的IDE或静态分析工具,你确定知道该类型。
而实际类型转换(比如在Java、C#甚至PHP中,但仅限于原始类型)可以确保对象(或原始类型)可以转换为指定的类型,否则会抛出异常。
因此,你可以将\TypeCasting\TypeCasting
trait插入到你的类中(但每个继承链中只能有一个),然后使用类似于Java.lang.Class.cast
方法的cast
方法(但当然,这只是过于简化的比较)。