This is a poorly written question with a badly written example of what you are asking. The code you wrote doesn't assign anything to the variable b0 & b1 or to the signals b0 & b1. You are doing a variable assignment to your port inputs (whatever that is supposed to mean...is this the entity ports or the ports on a component?) op_ and op_1, which might not even be legal VHDL depending on what input port you are talking about. Out of context code fragments are usually a poor way to communicate your intentions and they don't allow you to verify if they actually compile (I'm sure you didn't even try to do that).
The real answer to this question of using variables or signals is...I've never found a case where I had to use a variable in place of a signal to make code that "works". The only times I've ever used a variable was when I was trying to make the code more understandable. One place variables make sense is when it's used as the array in the model of a memory, variables will simulate faster than a signal array, since variables don't need to be scheduled.