Php 创建一个作用于多个变量的函数
这里的php noob试图创建一个函数,但无法在web上找到消除我困惑的资源。就这样 例如,我想创建一个采用变量名的函数 小偷的智慧(4) 并将其转换为 thiefswit.jpg 到目前为止,这是我所拥有的 加载此代码是为了测试我的功能Php 创建一个作用于多个变量的函数,php,Php,这里的php noob试图创建一个函数,但无法在web上找到消除我困惑的资源。就这样 例如,我想创建一个采用变量名的函数 小偷的智慧(4) 并将其转换为 thiefswit.jpg 到目前为止,这是我所拥有的 加载此代码是为了测试我的功能 require_once 'functions.php'; $mod = "Thief's Wit (4)"; convertImage($mod); echo $mod; ?> 此代码是实际功能 require_once 'functions.ph
require_once 'functions.php';
$mod = "Thief's Wit (4)";
convertImage($mod);
echo $mod;
?>
此代码是实际功能
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新手,不太懂PHP
a) “return”在函数末尾的作用以及
b) 函数是否固有地知道用您告诉它在另一个文件中操作的变量替换“$string”?在本例中为$mod
谢谢 您需要保存函数的输出:
$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;
您需要保存函数的输出:
$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;
您必须返回您创建的新字符串
$mod = convertImage($mod);
或pass by reference,这意味着函数convertImage
使用与其调用者相同的对传入字符串的引用
function convertImage(&$string) {...}
convertImage($mod); // $mod will point to a new string after the call
您必须返回您创建的新字符串
$mod = convertImage($mod);
或pass by reference,这意味着函数convertImage
使用与其调用者相同的对传入字符串的引用
function convertImage(&$string) {...}
convertImage($mod); // $mod will point to a new string after the call
应该做所有你需要的-它将剥离任何标点和数字等,并使其小写
编辑以允许通过引用传递
应该做所有你需要的-它将剥离任何标点和数字等,并使其小写
编辑为允许通过引用传递您不会在任何地方分配变量值。要获得实际结果,您需要将函数返回值设置为变量,如下所示:
$mod = convertImage($mod);
一旦实际的函数输出存储在变量中,您就可以在任何地方使用它
演示:您没有在任何地方分配变量值。要获得实际结果,您需要将函数返回值设置为变量,如下所示:
$mod = convertImage($mod);
一旦实际的函数输出存储在变量中,您就可以在任何地方使用它
演示:您没有分配返回值。(您也可以使用一个preg_替换来删除所有非字母。)可能的重复项您没有指定返回值。(你也可以用一个preg_替换掉所有非字母。)sweet的可能副本,谢谢!我还需要替换,以去掉“(4)”。不过这很有帮助!这对你来说应该也可以去掉,因为“(4)”完全是由非字母字符sweet组成的,谢谢!我还需要替换,以去掉“(4)”。不过这很有帮助!这对你来说也应该消除,因为“(4)”完全是由非字母字符组成的。你可以修改它们,这叫做路过reference@Alfie是的,字符串是可变的,我错了两次@Alfie嘿,我随时都会投一张有解释的否决票,从另一方面来说,我知道,没有解释的否决票真的让我恼火:)@JuanMendes我完全同意——正如你所知道的,我不是投否决票的人:)@Alfie即使是,这是应得的你可以修改它们,这叫做“擦肩而过”reference@Alfie对字符串是可变的,我错了两次@阿尔菲,嘿,我随时都会投反对票并解释原因,从另一方面来说,我知道,没有解释的反对票真的让我很恼火:)@JuanMendes我完全同意——正如你所知,我不是投反对票的人:)@Alfie即使是这样,这也是应得的