php to reverse a string without using loops or builtin functions

Solution:1

Quickly scanning down, these all look so long!

function rev($str) {
    return $str?rev(substr($str,1)).$str[0]:'';
}

Recursive so obviously doesn’t work on strings longer than 100 chars.

Solution:2

Recursive solution:

function sr( $txt ){
    return $txt[ strlen( $txt ) - 1 ] . ( ( strlen( $txt ) > 1 )?sr( substr( $txt, 0, strlen($txt)-1 ) ):null) ;
}

echo sr( "abc def ghi jklm" );

Explanation:

return $txt[ strlen( $txt ) - 1 ] // return last byte of string
.                                 // concatenate it with:
(( strlen( $txt ) > 1 ) ?         // if there are more bytes in string
 sr( substr( $txt, 0, strlen( $txt ) - 1 ) // then with reversed string without last letter
 : null );                        // otherwise with null

To make it work with zero-length string, another conditional expression was added:

return (strlen($txt))? ($txt[ strlen( $txt ) - 1 ] . ( ( strlen( $txt ) > 1 )?sr( substr( $txt, 0, strlen($txt)-1 ) ):null)):"" ;