I'm working on a PHP project and I'm doing its UML documentation. I need to specify that a method accept multiple data types and I can't figure out how to do it.
For instance: I want to represent a PHP class called 'A' in a UML class diagram:
<?php
class A{
private $_data;
public function __construct() {
$this->_data = array();
}
public function add( $key , $value){
$this->_data[$key] = $value;
}
}
$oA = new A();
$oA->add( 1, 'John Doe' ); // key is an int and value is a string
$oA->add( "Fruits" , array("Apple", "Banana", "Kiwi") ); // string, array
$oA->add( "pi", 3.1415 );
//and so on...
?>
Note that add() function can receive keys and values of different kind of data. So, I can't specify in my UML class diagram something like “key:integer” or “value : string[]” because their data type can change depending on what kind of data is passed when the method is called.
Is there a way to depict this fact in UML notation?
Can I specify something like:
+ add( key:mixed , value:mixed)
?
Thanks in advance!