ma questo funziona perchè hai passato la variabile tramite riferimento (&$var).
ma questo funziona perchè hai passato la variabile tramite riferimento (&$var).
No, il passaggio per riferimento fa parte della definizione della funzione, non lo fai quando la chiami. In altre parole non sei tu che passi la variabile tramite riferimento, e' la funzione che prende la reference della variabile.
Infatti la signature della funzione bind_param e' questa:
Codice PHP:bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )