strings are handled a bit differently by the zend engine than other values such as integers booleans etc which dont require additional memory allocation for storing their values if you want to return a string from a function introduce a new string variable to the symbol table or do something similar you have to make sure that the memory the string will be occupying has previously been allocated using the aforementioned e * functions for allocation this might not make much sense to you yet just keep it somewhere in your head for now well get back to it shortly 