表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法

本文介绍了PHP中常用的三个表单验证函数:ISSET(), empty() 和 is_numeric() 的定义、作用范围及使用场景,并通过实例演示了如何进行有效的表单验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文就简单讲一下php中表单验证的三个函数,应该比较常用吧,最后给一些示例,请看下文。

ISSET();——适合于检测是否存在这个参数。

定义和作用范围:用于测试一个变量是否具有值(包括0,FALSE,或者一个空字串,但不能是NULL),即:“http://localhost/?fo=”也是可以通过检测,因此不适用。但如果是“http://localhost/”参数中并不含fo参数,就可以用isset来检测,此时isset($_GET['fo'])返回false。

不适用于:该函数不适合于验证html表单中的文本的有效方式。要检查用户输入文本是否有效,可以用empty();

empty();——最好用的一个函数。

定义和作用范围:用于检查变量是否具有空值:包括:空字串,0,null 或false,即:“http://localhost/?fo=”或“http://localhost/?fo=0”时,empty检测出来的结果都是ture,不适用范围:不适用于检测可为0的参数。

is_numeric();——只适用于检测数字,但假如参数名不存在,会出错,因此不适合于第一层检测。

综合示例:

<?php
ini_set("display_errors",1);
//ini_set("error_reporting",E_ALL); print_r
error_reporting(E_ALL);

$a=NULL;
if(isset($a))echo '变量$a的isset为真';

echo '<h2>isset的情形:</h2>';
if(isset($_GET['fo'])){
echo '变量/'fo/'的isset为真,变量可用';
}else{
echo '变量/'fo/'的isset为假,无变量设置';
}

echo '<h2>empty的情形:</h2>';
if(empty($_GET['fo'])){
echo '变量/'fo/'的empty为真,即空值或无效值';
}else{
echo '变量/'fo/'的empty为假,有值';
}

echo '<h2>is_numeric的情形:</h2>';
if(is_numeric($_GET['fo'])){ //在参数中无fo参数时,则出错。
echo '变量/'fo/'的is_numeric为真,是数字';
}else{
echo '变量/'fo/'的is_numeric为假,不是数字';
}

echo "<h2>/$_GET['fo']=''的情形:</h2>";
if($_GET['fo']==''){ //在参数中无fo参数时,则出错。
echo 'fo无值,空的字符串';
}elseif($_GET['fo']!=''){
echo 'fo有值,不为/'/'.';
}

echo "<h2>/$_GET['sex']='m'的情形:</h2>";
if($_GET['sex']=='m'){ //当参数中无sex变量时就会出错。
echo '男的';
}elseif($_GET['sex']=='f'){
echo '女的';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
</body>
<p>
<a href="?fo=Jack">传有效值</a> <a href="?fo=">传空值</a> <a href="?fo=0">传0值</a>
<br /><br />
<a href="?sex=m">性别:男</a> <a href="?sex=f">性别:女</a>
<br /><br />
<a href="/">清空</a>
<br /><br />
<input type="text" value="<?php echo $_GET['fo']!=''?$_GET['fo']:'';?>" size="155" />
</p>
</html>

<think>好的,用户想了解PHPisset函数的用法和相关编程问题。首先,我需要回忆isset的基本功能,它用于检查变量是否已声明且不为null。然后,我需要整理常见的使用场景,比如检查表单提交、数组键是否存在等。 记得要举几个例子,比如检查单个变量、多个变量、数组元素等。同时,用户可能有疑问,比如issetempty的区别,或者处理多维数组时的注意事项,这些都需要在相关问题中提到。 还要注意引用格式,确保在回答中适当添加引用标识。比如,如果提到性能优化,可以引用相关的资料。不过根据现有引用,可能没有直接相关的,需要确认是否有合适的引用点。例如,引用[1]提到了数组操作,或许可以关联到检查数组元素是否存在的情况。 最后,生成的问题要覆盖常见疑惑点,帮助用户深入理解isset的应用场景和潜在问题。确保语言简洁,结构清晰,符合用户的要求。</think>### PHP isset()函数详解 isset()PHP中用于检测变量是否已声明且不为null的核心函数,返回布尔值。 #### 基本语法 ```php bool isset(mixed $var [, mixed $... ]) ``` #### 使用场景 1. **检查变量存在性** ```php if(isset($username)){ echo "欢迎".$username; } else { echo "游客身份"; } ``` 2. **表单数据验证** ```php if(isset($_POST[&#39;submit&#39;])){ $email = isset($_POST[&#39;email&#39;]) ? $_POST[&#39;email&#39;] : &#39;&#39;; } ``` 3. **数组元素检测** ```php $config = [&#39;debug&#39; => true, &#39;timeout&#39; => 30]; if(isset($config[&#39;debug&#39;])){ // 引用[1]中数组操作示例的类似验证 } ``` 4. **链式检测** ```php if(isset($_GET[&#39;page&#39;]) && is_numeric($_GET[&#39;page&#39;])){ $current_page = (int)$_GET[&#39;page&#39;]; } ``` #### 注意事项 - 检查未声明变量不会产生警告 - 对null值返回false - 支持同时检查多个参数 - 对象属性检测需可见性为public #### 对比empty() | 函数 | null | 空字符串 | 0 | 未定义变量 | |-----------|------|----------|---|------------| | isset() | F | T | T | F | | empty() | T | T | T | T | #### 多维数组示例 ```php $data = [ &#39;user&#39; => [ &#39;profile&#39; => [&#39;name&#39; => &#39;John&#39;] ] ]; if(isset($data[&#39;user&#39;][&#39;profile&#39;][&#39;name&#39;])){ echo $data[&#39;user&#39;][&#39;profile&#39;][&#39;name&#39;]; // 输出John } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值