It doesn't quite sit so well with me as it seems to with people in the comments, but then I'm usually a bit of a stickler for notation. It strikes me as an abuse of notation.
A function $\phi$ ought be defined with a fixed, known domain and codomain (before you can even define where in the codomain it sends a point $x$ in the domain). In order to parse $\phi([a, b])$, I need to already know where $\phi$ sends the points in its domain, which means I already have some idea of the codomain (these points have to be mapping to somewhere, right?). This original codomain should technically be specified.
If I were doing it properly, I'd prefer to talk about $\phi : [a, b] \to \Bbb{R}$ (or whatever other codomain) first, then define some $\hat{\phi} : [a, b] \to \phi([a, b])$, or something like that.
Now, that said, being an abuse of notation doesn't mean that it's silly, or even that it's at all bad. We use abuses of notation all the time. So long as it is clear what you're saying (and I'd say it is pretty clear), then most people will be fine with it. In fact, it can often be preferable to abuse notation than to, say, define all your functions twice and leave hats over all of them!