【问题标题】:array values do not work as expected数组值未按预期工作
【发布时间】:2011-11-06 11:28:46
【问题描述】:

我有一个soap函数,它需要3个参数,应该作为带引号的字符串传递。

function('id','username','password');

另一方面,我有一个数组,其中包含:

[0] = > "'id','username','password'"

[1] = > "'id','username','password'"

....

当我 echo $array[0] 输出是 'id','username','password' 并且当我使用 function('id','username','password'); 时没有问题但是当我使用 function($array[0]); 不行。

我用 echo、die、print_r 测试了我的数组...输出与函数预期的一样!!!!

有什么帮助吗?

谢谢; )

【问题讨论】:

  • 传递三个不同的参数,或者传递一个字符串是有区别的...... PHP不会神奇地将字符串转换成三个参数,不管字符串的内容是什么。
  • 为什么你不改变你调用函数的方式并用函数签名正确地做到这一点??

标签: php


【解决方案1】:

仅仅是因为它不能工作。如果您有一个需要 3 个参数的函数,则不能传递单个参数。此外,如果是一个包含您需要的 3 个参数的数组,该函数仍然需要并且需要 3 个参数。因此,如果你给函数一个数组,它将只使用数组作为第一个数组(所以你会有一个意想不到的行为)并将第二个和第三个作为 NULL。

确实php有点神奇,但不能创造奇迹。

【讨论】:

    【解决方案2】:

    您需要更改函数的签名。

    function('id','username','password');
    

    是一个有三个参数的函数。

    function($array[0]);
    

    是一个只有一个参数的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 2019-04-24
      相关资源
      最近更新 更多