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。
谢谢!
答案 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);
一旦实际的功能输出存储在变量中,您就可以随意使用它。
答案 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;
?>