abstract data type in PHP