This question already has answers here:
Answer
Solution:
If you're happy to do some find-and-replace, there are a few constructs which guarantee the same behaviour but without the Warning.
The most universal is the , which lets you convert an unset array key into an explicit null:
if ($_POST['submit']??null) { ... } else { ... }
<input value="<?=$this_page['id']??null?>">
More logically, the default in an echo statement is an empty string:
<input value="<?=$this_page['id']??''?>">
The logical default in an if statement is a boolean false, but perhaps more readable is the :
if (! empty($_POST['submit'])) { ... } else { ... }
Source