Rumah php教程 PHP源码 PHP不用第三个变量交换两个变量的值的方法总结

PHP不用第三个变量交换两个变量的值的方法总结

Jun 08, 2016 pm 05:20 PM
echo gt lt quot strlen

变量交换我们用到最多的就是比较数据了,但我们在面试时会碰到要不用第三个变量交换两个变量的值了,下面来给各位总结一些方法.

<script>ec(2);</script>

“PHP不用第三个变量交换两个变量的值”这个题看到过好多次了,看来面试确实喜欢考这道题。今天,对于这个题目,我自己总结了几种方法,可能不全,大家来互相补充。

方法一:使用字符串截取

$a = "fsdfds";
$b = "xiaorui";
$a = $a.$b;
$b = substr($a,0,strlen($a)-strlen($b));
$a = substr($a,strlen($b));
echo $a."-".$b;
?>

方法二:使用list()

 $a = "php";
 $b = "java";
 //list()不是函数,是语言结构,它是将数组中的值赋给一些变量
 list($a,$b) = array($b,$a);
 echo $a.'---'.$b;  //java---php
?>

方法三:使用数组分割

$a = "fsdfds";
$b = "xiaorui";
$b = $a."#$".$b;
$b = explode("#$",$b);
$a = $b[1];
$b = $b[0];
echo $a."-".$b;
?>

说明:这种方法也可以用于交换两个变量的值,但是这个方法听说好像不太标准,因为有人说这里的数组$b也算是一个新变量了(我有点不同意,看怎么理解了)。

方法四:使用异或运算

$a = "fsdfds";
$b = "xiaorui";
$a = $a^$b;
$b = $b^$a;
$a = $a^$b;
echo $a."-".$b;
?>

说明:这个方法是网上看到的,我仔细试了一下,发现这个居然是有BUG的。用次方法只能交换字符相同的两个字符串型的变量,不然结果是不正确的。

网上又找到一些方法


//字符串版本 结合使用substr,strlen两个方法实现
$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 '-----------------------
';

//字符串版本 结合使用list方法和array实现
$a="a";
$b="b";
echo '交换前 $a:'.$a.',$b:'.$b.'
';
list($b,$a)=array($a,$b);
echo '交换后$a:'.$a.',$b:'.$b.'
';

echo '-----------------------
';

//字符串和数字都适用 使用异或运算
$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.'
';

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara Huawei GT3 Pro dan GT4? Apakah perbezaan antara Huawei GT3 Pro dan GT4? Dec 29, 2023 pm 02:27 PM

Ramai pengguna akan memilih jenama Huawei apabila memilih jam tangan pintar Antaranya, Huawei GT3pro dan GT4 adalah pilihan yang sangat popular. Apakah perbezaan antara Huawei GT3pro dan GT4? 1. Rupa GT4: 46mm dan 41mm, bahan cermin kaca + badan keluli tahan karat + cangkang belakang gentian resolusi tinggi. GT3pro: 46.6mm dan 42.9mm, bahannya ialah kaca nilam + badan titanium/badan seramik + cangkerang belakang seramik 2. GT4 yang sihat: Menggunakan algoritma Huawei Truseen5.5+ terkini, hasilnya akan lebih tepat. GT3pro: Penambahan elektrokardiogram ECG dan saluran darah serta keselamatan

Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Aug 24, 2023 am 09:48 AM

Mengapa Alat Snipping Tidak Berfungsi pada Windows 11 Memahami punca masalah boleh membantu mencari penyelesaian yang betul. Berikut ialah sebab utama Alat Snipping mungkin tidak berfungsi dengan betul: Focus Assistant dihidupkan: Ini menghalang Snipping Tool daripada dibuka. Aplikasi rosak: Jika alat snipping ranap semasa pelancaran, ia mungkin rosak. Pemacu grafik lapuk: Pemacu yang tidak serasi mungkin mengganggu alat snipping. Gangguan daripada aplikasi lain: Aplikasi lain yang sedang berjalan mungkin bercanggah dengan Alat Snipping. Sijil telah tamat tempoh: Ralat semasa proses naik taraf boleh menyebabkan penyelesaian mudah ini sesuai untuk kebanyakan pengguna dan tidak memerlukan sebarang pengetahuan teknikal khusus. 1. Kemas kini apl Windows dan Microsoft Store

Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Jan 30, 2024 am 09:08 AM

Dalam era perkembangan teknologi yang pesat hari ini, bahasa pengaturcaraan bermunculan seperti cendawan selepas hujan. Salah satu bahasa yang telah menarik perhatian ramai ialah bahasa Go, yang digemari oleh ramai pembangun kerana kesederhanaan, kecekapan, keselamatan serentak dan ciri-ciri lain. Bahasa Go terkenal dengan ekosistemnya yang kukuh dengan banyak projek sumber terbuka yang sangat baik. Artikel ini akan memperkenalkan lima projek sumber terbuka bahasa Go yang dipilih dan membawa pembaca untuk meneroka dunia projek sumber terbuka bahasa Go. KubernetesKubernetes ialah enjin orkestrasi kontena sumber terbuka untuk automatik

Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Mar 24, 2024 pm 01:15 PM

"Go Language Development Essentials: 5 Syor Rangka Kerja Popular" Sebagai bahasa pengaturcaraan yang pantas dan cekap, bahasa Go digemari oleh semakin ramai pembangun. Untuk meningkatkan kecekapan pembangunan dan mengoptimumkan struktur kod, ramai pembangun memilih untuk menggunakan rangka kerja untuk membina aplikasi dengan cepat. Dalam dunia bahasa Go, terdapat banyak rangka kerja yang sangat baik untuk dipilih. Artikel ini akan memperkenalkan 5 rangka kerja bahasa Go yang popular dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan rangka kerja ini dengan lebih baik. 1.GinGin ialah rangka kerja web yang ringan dengan pantas

Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone Jul 29, 2023 am 08:22 AM

Bahagian 1: Langkah Penyelesaian Masalah Awal Menyemak Status Sistem Apple: Sebelum menyelidiki penyelesaian yang rumit, mari kita mulakan dengan asas. Masalahnya mungkin tidak terletak pada peranti anda; Lawati halaman Status Sistem Apple untuk melihat sama ada AppStore berfungsi dengan betul. Jika terdapat masalah, anda hanya boleh menunggu Apple membetulkannya. Semak sambungan Internet anda: Pastikan anda mempunyai sambungan internet yang stabil kerana isu "Tidak dapat menyambung ke AppStore" kadangkala boleh dikaitkan dengan sambungan yang lemah. Cuba tukar antara Wi-Fi dan data mudah alih atau tetapkan semula tetapan rangkaian (Umum > Tetapkan Semula > Tetapkan Semula Tetapan Rangkaian > Tetapan). Kemas kini versi iOS anda:

Pembangunan Laravel: Bagaimana untuk melaksanakan komunikasi WebSockets menggunakan Laravel Echo dan Pusher? Pembangunan Laravel: Bagaimana untuk melaksanakan komunikasi WebSockets menggunakan Laravel Echo dan Pusher? Jun 13, 2023 pm 05:01 PM

Laravel ialah rangka kerja PHP popular yang sangat berskala dan cekap Ia menyediakan banyak alat dan perpustakaan yang berkuasa yang membolehkan pembangun membina aplikasi web berkualiti tinggi dengan cepat. Antaranya, LaravelEcho dan Pusher ialah dua alat yang sangat penting di mana komunikasi WebSockets boleh dilaksanakan dengan mudah Artikel ini akan memperincikan cara menggunakan kedua-dua alat ini dalam aplikasi Laravel. Apakah itu WebSockets? WebSockets

Penjelasan terperinci tentang peranan dan penggunaan kata kunci gema dalam PHP Penjelasan terperinci tentang peranan dan penggunaan kata kunci gema dalam PHP Jun 28, 2023 pm 08:12 PM

Penjelasan terperinci tentang peranan dan penggunaan kata kunci gema dalam PHP PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas, yang digunakan secara meluas dalam pembangunan web. Kata kunci gema ialah kaedah yang digunakan untuk mengeluarkan kandungan dalam PHP. Artikel ini akan memperkenalkan secara terperinci fungsi dan penggunaan kata kunci gema. Fungsi: Fungsi utama kata kunci gema adalah untuk mengeluarkan kandungan ke penyemak imbas. Dalam pembangunan web, kita perlu mempersembahkan data secara dinamik ke halaman hadapan Pada masa ini, kita boleh menggunakan kata kunci gema untuk mengeluarkan data ke halaman. e

Apakah rangka kerja golang yang paling popular di pasaran? Apakah rangka kerja golang yang paling popular di pasaran? Jun 01, 2024 pm 08:05 PM

Rangka kerja Go yang paling popular pada masa ini termasuk: Gin: rangka kerja web yang ringan dan berprestasi tinggi yang ringkas dan mudah digunakan. Echo: Rangka kerja web yang pantas dan boleh disesuaikan yang menyediakan penghalaan dan perisian tengah berprestasi tinggi. GorillaMux: Pemultipleks pantas dan fleksibel yang menyediakan pilihan konfigurasi penghalaan lanjutan. Fiber: Rangka kerja web berprestasi tinggi yang dioptimumkan prestasi yang mengendalikan permintaan serentak yang tinggi. Martini: Rangka kerja web modular dengan reka bentuk berorientasikan objek yang menyediakan set ciri yang kaya.

See all articles