無理やり変数に入れてない?

普通は0を付けて8進数で指定します。
PLAIN TEXT
PHP:
chmod($file_path, 0777);

で、パーミッションを変数で指定したい場合は、
PLAIN TEXT
PHP:
// 頭に0を付けて4桁にする
$permission = sprintf("%04d", "777");
// octdec()関数は8進数を10進数に変換
chmod($file_path, octdec($permission));

これじゃだめなんですか?

//  変数に入れることが目的
$permission = 0777;
chmod($file_path, $permission);

//  octdecを使うことが目的
$permission = 0777;
chmod($file_path, octdec('777'));
chmod($file_path, octdec('0777'));