PHP 8 以前,如果我们需要给一个函数的第N个参数传参,那么这个参数前面的所有参数,我们都需要传参。但是实际上有些参数是具有默认值的,这样做显得多此一举。

比如,我们要给htmlspecialchars的第4个参数传递false,在PHP 8 以前需要传入4个参数:

htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);

在8.0以后增加了命名参数,我们只需要传递必需的参数和命名参数即可,方便了很多:

htmlspecialchars($string, double_encode: false);