Tach.
Das ist genau DIE Frage bei eval(), wann was ersetzt wird und wann die automatische Typumwandlung greift, und wann nicht.
eval macht nichts anders als PHP an sich. In doppelten Anführungszeichen werden $Zeichenketten als Variablenbezeichner interpretiert und entsprechend substituiert. In einfachen Anführungszeichen nicht. Den resultierenden String erhält eval als Argument und interpretiert ihn so, als hättest Du ihn in dieser Form in den Quelltext geschrieben.
--
Once is a mistake, twice is Jazz.
Once is a mistake, twice is Jazz.