title: Programatic implications of ? vs no?
body: <p>Working with Symfony for quite awhile now i've noticed something that I realized I never had an answer too. In Symfony it's not uncommon to see:</p>
  
  <pre><code>public function build(string $json): ?IntegrationErrors
  </code></pre>
  
  <p>But at the same time you can easily see:</p>
  
  <pre><code>public function build(string $json): IntegrationErrors
  </code></pre>
  
  <p>The thing is, as far as I can tell they do the same thing, there's no errors or warnings either way, so that brings me to the question of what are the programatic implications of using ? vs no ? when defining a return type?</p>
  
  <p>Is this something specific to doctrine, as you tend to see it most inside of the Entities?</p>