to access arguments its necessary for each argument to have a clearly defined type again phps extremely dynamic nature introduces some quirks because php never does any kind of type checking its possible for a caller to pass any kind of data to your functions whether you want it or not if you expect an integer for example the caller might pass an array and vice versa php simply wont notice 