From the docs
mysqli_stmt::__construct ( mysqli $link [, string $query ] )
Note:
In general, you should use either mysqli_prepare() or mysqli_stmt_init() to create a mysqli_stmt object, rather than directly instantiating the object with new mysqli_stmt. This method (and the ability to directly instantiate mysqli_stmt objects) may be deprecated and removed in the future.
But why would they want to do that? Wouldn't that break inheritance (you couldn't extend mysqli_stmt)?