We know we can't store a function in variable
$k = echo("hello");
$k = unset($_SESSION['name']);
$row = mysqli_fetch_assoc($result);
unset are not really functions. If you check the documentation, you'll see that it says:
No value is returned
Since no value is returned, you can't assign them to variables.
mysqli_fetch_assoc() is an ordinary function. And like any other function, you can assign its return value to a variable, or pass it as an argument to another function, or use it in an expression.
You would have a hard time programming in PHP if you couldn't assign function values to variables. You couldn't write things like:
$max = max($var1, $var2); $current_time = time();