如何在UML类图中可视化变量引用数组?PHP转UML类图疑问
PHP源码转UML类图:mixed伪类型与引用数组的表示问题
先看你提供的PHP抽象类代码:
abstract class DataSource { public function toReferences():array { $fields = []; $keys = $this->getPropertyNames(); foreach( $keys as $key ){ $fields[] = &$this->$key; } return $fields; } public function getPropertyNames():array { return array_keys( get_object_vars( $this ) ); } }
针对你的问题,给出以下结论:
- 可以使用PHP的
mixed伪类型:UML允许使用领域相关的自定义类型,PHP官方文档定义的mixed属于被广泛认可的伪类型,用来表示多种数据类型的集合完全合理。 +toReferences:&mixed[]的写法部分合理,细节需注意:+表示公共方法,符合UML访问控制标记规则;mixed[]用来表示元素类型为mixed的数组,这种写法贴近PHP开发者习惯,多数UML工具能识别;&是用来体现PHP的引用语义,这并非UML标准语法,但如果目标是让熟悉PHP的开发者快速理解语义,保留标记可行——不过部分严格遵循UML标准的工具可能不解析该符号,此时可在方法注释里补充说明返回的是属性引用数组。
如果追求更贴合UML标准的写法,也可以写成+toReferences():Collection(mixed),但mixed[]对PHP开发者来说可读性更好。
内容的提问来源于stack exchange,提问作者Alexander Behling
相关产品推荐
相关产品推荐

