Ovviamente dipende: se devi accedere solamente all'ID dell'utente allora è inutile salvare un nuovo valore nella sessione; se invece utilizzi (come è probabile) anche altri dati, allora la prima soluzione è quella preferibile.
<?php
// classe
class User
{
public $id;
public $name;
}
// nella pagina di login
$user = new User();
$user->id = 1;
$user->name = 'pincopallino';
$_SESSION['user'] = serialize($user);
// in altre pagine
$user = unserialize($_SESSION['user']);
echo <<<EOF
Benvenuto <a href="profile.php?id={$user->id}">{$user->name}</a>!
EOF;
?>
<?php
// classe
class User
{
public $id;
public $name;
}
// nella pagina di login
$user = new User();
$user->id = 1;
$user->name = 'pincopallino';
$_SESSION['user'] = serialize($user);
// in altre pagine
$user = unserialize($_SESSION['user']);
echo <<<EOF
Benvenuto <a href="profile.php?id={$user->id}">{$user->name}</a>!
EOF;
?>