名前の投稿について質問なのですが

$name = htmlspecialchars($_POST['name']);
if (!$name) $name = "名前がありません";

とあるのですが、!$nameの所がちょっとよくわかりません
'name'に何も書き込まれて無かったら名前がありませんになるという事はカンでわかるのですが
なぜ否定の!と$nameの変数を続けただけでそうなるのでしょうか?

!$nameじゃ$nameじゃないっていうよくわからないモノになってしまう気がしまいます