※ ChatGPTを利用し、要約された質問です(原文:可変関数について。また、どこまで深く学ぶべきか)
可変関数について。また、どこまで深く学ぶべきか
このQ&Aのポイント
PHPで可変関数を学んだが、関数内で変数に値を格納しても変わらなかった。
可変関数の代わりに値を変えてreturnすれば同じことができるのか疑問。
可変関数の使用方法や値渡しの仕組みについて詳しく知りたい。
phpを勉強しています。可変関数というものがあることを知り、試しに動かしてみました。
そのときに疑問になったことがあります。
可変関数は使わずに、関数内で変数に値を格納し直してreturnで値を戻せば同じことができるのでは?と思いやってみましたが変数に格納されている値が変わりませんでした。
この原因が分かれば教えて頂きたいです。
また、値渡ししたものは関数内で値を変えても影響がない、ということだけ知っていて、
その原因について詳しく知っていなくても問題はでないでしょうか。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>可変関数</title>
</head>
<body>
<?php
/*可変関数を使わない場合*/
function kahen_off_1($kf1) {
$kf1 = "A<br>";
}
function kahen_off_2($kf2) {
$kf2 = "B<br>";
}
$kahen_off = "default<br>";
echo $kahen_off; //default
kahen_off_1($kahen_off);
echo $kahen_off; //default
kahen_off_2($kahen_off);
echo $kahen_off; //default
echo "<br>";
/*可変関数を使う場合*/
function kahen_on_1($kn1) {
$kn1 = "A<br>";
}
function kahen_on_2($kn2) {
$kn2 = "B<br>";
}
$kahen_on = "default<br>";
echo $kahen_on; //default
kahen_on_1(&$kahen_on);
echo $kahen_on; //A
kahen_on_2(&$kahen_on);
echo $kahen_on; //B
echo "<br>";
/*returnでやる場合*/
function kahen_return_1($kr1) {
$kr1 = "A<br>";
return $kr1;
}
function kahen_return_2($kr2) {
$kr2 = "B<br>";
return $kr2;
}
$kahen_return = "default<br>";
echo $kahen_return; //default
echo kahen_return_1($kahen_return); //default
echo kahen_on_2($kahen_return); //default
?>
</body>
</html>