ASP.NET as you have indicated does use the ViewState. First of all I'm going to briefly explain the purpose of the ViewState and why it is there.
What is the ViewState
In a nutshell, the purpose of the ViewState is to preserve the value of form fields between postbacks. From that statement, you can infer then that the more fields you have, the larger your ViewState is going to be.
In addition to preserving the value of form fields between postbacks, you can also store arbitrary data inside of the ViewState, by using
ViewState[key] = value.
You can, however, disable the ViewState, either on a page level or element level where it is not appropriate to use. This can also save space in the ViewState.
The ViewState is stored as a hidden form element that is posted to the server when you submit the page. The following diagram demonstrates the key points in ViewState processing:
The key points here are
LoadViewState loads the data posted to the server, where
SaveViewState serialises it for storage in the ViewState after page events have been processed.
The primary advantage of using the ViewState is to persist data between page loads. For example, when the page is first loaded fields may be populated with the results of, for example, a long running database query. Subsequent loads can use the values in the ViewState to save re-executing that query.
Relation to ASP.NET MVC
ViewState is not at all relevant to ASP.NET MVC and is a component of ASP.NET Web Forms.
Equivalent in PHP?
There is no equivalent in PHP. You could manually implement the functionality if you so desired by serialising for example your model and reloading it on POST.
Do you have to use the ViewState
No, you don't. If you turn it off, your page output size will decrease but you will also need to factor in the overhead of reloading data.
TL;DR and to the question
Will the difference between the size of PHP pages and the generated HTML of ASP.NET pages be dramatic?. The answer is it depends on what you are outputting. If you are making massive forms and particularly if you're making use of controls such as Asp:DataTable then yes, your output could be significantly larger. I've seen ViewStates grow to over 1mb. You need to bare in mind that on each submit, the entire ViewState has to be uploaded to the web server. If you're producing small and simple forms, the size difference is going to be negligible. YMMV depending on what it is exactly that you're doing.
The other thing to bare in mind is that in PHP you have a lot more control over the generated markup than what you do with WebForms.