创建一个函数来处理许多变量

时间:2013-07-30 00:07:48

标签: php

php noob在这里尝试创建一个函数,但无法在Web上找到能够解决我的困惑的资源。在这里;

我想创建一个带变量名的函数,例如

小偷的机智(4)

并将其转换为

thiefswit.jpg

到目前为止,这就是我所拥有的 此代码被加载以测试我的功能     

require_once 'functions.php';

$mod = "Thief's Wit (4)";
convertImage($mod);
echo $mod;
?>

此代码是实际功能

function convertImage($string)
{
$string = preg_replace('/\s+/', '', $string);
$string = str_replace("'", "", $string);
$stringlength = strlen($string);
substr ($string, 0, ($stringlength-4));
$string = strtolower ($string);
$string = "$string" . ".jpg";
return $string;
}
?>

字符串的格式始终为

姓名在这里(4)

这就是我将长度为4的原因。

当我运行此功能时,它会回显原始字符串。

这里有什么帮助吗? 我是PHP的新手并且不太懂

a)函数结尾处的'return'是什么 b)函数本身是否知道用你告诉它在另一个文件中操作的变量替换“$ string”?在这种情况下$ mod。

谢谢!

5 个答案:

答案 0 :(得分:2)

您需要保存该功能的输出:

$mod = "Thief's Wit (4)";
$mod = convertImage($mod);  // save the return value to $mod variable
echo $mod;

函数的返回值是调用函数时得到的值。因此convertImage($mod)将具有您返回的值。此时,您需要将结果存储到变量中,您可以通过执行$mod = convertImage($mod);

来执行此操作

另一种方法是“通过引用传递”,修改函数的参数将修改变量本身。

function convertImage(&$string) // use &$string to pass by reference
{
  $string = preg_replace('/\s+/', '', $string);
  $string = str_replace("'", "", $string);
  $stringlength = strlen($string);
  substr ($string, 0, ($stringlength-4));
  $string = strtolower ($string);
  $string = "$string" . ".jpg";
  //return $string;  this won't be needed anymore
}

...

$mod = "Thief's Wit (4)";
convertImage($mod);
echo $mod;

答案 1 :(得分:2)

您必须返回您创建的新字符串

$mod = convertImage($mod);

或通过引用传递,这意味着函数convertImage使用与传入的字符串相同的引用作为其调用者

function convertImage(&$string) {...}
convertImage($mod); // $mod will point to a new string after the call

答案 2 :(得分:1)

function convertImage(&$string) {
$string = strtolower(preg_replace("/[^a-zA-Z]+/", "", $string));
}

应该做你需要的一切 - 它会删除任何标点符号和数字等,并使其成为小写。

编辑以允许通过引用传递

答案 3 :(得分:0)

您没有在任何地方分配变量值。要获得实际结果,您需要将函数返回值赋给变量,如下所示:

$mod = convertImage($mod);

一旦实际的功能输出存储在变量中,您就可以随意使用它。

演示:http://codepad.org/naFB74K6

答案 4 :(得分:0)

<?php
    function convertImage(&$string)
    {
        $string = preg_replace('/\s+/', '', $string);       //Thief'sWit(4)
        $string = str_replace("'", "", $string);            //ThiefsWit(4)
        $string = substr($string, 0, strlen($string)-3);    //ThiefsWit
        $string = strtolower($string);                      //thiefswit
        return $string.".jpg";
    }
    $mod = "Thief's Wit (4)";
    convertImage($mod);
    echo $mod;
?>