Anyway, what exactly does ‘The solution is to not quote variables when you don't need it.’ mean? That I should quote only strings?
When you put quotes around something, you turn that thing into
a string. You can quote whatever you want to, but, after you quote it, it will be a string, so you should only quote things that you want to be strings.
But you should also remember what already is a string and avoid re-quoting existing strings, partly because it's wasted keystrokes, partly because it's potentially inefficient (it's less work to just use the existing string than to change the existing string into a new string and then use the new one), and partly because there could be some edge cases where quoting the existing string might change it or otherwise break something.