phpでオブジェクトを使った書き方を勉強中なのですが、以下の点が理解できません。
・var $変数値 = "hoge";
 変数値の前にvarをつける意味がよく分かりません。
 初期化と説明してるサイトもありますが、普通に「$変数値 = "hoge";」だけでは初期化したことにはならないのでしょうか。

・class内にfunctionを定義する優位性が分かりません
 class外に書くのと内に書くのとでどういう優位性があるのでしょうか。
 例えばコール時に class AAA{ function BBB{} } とあって、
 $TEST = new AAA;
 $TEST -> BBB("なんとかかんとか");
 と書くより、
 $TEST BBB(); とclass外にあるユーザ関数を呼び出す方が行数が少なくならないでしょうか。

素人思考な質問でしょうが、よろしくお願いします。
当方php以外の言語はせいぜいperl位ですので、お手柔らかにお願いします。(一応これでもググって着ての質問です;)