php – 如何知道哪个变量有值,哪个变量为null?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何知道哪个变量有值,哪个变量为null?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1716字,纯文字阅读大概需要3分钟。
内容图文
![php – 如何知道哪个变量有值,哪个变量为null?](/upload/InfoBanner/zyjiaocheng/820/ccb938361c8c4e6c8d3f65a490180468.jpg)
我需要验证一个输入,我需要稍后检查数据库是否存在于表中.输入必须是手机号码(所有数字,10最大len)或电子邮件地址.以下是我的所作所为
<?php
$credential = '9999999999';
if (ctype_digit($credential)) {
$mobile_number = $credential;
echo 'Mobile: '. $mobile_number;
} elseif (filter_var($credential, FILTER_VALIDATE_EMAIL)) {
$email = $credential;
echo 'Email: '.$email;
}
当$credential =’9999999999’时输出;
Mobile: 9999999999
当$credential =’abc@gmail.com’时输出;
Email: abc@gmail.com
两个问题,
>有更好的方法吗?比如,使用preg_match.
>上面的代码设法区分电子邮件和手机号码,以后我需要与数据库进行匹配.在实际场景中,输入将由用户提供,$credential = $_POST [‘credential’];然后相应地设置两个变量中的任何一个.我如何知道设置了哪两个变量?如果我要将电子邮件与电子邮件列或移动电话号码匹配到移动列,我需要知道两者中哪一个有值,哪一个为空.
解决方法:
filter_var($credential,FILTER_VALIDATE_EMAIL)的性能优于正则表达式,因为它是专门设计的.
至于电话号码,这似乎有点未煮熟或太严格.许多人没有多想就添加空格,括号,连字符等.我认为,对电话号码如此严格只会令人恼火. SO上有很多关于电话号码验证的正则表达式模式.对您预期的电话号码字符串的深入了解需要自信地回答这个问题.你只期待美国的数字吗?这是国际化的?我们不知道,所以我不能说什么是最好的策略.
这将有效:
if (ctype_digit($credential) && strlen($credential)==10) {
$mobile_number = $credential;
echo 'Mobile: '. $mobile_number;
} elseif (filter_var($credential, FILTER_VALIDATE_EMAIL)) {
$email = $credential;
echo 'Email: '.$email;
}
这也有效:
if (preg_match('/^\d{10}$/',$credential)) {
$mobile_number = $credential;
echo 'Mobile: '. $mobile_number;
} elseif (filter_var($credential, FILTER_VALIDATE_EMAIL)) {
$email = $credential;
echo 'Email: '.$email;
}
两种方法之间的速度差异对用户来说完全没有意义.你应该选择你个人喜欢的方法.
内容总结
以上是互联网集市为您收集整理的php – 如何知道哪个变量有值,哪个变量为null?全部内容,希望文章能够帮你解决php – 如何知道哪个变量有值,哪个变量为null?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。