PHP 는 세 번 째 변 수 를 사용 하지 않 고 두 변수의 값 을 교환 하 는 해결 방법 입 니 다.

예전 에 phop 면접 문 제 를 풀 어 본 적 이 있 습 니 다.세 번 째 변 수 를 사용 하지 않 고 두 변 수 를 교환 하 는 값 을 실현 합 니 다.일반적으로 세 번 째 중간 변 수 를 통 해 원래 두 변수의 값 교환 을 실현 하지만 이 문 제 는 중간 변 수 를 사용 하지 말 라 고 요구 하 는데 이것 은 초보 자 에 게 도 어 려 운 문제 라 고 할 수 있다.인터넷 에서 찾 은 몇 가지 방법 은 다음 과 같다.

// substr,strlen
$a="a";
$b="b";
echo ' $a:'.$a.',$b:'.$b.'<br />';
$a.=$b;
$b=substr($a,0,(strlen($a)-strlen($b)));
$a=substr($a, strlen($b));
echo ' $a:'.$a.',$b:'.$b.'<br />';

echo '-----------------------<br/>';

// str_replace
$a="a";
$b="b";
echo ' $a:'.$a.',$b:'.$b.'<br />';
$a.=$b;
$b=str_replace($b, "", $a);
$a=str_replace($b, "", $a);
echo ' $a:'.$a.',$b:'.$b.'<br />';

echo '-----------------------<br/>';

// list array
$a="a";
$b="b";
echo ' $a:'.$a.',$b:'.$b.'<br />';
list($b,$a)=array($a,$b);
echo ' $a:'.$a.',$b:'.$b.'<br />';

echo '-----------------------<br/>';

//
$a='a';
$b='b';
echo ' $a:'.$a.',$b:'.$b.'<br />';
$a=$a^$b;
$b=$b^$a;
$a=$a^$b;
echo ' $a:'.$a.',$b:'.$b.'<br />';

echo '-----------------------<br/>';

//
$a=3;
$b=5;
echo ' $a:'.$a.',$b:'.$b.'<br />';
$a=$a+$b;
$b=$a-$b;
$a=$a-$b;
echo ' $a:'.$a.',$b:'.$b.'<br />';

좋은 웹페이지 즐겨찾기