Практической разницы нет.
В обоих случаях переменная $a
в конечном итоге будет определена в основном скрипте.
Оба варианта не идеальны. В файлах, которые нужно включить, не должно быть никаких логик c, только декларации.
Во всяком случае, это будет лишь немного лучше:
<?php
//foo.php
return new Foo();
//bar.php
$foo = require 'foo.php';
Таким образом, по крайней мере, вы может определить любую переменную, которую вы хотите в скрипте-потребителе, и вам не нужно знать, как называется переменная, определяемая foo.php
.