$a=new A 和 $a= & new A 到底有没有区别?解决办法
$a=new A 和 $a= & new A 到底有没有区别?
$a=new A; // $a 是 new A 的 指针 的一个拷贝 ( $a 保存的是 指针本身)
$a=& new A; // $a 是 new A 的 指针 的一个 引用 ( $a 保存的是 指针的地址)
以上说法正确吗?
另外:
$c= & $a 的时候, 为什么会把 $a 也变成了 A 的指针的 引用 ?
------解决方案--------------------
$c= & $a 的时候, 为什么会把 $a 也变成了 A 的指针的 引用 ?
是沿袭于 $a=& new A; ?
------解决方案--------------------
嘻嘻,&在C里面是取址符
------解决方案--------------------
php里的变量都是指针,但对于string,int等,赋值=是对象的拷贝,对于对象,赋值=是地址的拷贝(也就是引用),我现在感觉这么理解挺好的。
------解决方案--------------------
无论是 php 的什么版本 new 算符产生的都是引用
$a =& new A;
这种写法是不准确的。把一个对象的引用的引用赋给变量?
所以在 php5.3 就新增了一个错误类型,来规范书写的格式
Deprecated: Assigning the return value of new by reference is deprecated
php5.2及以前不报错,但并不等于就不是错。
就如同你屏蔽了 E_NOTICE 级别错误,但不能说就没有错,毕竟还是使用了 未经定义的变量或下标了嘛
------解决方案--------------------
很纠结的问题
------解决方案--------------------
正统的用法
$c = new A;
就当其它的用法都是扯淡了。
------解决方案--------------------
唉,还是看牛人的博客吧
http://www.laruence.com/2008/09/19/520.html
解释了你6楼的问题
------解决方案--------------------
查了一下手册:
关于引用:
在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针,替代的是,引用是符号表别名。注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身――变量名是目录条目,而变量内容则是文件本身。引用可以被看作是 Unix 文件系统中的 hardlink。
关于new:
Construct an instance of "type" and store the reference to the object into "result".
所以$c = new A;是赋值引用而不是做对象拷贝。 $c = &new A; 是错误的写法。
自 PHP 5 起,new 自动返回引用,因此在此使用 =& 已经过时了并且会产生 E_STRICT 级别的消息。
------解决方案--------------------
关于赋值:
注意赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中一个并不影响另一个。这也适合于在很密集的循环中拷贝一些值例如大数组。也可以使用引用赋值,用 $var = &$othervar; 语法。引用赋值意味着两个变量都指向同一个数据,没有任何数据的拷贝。有关引用的更多信息见引用的说明。在 PHP 5中,对象总是通过引用赋值的,除非明确使用新的 clone关键字。
- PHP code
<?php $a = 1; $b = &$a; $c = $a; $b = 2; echo "a:$a, b:$b, c:$c\n"; $d = $b; $d = 3; echo "a:$a, b:$b, c:$c\n"; class A { public $foo = 1; } $oa = new A; $ob = $oa; $oa->foo = 2; echo "oa:$oa->foo, ob:$ob->foo\n"; ?> <br><font color="#e78608">------解决方案--------------------</font><br>$a =1;<br>$b = & $a; <br>不同的变量指向同一个地址,当其中一个($b=2)改变,那么另一个也会改变($a=2).但是把$b 销毁掉(unset($b))后 $a = 2还是存在的。<br><br>$a =1;<br>$b = $a;//他就是$b=1<br>=> $a =1;$b=1;<br>$b $a 没有一毛钱的关系 ,你是你我是我,谁也管不着谁。<br><br>$a=& new A; 这种东西我还真不用的,没啥意思。 <div class="clear"> </div>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
