オブジェクトのメソッドの引数について質問させてください

$a = "dog";//string型
$b = "/var/path/hoge.jpg";//string型

$objX->act($a, $b);
class objX{
function act($a, $b){
//$a $bを使った処理
}}
とすると、処理が正常に行われず、以下のようにすると正常に処理されます
$objX->act($a);
class objX{
function act($a){
$b = "/var/path/hoge.jpg";//もしくは $b = $sessionFile;//セッションに入れておいた画像のパス
//$a $bを使った処理
}}
処理はtwitterに画像を投稿するものです
どちらもmethod内部まで引数の値をただしく持ち込めています
なぜ上は失敗して下は成功するのかわかりません
上が失敗するといっても、apacheのerrorログにfatal errorが出たりはしません
apiの操作部分(tmhOAuth利用)は全く同じです
オブジェクトの操作でルール違反のようなことをしてしまってるのでしょうか?
引数にパスを持たせられないなんてことないですよね…?

ソース全部のせるのは長過ぎるのでまとめました。わかりにくかったらすみません
よろしくお願いします