以前私が行った PHP の面接の質問は次のようなものでした。3 番目の変数を使用せずに 2 つの変数の値を交換します。通常、元の 2 つの変数の値を交換するには 3 番目の中間変数を使用しますが、この問題では中間変数を使用できないことが要求され、これも初心者にとっては難しい問題です。 インターネット上で見つかったいくつかのメソッドを以下にまとめます:
コードをコピーします コードは次のとおりです:
// 文字列バージョンは、substr と strlen の 2 つのメソッドを組み合わせて実装されます
$a="a" ;
$b="b";
echo '交換前 $a:'.$a.',$b:'.$b.'
';
$a.=$b;
$b=substr($a,0,(strlen($a)-strlen($b)));
$a=substr($a, strlen($b));
echo '$a 交換後:' .$a.',$b:'.$b.'
';
echo '-------------- --------
';
//文字列バージョンは str_replace メソッドを使用して実装されます
$a="a";
$b="b";
echo '$a交換前:'.$a.', $b:'.$b.'
';
$a.=$b;
$b=str_replace($b, "", $a) ;
$a=str_replace($b, "", $a);
echo '交換後 $a:'.$a.',$b:'.$b.'
';
echo '----------- ----------------
';
//文字列バージョンはリストメソッドとarray
$a="a";
$b= "b";
echo '交換前 $a:'.$a.',$b:'.$b.'
';
list($b,$a)=array($a ,$b);
echo '交換後 $a:'.$a.',$b:'.$b.'
echo '----------- ---------------
';
//XOR 演算は文字列と数値の両方に適用できます
$a='a';
$b='b ';
echo '交換前 $a:'.$a.',$b:'.$b.'
';
$ a=$a^$b;
$b=$b ^$a;
$a=$a^$b;
echo '交換後 $a:'.$a.',$b:'.$b .'
';
echo ' -----------------------
';
//のみ数値に適用可能
$a=3;
$b=5 ;
echo '交換前$a:'.$a.',$b:'.$b.'
';
$a =$a+$b;
$b=$a-$ b;
$a=$a-$b;
echo '交換後 $a:'.$a.',$b:'.$b.'
';
http://www.bkjia.com/PHPjc/327076.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327076.html技術記事以前私が行った PHP の面接の質問は次のようなものでした。3 番目の変数を使用せずに 2 つの変数の値を交換します。一般に、3 番目の中間変数は、元の 2 つの変数の値交換を実現するために使用されます...