What is the difference between only if and iff?
Let's assume A and B are two statements. Then to say "A only if B" means that A can only ever be true when B is true. That is, B is necessary for A to be true. To say "A if and only if B" means that A is true if B is true, and B is true if A is true. That is, A is necessary and sufficient for B. Succinctly,
$A \text{ only if } B$ is the logic statement $A \Rightarrow B$.
$A \text{ iff } B$ is the statement $(A \Rightarrow B) \land (B \Rightarrow A)$
I will find a million dollars inside this locker only if I know the combination.
But that doesn't mean I will find a million dollars there if I know the combination. After all, there might be only a half million in there.
A "only if B"
is the same as saying
"B is necessary" for A
which is the same as saying
A could not have happened without B
but that does mean that other things do not also need to happen for A to be true.
Therefore,
$A \to B$
but it is not true that $B \to A$ because B being true does not guarantee A happened. There could also be other requirements for A to be true.
e.g.:
You are eligible to be president only if you are at least 35 years old.
let $p$: "You are eligible to be president" and $a$: "You are at least 35 years old".
Here is is the case that $p \to a$,
but it is not the case that $a \to p$
In other words, $a$ is necessary for $p$, but just because $a$ is true does not mean that $a$ is the one single requirement for $p$. Just because you're at least 35 years old does not mean that you are eligible to be president.
As far as the difference goes, (which I guess was the specific question), if and only if means just that. $p$ if and only if $q$ means ($p$ if $q$) AND ($p$ only if $q$).
The bottom line is:
$p$ if $q$
equates
if $q$, then $p$
which is the same as $q \to p$
I just (hopefully well) explained that
$p$ only if $q$
equates
$p \to q$
Also,
$q \to p$ and $p \to q$
is the same as saying $p \iff q$
So there you have. One statement is unidirectional, the other is bidirectional.