It becomes less obvious that changes are going to be made, especially while calling (there are not indications that you passing by reference when calling the function). Related to the comment I had about a lacking error message, I couldn't immediately tell that it was modified within the function. Personally I think I'd like to pass by value and then return the modified version so that code would read ```$returnValue = createProject($returnValue, $projectName)```, this makes things a bit more apparent and you still cover the basis of returning success. All said, though, there's nothing 'wrong' with what you're doing.