more a case of having this or that particular hammer.
look a piece of code has normally 4 ports:
- a data on stack coming from above
- b data you put on stack for code below you (includes returns)
- c data that sits on the heap
- d data that sits remotely (disk, db, stuff)
a programming style is mostly about managing the complexity of this.
oop has a thing for partitioning the heap, so that a method only has to deal with minimal c, you know everything that touches a particular subset of c, and thus you mostly care about a and b - possibly you limit complexity with only taking two port at once (like, a dao class would work with a and d or b and d, but not c) but that's just good habit and optional to the style.
functional programming is mostly focusing on having everything flowing from a to b with minimal impact from other ports to minimize complexity of processing data, and treats c and d mostly as start/end of a particular code flow
the language you code in doesn't really prevent you to use this or that style. heck I've seen beautiful oop design in c.
the more you think about code and data flow, the less you need to take on a particular style as a religion, as opposed to use the one that solves the problem at hand more easily (many complex data structure in memory? many transformation to be done on a large dataset? need to handle multiple synchronized updates on many datasources?)