如何在 php 中的函数参数中将数组索引声明为布尔值

how to declare array index as boolean in function parameter in php

先看看我的php脚本:

<?php
class user{
public function check_array($option['myname']=FALSE){
if($option['myname']==False){
 echo $option['yourname'];
}else{
 echo $option['myname'];
}
}
$user = new user();
$option['yourname']='Mr. X';
$option['myname']='Mamun';
$user->check_array();
?>

Objective 是我的脚本是在 class 方法调用中传递 argument/parameter。如果参数是一个数组,并且如果我想将数组元素声明为 False(默认情况下),如何以正确的方式声明它。

以上代码无效。它显示以下错误: 解析错误:语法错误,意外的“[”,期待“)”.........

如何正确声明上述数组元素?

不能为函数参数的键声明默认值。 您可以通过多种方式实现您的目标,例如:

public function check_array($option) {
    if (is_array($option) && !isset($option['myname'])) {
        $option['myname'] = false;
    }

    // do something else
}
function check_array(array $option) {
    $option += array('myname' => false, 'yourname' => null);

    if ($option['myname'] !== false) {
        echo $option['myname'];
    } else {
        echo $option['yourname'];
    }
}

$option = array(
    'yourname' => 'Mr. X',
    'myname'   => 'Mamun'
);
check_array($option);

您不能将数组结构及其默认内容声明为函数签名的一部分,这根本不可能,而且可以说毫无意义。不过,您可以使用 + 在函数内部以编程方式简单地使用默认值修改数组。您还可以通过类型提示要求参数是 array,我在上面已经完成了。

我还冒昧地删除了与 class 相关的所有内容,因为对于此示例来说没有必要。