<span style="color: #008080;"> 1</span> <span style="color: #000000;">php</span><span style="color: #008080;"> <br> 2</span> //<span style="color: #000000;"><span style="color: #000000;">深入理解PHP对象赋值</span> </span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">echo</span> '<pre class="brush:php;toolbar:false">'<span style="color: #000000;">; </span><span style="color: #008080;"> 4</span> <span style="color: #008080;"> 5</span> <span style="color: #800080;">$obj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> StdClass; </span><span style="color: #008080;"> 6</span> <span style="color: #800080;">$obj</span>->name = 'Pig'<span style="color: #000000;">; </span><span style="color: #008080;"> 7</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$obj</span>); <span style="color: #008000;">//</span><span style="color: #008000;">object(stdClass)#1 (1) { ["name"]=> string(3) "Pig" }</span> <span style="color: #008080;"> 8</span> <span style="color: #008080;"> 9</span> <span style="color: #800080;">$copy</span> = <span style="color: #800080;">$obj</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> $obj ,$copy都是new StdClass返回的同一个标识符的拷贝</span> <span style="color: #008080;">10</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$copy</span>); <span style="color: #008000;">//</span><span style="color: #008000;">object(stdClass)#1 (1) { ["name"]=>string(3) "Pig" }</span> <span style="color: #008080;">11</span> <span style="color: #008080;">12</span> <span style="color: #800080;">$objRef</span> = &<span style="color: #800080;">$obj</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 此时会将$obj转换成引用,然后赋值给$objRef,因此$obj,$objRef都为引用 </span> <span style="color: #008080;">13</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$objRef</span>); <span style="color: #008000;">//</span><span style="color: #008000;">object(stdClass)#1 (1) { ["name"]=>string(3) "Pig" }</span> <span style="color: #008080;">14</span> <span style="color: #008080;">15</span> <span style="color: #800080;">$objClone</span> = <span style="color: #0000ff;">clone</span> <span style="color: #800080;">$obj</span>; <span style="color: #008000;">//</span><span style="color: #008000;">新空间</span> <span style="color: #008080;">16</span> <span style="color: #800080;">$obj</span>->name = 'After Clone'<span style="color: #000000;">; </span><span style="color: #008080;">17</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$objClone</span>); <span style="color: #008000;">//</span><span style="color: #008000;">object(stdClass)#1 (1) { ["name"]=>string(3) "Pig" }</span> <span style="color: #008080;">18</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$obj</span>); <span style="color: #008000;">//</span><span style="color: #008000;">object(stdClass)#1 (1) { ["name"]=>string(11) "After Clone" } </span><span style="color: #008080;">19</span> <span style="color: #008080;">20</span> <span style="color: #008000;">//unset是删除引用效果</span> <span style="color: #008080;">21</span> <span style="color: #800080;">$nameRef</span> = &<span style="color: #800080;">$obj</span>->name; <span style="color: #008000;">//</span><span style="color: #008000;">$obj->name被转换成引用(& string),然后赋给$nameRef</span> <span style="color: #008080;">22</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$obj</span>); <span style="color: #008000;">//</span><span style="color: #008000;">object(stdClass)#2 (1) { ["name"]=>&string(11) "After Clone" }</span> <span style="color: #008080;">23</span> <span style="color: #0000ff;">unset</span>(<span style="color: #800080;">$nameRef</span>); <span style="color: #008000;">//</span><span style="color: #008000;">删除引用</span> <span style="color: #008080;">24</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$obj</span>); <span style="color: #008000;">//</span><span style="color: #008000;">object(stdClass)#1 (1) { ["name"]=>string(11) "After Clone" } </span><span style="color: #008080;">25</span> <span style="color: #008080;">26</span> <span style="color: #008000;">//null是赋值效果 </span> <span style="color: #008080;">27</span> <span style="color: #800080;">$nameRef</span> = &<span style="color: #800080;">$obj</span>->name; <span style="color: #008000;">//</span><span style="color: #008000;">恢复name的引用</span> <span style="color: #008080;">28</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$obj</span>); <span style="color: #008000;">//</span><span style="color: #008000;">object(stdClass)#2 (1) { ["name"]=>&string(11) "After Clone" }</span> <span style="color: #008080;">29</span> <span style="color: #800080;">$nameRef</span> = <span style="color: #0000ff;">null</span><span style="color: #000000;">; </span><span style="color: #008080;">30</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$obj</span>); <span style="color: #008000;">//</span><span style="color: #008000;">object(stdClass)#2 (1) { ["name"]=>&NULL }</span> <span style="color: #008080;">31</span> <span style="color: #008080;">32</span> <span style="color: #0000ff;">unset</span>(<span style="color: #800080;">$objRef</span>); <span style="color: #008000;">//</span><span style="color: #008000;">仅仅删除了引用</span> <span style="color: #008080;">33</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$obj</span>); <span style="color: #008000;">//</span><span style="color: #008000;">object(stdClass)#1 (1) { ["name"]=>&NULL }</span> <span style="color: #008080;">34</span> <span style="color: #008080;">35</span> <span style="color: #800080;">$objRef</span> = &<span style="color: #800080;">$obj</span>; <span style="color: #008000;">//</span><span style="color: #008000;">恢复对象引用</span> <span style="color: #008080;">36</span> <span style="color: #800080;">$obj</span>->name = 'Lucy'<span style="color: #000000;">; </span><span style="color: #008080;">37</span> <span style="color: #800080;">$obj</span> = <span style="color: #0000ff;">null</span>; <span style="color: #008000;">//</span><span style="color: #008000;">赋值$obj为null,$obj只是new StdClass的标识拷贝,不会影响其内容。 </span><span style="color: #008080;">38</span> <span style="color: #008000;"> //$objRef做为$obj的引用,会同时被赋值null </span><span style="color: #008080;">39</span> <span style="color: #008000;"> //等价 $objRef = null;</span> <span style="color: #008080;">40</span> <span style="color: #008080;">41</span> <span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$obj</span>,<span style="color: #800080;">$copy</span>,<span style="color: #800080;">$objRef</span>,<span style="color: #800080;">$objClone</span><span style="color: #000000;">); </span><span style="color: #008080;">42</span> <span style="color: #008000;">//</span><span style="color: #008000;"> NULL, </span><span style="color: #008080;">43</span> <span style="color: #008000;">// object(stdClass)#1 (1) { ["name"]=>&string(4) "Lucy" }, </span><span style="color: #008080;">44</span> <span style="color: #008000;">// NULL, </span><span style="color: #008080;">45</span> <span style="color: #008000;">// object(stdClass)#1 (1) { ["name"]=>string(3) "Pig" }</span> <span style="color: #008080;">46</span> <span style="color: #008080;">47</span> ?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

メモ帳++7.3.1
使いやすく無料のコードエディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック









