I know this has been beaten to death over the years. I know that it can be practical, and it's really easy to find a PHP developer because of its gigantic market share. I know it's "easy" to "set up" (though most of that argument depends on PHP already being installed and provided via the webhost).
I think the thing that irks me the most about PHP is its built in function signatures. They are often wildly inconsistent and require a developer to refer to documentation more often.
array_map(function, array) vs
array_filter(array, function), where the parameter inputs are swapped.
This is probably my favorite example of the fustercluck that is PHP design decisions. From a functional perspective in other languages, parameter order is important in order to curry or compose functions. But, um... *cough*...
You sometimes have to wonder if PHP is suffering from not having a core design philosophy, language spec, and/or too many cooks in the kitchen.
I think that the fragmented and mishapen identity of PHP echoes through other projects too, such as comment annotations in various unnamed frameworks and ORMs. This is in stark contrast to languages like Python and its derivative projects, where one way to do a task is preferred.