PHP Abstract Data Type