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

时间:2015-01-25 07:59:53

标签: php class

首先看看我的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();
?>

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

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

如何以正确的方式声明上述数组元素?

2 个答案:

答案 0 :(得分:0)

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

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

    // do something else
}

答案 1 :(得分:0)

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相关的任何内容,因为这个例子不需要。