想要学好编程可不能忽视代码的稳定性和可靠性~尤其是函数参数那里,得多留心它的规格。说到PHP这种服务器编程语言,其实有挺多小妙招解决这个问题滴。比如说,我们可以使用typehint设定参数类型;或者用GetType()看一眼具体是哪种类型就行啦;也很推荐用assert()函数进行条件检验。接下来就让我们细说一下这些方法,并给大家举几个实际应用的例子!
1.使用typehints
听说PHP 7新增了typehints功能,这下子我们可以清楚知道每个函数参数需要什么类型,代码看起来更清晰整洁!而且以后修改起来也容易多了。要是传入的类型跟定义不符,PHP还会报错提醒你,省得咱们犯错误。
就是,我们搞一个小玩意儿,只能接收和输出整数。
php 加法运算,把两个数合起来,返回结果。 return $a+$b; }
别随便乱搞这个家伙哦(比如瞎发乱码之类的),它可不吃这套,直接给你来个 TypeError 教训你不尊重人。听话,按规矩办事才对!
2.使用getType()
function add(int $a, int $b): int { return $a + $b; }
这玩意儿可帮你看出给的啥类型的参数,只要用getType()就行了。还有个if条件判断下具体状况,这样写出来的代码就靠谱多了、也灵活多变!
咱们不如来做个小程序,把输入的数字认出来,然后搞定它。
搞定变量就像玩游戏那么简单,加上小美元符号$就能轻松处理,跟平常传递信息没啥两样。
$type = gettype($var);
if ($type ===’integer’){
//处理整数类型
别担心,如果类型是字符串的话…
//处理字符串类型
function isString(mixed $value): bool { return gettype($value) === 'string'; }
} else {
//处理其他数据类型
}
3.使用assert()
想知道PHP运行效果好不好?用下assert()这个方法,只需传2个参数:检查的条件和你想显示的错误消息。如果条件不对,它立刻给你抛个 AssertionError异常,告诉你哪里有毛病!
举个例子,我们可以编写一个函数来验证用户输入是否有效:
在这个函数里我们要仔细检查输入的数组$data。
“大家伙儿,$data[‘name’]跟$data[’email’]那两个地儿还空白?快点儿填满它们!”
数据里的 email 对了吗?要是不对,赶紧告诉我!
function validateEmail(string $email): void { assert(filter_var($email, FILTER_VALIDATE_EMAIL), 'Invalid email address'); }
//其他验证逻辑
咱们唠叨的那个例子中,只要没达到设定条件(data数组要有name和email两个字段,并且email地址要对),assert()函数就能立刻跳出来喊停,给你报错!它就是这么细心负责,帮你找问题滴~
4.结合实战案例
记好这招,用起来会省心不少。比方说咱处理用户输啥的时候,别忘了加`typehints`和`assert()`准没错儿!
我们来处理下用户输入的数据。
如果输入有误,请检查一下你的数据!
//处理用户输入逻辑
先试试看validateInput()能不能检查出你的输入是不是完整又准确。接着,用assert()确认一下校验结果正不正确,这样就能彻底放心!
看完上面那个总结和例子是不是已经学会怎样用PHP来测试函数参数类型?简单来讲,这样做不仅让我们编写程序更放心,还能使代码更简洁易懂!
function processInput(array $data): void { assert(array_key_exists('name', $data), 'Missing "name" field'); assert(array_key_exists('email', $data), 'Missing "email" field'); assert(filter_var($data['email'], FILTER_VALIDATE_EMAIL), 'Invalid email address'); // 处理经过验证的输入... }
评论0