Since you are discussing something which happens at the bounds of a http request/response (from php view) I would propose to even drop the string type here, because it would be highly inefficient... I could only think of very basic example cases where one would use a string as a body.

As a implementor of such interfaces a lib/framework would work mostly on resources owned by either native php or the unterlying os. All other types would not make sense in a real world example?