@mysql_connect('host', 'root', 'pass') or die('unable to connect');



英文としては直感としてわかる。


けど、プログラミング的にはなんだこの文法って最初は思った。



意味は、接続できなければdie()する。


if (mysql_connect('host', 'root', 'pass')) {
    処理
} else {
    die('unable to connect');
}


実は単純な論理演算だ。


ORは左項、右項のどちらかがTRUEなら、式全体はTRUEとして評価される。


PHPはこの式を左から評価していく。


@mysql_connect('host', 'root', 'pass')がTRUEだった時点で、この式のTRUEは確定する。


確定するから、右項を評価する必要はない。


だから評価しない。


ってことだ。



だから逆にこういうのもできる。


!@mysql_connect('host', 'root', 'pass') and die('unable to connect');


接続に失敗したらdie()ってこと。