首页 文章 图书 作者
编程语言>php
php数组报错Notice: Undefined index解决办法 好用的使用数组的方式
2015-10-06
0
24

php数组报错Notice: Undefined index解决办法

很多时候使用php数组的时候,定义了数组,引用的时候,并没有定义的索引,会碰到一个注意级别的错误。

例如,

$arr = array("t" => "hello");
print_r($arr);
print($arr["t"]);
print($arr["a"]);
Array ( [t] => hello ) 
hello
Notice: Undefined index: a in F:\test\index.php on line 5

解决办法是,每次做数组的使用的时候,用isset函数做个判断。

$arr = array("t" => "hello");
print_r($arr);
print(isset($arr["t"]) ? $arr["t"] : "");
print(isset($arr["a"]) ? $arr["a"] : "");
Array ( [t] => hello ) 
hello

这样就解决了,注意级别的错误。

好用的使用数组的方式

为了解决每次使用数组都用isset函数判断,写了个函数。

$arr = array("t" => "hello");
print_r($arr);
print(getValue($arr["t"]));
print(getValue($arr["a"]));

function getValue($str) {

	return isset($str) ? $str : "";

}
Array ( [t] => hello ) 
hello
Notice: Undefined index: a in F:\test\index.php on line 12

执行的时候还是有问题,分析一下,在getValue函数变量中,数组已经根据索引做了引用,所以也报了错误。最后决定,还是写个类把数组作为成员。

$arr = array("t" => "hello");
print_r($arr);
$tarr = new Arr($arr);
print($tarr->getValue("t"));
print($tarr->getValue("a"));
if ($tarr->getValue("t")) {
	
	print("success");
	
} else {
	
	print("error");
	
}

if ($tarr->getValue("a")) {

	print("success");

} else {
	
	print("error");
	
}

class Arr {
	
	private $arr = array();
	
	public function __construct($arr) {
		
		if (is_array($arr)) {
			
			$this->arr = $arr;
			
		}
		
	}
	
	public function getValue($key) {
		
		return isset($this->arr[$key]) ? $this->arr[$key] : "";
		
	}
	
	//一些自己写的操作数组的函数
	
}
Array ( [t] => hello ) 
hello
success
error

问题解决。

9c4fd5327f4aeb8dfefeae45688378be.jpg

1
共 1 页
相关内容