将安全参数传递给函数或让函数进行检查



请考虑下面的代码

<?php
$a = '';
echo empty($a) ? '' : substr($a, 0, 1); // Prints: ''
echo substr($a, 0, 1); // Prints: ''

哪个"echo"更好?在第一个中,总是检查$a, substr将正常运行,在第二个中,substr内部检查$a,并可能触发一些通知错误。

第一个比较好。

你总是需要防止错误/警告/通知。

虽然我甚至不会为了可读性而使用一行代码

输入字符串必须大于等于一个字符。所以最好事先检查一下。请查看:http://php.net/manual/en/function.substr.php

最重要的部分是区分输入和输出变量:

$input['a'] = '';
$output['a'] = empty($input['a']) ? '' : substr($input['a'], 0, 1);
echo $output['a'];

如何编写验证是你的事情,它应该处理所有的边缘情况,不应该触发任何错误/警告。

Edit:如果你想减少函数调用的数量,下面的代码片段不使用任何函数,只有一种语言结构:

$a = empty($a[0])?'':$a[0];
echo $a;

最新更新