Functional programming can be done with an imperative programming language like PHP, but there are native functional programming languages like Haskell.
State happens in a very small context
"Functional Programming in PHP" by Patkos Csaba says there are three guidelines to functional programming in PHP: 1. No assignments., 2. No mutable state., and 3. No while or for loops.