ホームページ  >  記事  >  バックエンド開発  >  PHP における値渡しと参照渡しの違いを深く理解する

PHP における値渡しと参照渡しの違いを深く理解する

王林
王林オリジナル
2019-09-04 14:34:573076ブラウズ

PHP における値渡しと参照渡しの違いを深く理解する

PHP 値の受け渡しと参照の受け渡しの違い。値渡しの場合と参照渡しの場合

(1) 値渡し: 関数スコープ内の値への変更は関数の外では無視されます

(2) 渡し参照: 関数のスコープ 内部値への変更は、関数の外部でもこれらの変更を反映します。

(3) 利点と欠点:

A: 値で渡す場合、PHP は値をコピーする必要があります。特に大きな文字列やオブジェクトの場合、これはコストのかかる操作になる可能性があります。

B. 参照渡しでは値をコピーする必要がないため、パフォーマンスの向上に非常に役立ちます。

<?php
    header(&#39;content-type:text/html;charset=utf-8&#39;);

    //探讨一下 array , null, 对象 ,资源的默认传递方式
    // 结论 (1) array 默认是值传递,通过加 & 可以引用传递
    //      (2)  null 默认是值传递,通过加 & 可以引用传递
    //      (3) 资源  是值传递.通过加 & 可以引用传递
    //        (4) 对象默认也是值传递,但是对象值传递是对象标识符    
    $hero = array(&#39;no1&#39;=>&#39;蝙蝠侠&#39;, &#39;no2&#39;=>&#39;超人&#39;);

    $hero2 = &$hero;
    $hero2[&#39;no1&#39;] = &#39;蜘蛛侠&#39;;
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    var_dump($hero);
    var_dump($hero2);


    $a = null;
    $b = &$a;
    $b = &#39;abc&#39;;

    var_dump($a, $b);

推奨ビデオ チュートリアル: PHP ビデオ チュートリアル

以上がPHP における値渡しと参照渡しの違いを深く理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。