创建一个接受参数并传递变量的函数

BroKeOne

我正在创建一个脚本,该脚本将在文本文件中找到一个字段并获取所需的值。

首先使用file()函数将我的txt逐行加载到数组中。然后,我使用explode()为所选行上的字符串创建一个数组。我为数组分配标签以描述$ Key和$ Value。

$line = file($myFile);
$arg = 3
$c = explode(" ", $line[$arg]);
$key = strtolower($c[0]);
if (strpos($c[2], '~') !== false) {
 $val = str_replace('~', '.', $c[2]);
}else{
$val = $c[2];
}

这可以正常工作,但是对于我想从txt文件中删除的所有内容,要一遍又一遍地做很多代码。因此,我想创建一个函数,该函数可以使用返回$ key和$ val值的参数来调用。这就是我失败的地方:

<?php

    /**
     * @author Jason Moore
     * @copyright 2014
     */
    global $line;
    $key = '';
    $val = '';
    $myFile = "player.txt";
    $line = file($myFile); //file in to an array
    $arg = 3;
    $Character_Name = 3
    function get_plr_data2($arg){
    global $key;
    global $val;
    $c = explode(" ", $line[$arg]);
    $key = strtolower($c[0]);
    if (strpos($c[2], '~') !== false) {
     $val = str_replace('~', '.', $c[2]);
    }else{
    $val = $c[2];
    }
    return;
    }
    get_plr_data2($Character_Name);
    echo "This character's ",$key,' is ',$val;
    ?>

我认为我先在main中设置值,然后在函数中将它们设置为全局值,从而涵盖了范围。我觉得自己已经接近了,但我只是想念一些东西。我觉得应该有类似的东西,return $key,$val;但这是行不通的。我可以返回一个数组,但是最终我将在数组信息中键入同样多的代码。

我缺少函数和函数参数。我想传递和参数示例:get_plr_data2($Character_Name);参数标识了我们要从中获取数据的行。

任何帮助,将不胜感激。

::更新::

多亏了答案,我才得以通过数组。

但是我的问题取决于我输入的参数get_plr_data2($arg)的数量不同。

我认为我可以设置我可以得到的最大num值,但这当然是行不通的,因为我最终得到的是未定义的偏移量。

$a = $cdata[0];$b = $cdata[1];$c = $cdata[2];
$d = $cdata[3];$e = $cdata[4];$f = $cdata[5];
$g = $cdata[6];$h = $cdata[7];$i = $cdata[8];
$j = $cdata[9];$k = $cdata[10];$l = $cdata[11];
return array($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l);

现在,我正在考虑可以使用count函数myCount = count($c);修改或添加更多值来创建所需的偏移量。或更好的选择是,如果有一种方法可以生成return array(),以便它可以为array给出值的数量并返回所有需要的值。我认为也许我只是在使这变得更加困难。

再次感谢您的所有帮助和建议

伏都教417
function get_plr_data2($arg){
   $myFile = "player.txt";
   $line = file($myFile); //file in to an array
   $c = explode(" ", $line[$arg]);
   $key = strtolower($c[0]);
   if (strpos($c[2], '~') !== false) {
    $val = str_replace('~', '.', $c[2]);
   }else{
   $val = $c[2];
   }
   return array($key,$val);
}

使用:

list($key,$val) = get_plr_data2(SOME_ARG);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从另一个函数传递变量

包装一个接受 std::function<double(doule)> 的函数,以便传递接受更多参数的函数

我无法使用从一个函数到另一个函数的传递变量

创建一个接受另一个函数作为参数的函数

从另一个页面传递变量

在python中创建一个主要函数并传递参数

如何创建一个接受带有特定参数作为参数的函数的函数?

传递一个接受任意数量和类型参数的函数作为类模板参数

JavaScript:创建一个函数defineFirstArg,它接受一个函数和一个参数;接受更多参数

使用在另一个函数中接受参数的函数中的变量

如何创建一个函数来接受参数并在调用时增加参数?

如何创建一个最多接受4个参数的构造函数?

创建一个接受 Object 或 PrimitiveType 作为参数的构造函数,然后创建一个相应的列表?

创建了两个虚拟主机到一个目录根目录,但是我需要从虚拟主机传递变量/参数来访问两个不同的页面

如何创建一个接受不同参数类型的通用函数

在 Rust 中,如何创建一个接受“标记组件”作为类型参数的函数?

是否可以创建一个可以接受 UIView 或 UIButton 作为参数的通用函数?

AS3:创建一个将Array和Vector都接受为参数的函数

创建一个构造函数,它可以接受任意数量的参数

创建一个接受枚举变量并返回字符串指针的函数

创建一个将其参数传递给 Surv 函数(或任何其他函数)的函数

打字稿:给定一个函数表,创建一个函数,该函数接受表的键和表中函数的第二个参数

传递一个零与一个参数的函数

将在一个函数中创建的字符串值作为参数传递给函数

在awk中的另一个变量中传递变量

从XSLT中的另一个变量动态传递变量名称

如何将在函数内部创建的变量作为另一个函数的指针传递

创建一个将接受参数的Observable

创建一个接受参数的expressjs中间件