What's this line meaning?

<?php ob_start();$er = error_reporting(0);

what’s the above code meaning?and what ob_start(); will do?

ob_start() is an output buffer for content been outputted by PHP on the page, read more about it

http://php.net/manual/en/function.ob-start.php

The second line will turn off PHP error reporting which isn’t recommended

http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

ob_start()
When you use echo statements, those information will be sent to client immediately from webserver. Sometimes, it will be required not to send the echo outputs immediately to client. In those cases you can use the ob_start to buffer the content, manipulate the content if needed and flush it to client when you ready to do so.

error_reporting
Various php functions can throw warnings / notices / errors. Showing these kind of errors in production server can pose security risk… moreover showing these kind of un-user friendly errors to end-users ( website visitors ) is not good. So, you might want to off all the errors through above error_reporting. You can allow which errors can be shown by passing the value to it. See php.net for complete details.
I always use error_reporting(0); as the first line in my programs to turn off all the errors and handle the error conditions manually wherever needed… this way I have control over what errors and how it should be shown to end-users.