php

php has和isset的使用

2023-09-20

PHP中的has,用于判断某个对象或数组是否拥有某个属性或元素。

例如,在一个数组中,判断是否存在某个元素:

$arr = array('apple', 'orange', 'banana');

var_dump(isset($arr[0])); //true

var_dump(isset($arr[3])); //false


在一个对象中,判断是否存在某个属性:

class fruit {

   private $name = 'apple';

   public $color = 'red';

   public function getInfo() {

      echo "This is a {$this->name}, color is {$this->color}";

   }

}

$fruit = new fruit();

var_dump(isset($fruit->color)); //true

var_dump(isset($fruit->name)); //false

如果需要判断一个属性或元素的值是否为null,可以使用is_null()函数。例如:


$arr = array('name' =>'Tom', 'age' =>null);

var_dump(isset($arr['name'])); //true

var_dump(is_null($arr['name'])); //false

var_dump(isset($arr['age'])); //true

var_dump(is_null($arr['age'])); //true

has在一些框架中也被广泛使用,例如Laravel的Request类中,用于判断是否存在某个请求参数:


use Illuminate\Http\Request;

//...

public function index(Request $request) {

   if($request->has('name')) {

      //do something

   }

}

需要注意的是,has在判断属性或元素是否存在时,并不关心它的值是什么。因此,如果需要判断某个属性或元素的值,需要使用其他函数或操作符。

总之,has是一个非常常见的PHP函数,在开发中也经常会用到。在使用时,需要充分考虑其用途与使用场景,以避免不必要的错误。