I have read W3C documents, but I don't understand why they are different. I'll give the definitions of them in W3C documents:
A functional property is a property that can have only one (unique) value y for each instance x.
IFP (owl:InverseFunctionalProperty):
If a property is declared to be inverse-functional, then the object of a property statement uniquely determines the subject (some individual).
Here is also a difference: One difference with functional properties is that for inverse-functional properties no additional object-property or datatype-property axiom is required: inverse-functional properties are by definition object properties. You can see these words in the IFP link above.
But I don't understand it, can you give me a detailed explanation?
Stating that property f is functional means that, for an individual x, there is only one value for f.
So, given:
x f p
x f q
A reasoner will infer that p and q are the same individual, or the same literal.
Inverse functional means that the inverse of f is functional, i.e.,
x f a
y f a
Is like
a r x
a r y
Where r is functional, and the inverse of f. The reasoner can infer that x and y are the same individual (so this time the subjects are inferred to be identical).
This is also the reason for inverse properties to be object properties. If you pick a data property, you cannot have an inverse for it, because you cannot have a literal as subject of a statement.