PDO pasar por aviso de referencia?

Esta

$stmt = $dbh->prepare("SELECT thing FROM table WHERE color = :color");
$stmt->bindParam(':color', $someClass->getColor());
$stmt->execute();

produce esto:

Aviso de tiempo de ejecución
Solo las variables deberían pasar por referenci

aunque todavía se ejecuta.

Esta

$stmt = $dbh->prepare("SELECT thing FROM table WHERE color = :color");
$tempColor = $someClass->getColor();
$stmt->bindParam(':color',$tempColor);
$stmt->execute();

corre sin queja.

No entiendo la diferencia @

Respuestas a la pregunta(4)

Su respuesta a la pregunta