0

php noob ここで関数を作成しようとしていますが、私の混乱を取り除くウェブ上のリソースを見つけることができません。ここに行きます。

たとえば、変数名を取る関数を作成したい

泥棒の知恵 (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 を substr にする理由です。

この関数を実行すると、元の文字列がエコーされます。

ここで何か助けはありますか?PHP初心者でよくわかりません

a) 関数の最後で「return」が何をするか、b) 関数は本質的に、「$string」を別のファイルで操作するように指示した変数に置き換えることを知っていますか? この場合、$mod.

ありがとう!

4

5 に答える 5

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;
于 2013-07-30T00:10:36.847 に答える