This method is important for managing any underlying resources that might be utilized by a StreamInterface outside of the stream. When a StreamInterface object is closed, implementations must close any underlying resources (this close could be trigger by a call to __destruct() for example). Allowing developers to detach the underlying resources before the stream is closed allows them to take back control over the lifecycle of the underlying stream. Without this feature, the underlying resource has a non-deterministic behavior as to whether or not it is still available.

This method present in various other stream implementations including [C#, C++](http://msdn.microsoft.com/en-us/library/ms227422.aspx), and [Python](http://docs.python.org/3.1/library/io.html#io.BufferedIOBase.detach).