From the documentation:
Note: string can be as large as up to 2GB (2147483647 bytes maximum)
and also:
The string in PHP is implemented as an array of bytes and an integer indicating the length of the buffer. It has no information about how those bytes translate to characters, leaving that task to the programmer.
That integer is probably the limit.