The main use for keyword (named) arguments in Python is when you have a function with a number of arguments, some of which you would most commonly want to leave in their default state, but which you sometimes need to change. You can use non-keyword arguments for the normal mandatory parameters, and keyword arguments for the optional parameters.
For example:
x = example('a')
x = example('a', language='fr')
In the above example, if you don't specify the "language" parameter it will remain at whatever the default is. You can however override that default by specifying a value. It's convenient in that you can offer options without having to call them if you are satisfied with the defaults.
The other common use is for adding new arguments to a function that already takes a variable number of arguments. By adding the new argument as a keyword (named) one you don't break backward compatibility with existing code.
Suppose we have a function which can take one or two parameters:
x = example('a')
x = example('a', 'b')
Now we want to add another parameter:
x = example('a')
x = example('a', 'b')
x = example('a', language='fr')
x = example('a', 'b', language='fr')
The keyword argument doesn't get confused with the existing optional positional argument.
Keyword (named) arguments probably aren't something that you want to use everywhere. They are meant to solve specific problems where you either want to offer seldom used options without requiring them to be specified all the time. Also, they allow options to be added to existing functions instead of creating multiple versions of similar functions (e.g. examplefunc, examplefunc2, examplefunc3, etc.) with different parameter options.
Like a lot of features it can be tiresome if overused, but it has its place when used judiciously.
The above describes their use in Python. From what I can see in the PHP proposal, the intent is the same there.