Php &引用;数组“U键”存在();工作不正常 代码 处境 当我使用参数“uk/page two”调用函数时,它返回描述 当我使用参数“uk/page”调用函数时,它返回false而不是空字符串 问题

Php &引用;数组“U键”存在();工作不正常 代码 处境 当我使用参数“uk/page two”调用函数时,它返回描述 当我使用参数“uk/page”调用函数时,它返回false而不是空字符串 问题,php,arrays,array-key-exists,Php,Arrays,Array Key Exists,我希望它返回空字符串,并且仅当传递的参数在数组中不作为键存在时才返回false 您可以将功能更改为以下内容: $descriptionArr = array( "uk/page"=>"", "uk/page-two"=>"description of page 2"); function getDescription($uri){ if (array_key_exists($uri, $descriptionArr)) { return $description

我希望它返回空字符串,并且仅当传递的参数在数组中不作为键存在时才返回false

您可以将功能更改为以下内容:

$descriptionArr = array( "uk/page"=>"", "uk/page-two"=>"description of page 2");

function getDescription($uri){
    if (array_key_exists($uri, $descriptionArr)) {
      return $descriptionArr[$uri];
    } else {
      return false;
    }
}
这应该起作用:

function getDescription($uri) {
    if (isset($descriptionArr[$uri])) {
      return $descriptionArr[$uri];
    } else {
      return false;
    }
}

您是否尝试将值设置为“NULL”而不是空字符串?这不会,因为
$descriptionArr
在函数中不可用。它可以工作,我在函数中有数组,所以这不是问题所在。有人能解释一下什么是错误的吗数组u键…是否正确?
==
(和
!==
)不允许类型转换。请参见函数已返回布尔值,因此显式!==这是多余的。
$descriptionArr = array( "uk/page"=>"", "uk/page-two"=>"description of page 2");

function getDescription($uri, $descriptionArr){
    if (false !== array_key_exists($uri, $descriptionArr)) {
      return $descriptionArr[$uri];
    } else {
      return false;
    }
}