PHP定义以键值对作为参数的函数

时间:2014-04-12 06:53:02

标签: php

我正在尝试创建一个与array函数具有相同参数的函数。示例代码是

<?php
function a ($k=>$v){
   echo "key is $k and value is $v";
}

a ('hello' => 'world');

当我尝试运行此代码时。我得到了一个错误,如下所示

  

解析错误:语法错误,意外&#39; =&gt;&#39; (

我已将代码放在http://codepad.viper-7.com/SzVBmb

我想知道是否有可能用php做我想做的事。

编辑:   实现它的可能方法,但我不是很喜欢:

 function a ($arr){
     $v = reset($arr);
     $k = key($arr);
     echo $key is $k and value is $v";
  }
  a(["hello"=>"world"]);

我也搜索了这种东西的元组,但没有运气。

4 个答案:

答案 0 :(得分:0)

您没有正确地将数组发送到'hello' => 'world'

中添加array()所需的功能

这是正确的

function a ($array)
  {

   $key  = array_keys($array);
       echo "key is $key[0] and value is ".$array[$key[0]];
  }

 a (array('hello' => 'world'));

或者

function a ($key,$value)
  {
     echo "key is $key and value is ".$value;
  }

 a ('hello' , 'world');

OR

function a ($param)
  {
     $param = explode('=>',$param);
     echo "key is $param[0] and value is ".$param[1];
  }

 a ('hello=>world');

答案 1 :(得分:0)

试试这个:

<?php
function a($a=array()){
    foreach($a as $k=>$v){
        echo "key is $k and value is $v";
    }
}

a(array('hello' => 'world'));
?>

答案 2 :(得分:0)

试试这个

<?php
$fruits = array("d" => "lemon", "a" => "orange");

function test_print($item2, $key)
{
    echo "$key. $item2<br />\n";
}

array_walk($fruits, 'test_print');
?>

答案 3 :(得分:0)

您基本上要求foreach循环但语法不同。看起来你只想得到第一套。

function a(array $arr) {
  list($k) = array_keys($arr);
  $r  = array($k=>$arr[$k]);
  unset($arr[$k]);
  return $r;
}

var_dump(a(array("Hi" => "World", "John" => "Smith")));

节目输出:

array(1) {
  ["Hi"]=>
  string(5) "World"
}

Demo