【问题标题】:how to declare array index as boolean in function parameter in php如何在php的函数参数中将数组索引声明为布尔值
【发布时间】:2015-01-25 07:59:52
【问题描述】:

先看看我的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(默认情况下),那么如何以正确的方式声明它。

上面的代码不工作。它显示以下错误: 解析错误:语法错误,意外 '[',期待 ')' ..........

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

【问题讨论】:

    标签: php class


    【解决方案1】:
    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 相关的任何内容,因为本示例不需要这些内容。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-23
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        • 2019-03-29
        • 2013-10-04
        • 2021-09-18
        • 1970-01-01
        相关资源
        最近更新 更多