その際にカラム名が違うだけのクラスが多く存在し、クラスを作る際にはif文で無理矢理条件分岐後に変数に代入して、それを利用する形で書いています。
値自体はreturn_this()の返り血がlistになっており、index 1に格納されているためそれを使えれば良いのですが、変数展開のようなものができません。
思いついたものはexec()やeval()ですがこのようなものは使用したくありません。
このコードのメンテナンスコストとタイプ量を減らしたいと考えています。
カラム名が違うだけのクラスとおっしゃっていますが、テーブルが多くあればある意味やむを得ないと思います。この部分での課題認識がいまいちよくわかりません。インスタンス生成部分を綺麗にとはどのような観点での綺麗さを望むのでしょうか。タイプが楽なのかメンテコストが低いのが良いのか、、。2つ目の問題では変数展開に言及されておりますが、ほぼ共通化できるのだけれど、例外があるのでもうすこし柔軟にしたいという意図でしょうか?
共通コードが増えてしまうのであれば、テーブル構成をまずは見直した方が良さそうにも思いますし、ヘルパ関数などを適宜利用すれば良いようにも思います。