目次
「価値による合格」とはどういう意味ですか?
「参照によるパス」とはどういう意味ですか?
異なる言語がこれを処理する方法
各アプローチを使用するタイミング
まとめ
ホームページ バックエンド開発 PHPチュートリアル 関数内の値による参照による変数を渡します

関数内の値による参照による変数を渡します

Jul 26, 2025 am 09:49 AM
PHP Variables

値を渡すことは、データのコピーが渡されることを意味するため、Primitivesまたは不変のタイプのPythonでCで見られるように、関数内の変更は元の変数に影響しません。 2。参照によるパスは、関数が元のものへの直接的な参照を受信するため、関数内の変更はオリジナルに影響を与え、リストのような可変オブジェクトを使用してPythonで&または自然にサポートされています。 3.異なる言語はこれを異なって処理します。Cは値でのみ通過し(ポインターを除く)、Javaはオブジェクトの参照を値で渡し、JavaScriptはオブジェクトを共有してPassを使用します。 4.特に少量のデータを使用して、副作用を回避し、データの安全性を確保するために、値ごとにパスを使用します。 5.参照によりパスを使用して、オリジナルを変更するか、意図しない変更なしで効率性のためにconst&cを使用するなど、大きなオブジェクトでパフォーマンスを改善します。これらのルールを理解することで、予測可能で効率的なコード動作が保証されます。

関数内の値による参照による変数を渡します

変数をプログラミングの関数に渡すと、それらの変数が値によって、または参照によって処理される方法は、コードの動作方法に大きく影響します。違いを理解することは、予測可能で効率的なコードを書くための鍵です。

関数内の値による参照による変数を渡します

「価値による合格」とはどういう意味ですか?

変数が値で渡されると、関数は元のデータのコピーを受信します。関数内で行われた変更は、元の変数に影響しませ

これは、 CJava (プリミティブ用)、 Pythonなどの言語で一般的です(整数、文字列などの不変のタイプを使用)。

関数内の値による参照による変数を渡します

例(c):

 void increment(int x){
    x = x 1;
}

int main(){
    int num = 5;
    増分(num);
    // numはまだ5です
}

ここでは、コピーのみが渡されたため、 num 5にとどまります。

関数内の値による参照による変数を渡します

?キーポイント:関数はローカルコピーで機能します。オリジナルは手つかずのままです。

「参照によるパス」とはどういう意味ですか?

参照を通過すると、関数は元の変数への直接参照(またはエイリアス)を取得します。関数内の変更は、オリジナルに影響します

これは、 c&を使用して)、 c#ref )、 php&を使用して)などの言語でサポートされており、リストや辞書などの可変オブジェクトを渡すときにPythonで自然に発生します。

例(c):

 void increment(int&x){
    x = x 1;
}

int main(){
    int num = 5;
    増分(num);
    // numは6です
}

これで、 num 6になります。これは、リファレンスを介してオリジナルを変更したためです。

異なる言語がこれを処理する方法

すべての言語が同じように機能するわけではありません。これが簡単な比較です:

  • C :値だけを通過します。パスバイレファレンスをシミュレートするには、ポインターを使用します。

  • C :両方をサポートします。使用&参照のため。

  • Java :プリミティブの価値を渡します。オブジェクトは、参照の値によって渡されます(「Referenceの価値がある」と呼ばれることもあります)。

  • Python :関数内の割り当てはローカルコピーを作成しますが、変更可能なオブジェクト(リストなど)を変更すると、変更が続きます。

     def modify_list(lst):
          LST.Append(4)#元のリストを変更します
    
      my_list = [1、2、3]
      modify_list(my_list)
      #my_listは今[1、2、3、4]です
  • JavaScript :すべてのプリミティブタイプは値で渡されます。オブジェクト(配列を含む)は、共有(Javaと同様)によって渡されます。

  • 各アプローチを使用するタイミング

    • 次の場合に値ごとにパスを使用します

      • 副作用を避けたいです。
      • 小さなデータ(数字など)を使用します。
      • 元のデータが安全であることを保証します。
    • 参照ごとにパスを使用してください。

      • 元の変数を変更する必要があります。
      • 大きなオブジェクトを渡す(パフォーマンスのためにコピーしないでください)。
      • 複数の値を返す(参照パラメーターを介して)。

    ?ヒント:Cでは、 const &を使用することを常に検討してください。変更するつもりのない大きなオブジェクトには、変更を危険にさらすことなくコピーを避けます。

    まとめ

    • 値を渡す:安全で孤立したが、データをコピーする場合がある。
    • 参照によるパス:効率的で変更を許可しますが、副作用を導入できます。
    • 言語が重要です - あなたの言語がパラメーターの渡される方法を知ってください。

    基本的に、関数が元の機能を変更したかどうかわからない場合は、コピーを扱うかリファレンスを扱っているかを確認してください。それは魔法ではありません。言語が次のようにルールします。

    以上が関数内の値による参照による変数を渡しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

関数内の値による参照による変数を渡します 関数内の値による参照による変数を渡します Jul 26, 2025 am 09:49 AM

PassbyValueemeansAcopyofthedataispassed、sichangesinsisidetheThectiondonotaffecttheoriginalvariabuiable、AsseenincwithitiveTorpithimmutabletypes.2.PassbyReferencemeansemeansemeansemeansemeansemeantsefunction receiveSediveationiveationiveSeorignisinisinisinisisinisisiNisinisisinisinisinisinisinisinisinisis

PHP SuperGlobalsに深く潜る:「$ _get」と `$ _POST`を超えて PHP SuperGlobalsに深く潜る:「$ _get」と `$ _POST`を超えて Jul 26, 2025 am 09:41 AM

phpsuperglobalsinclude $ _get、$ _ post、$ _ request、$ _ session、$ _ cookie、$ _ server、$ _ files、$ _ env、および$ globals、各セルシングディンティックプルーズsbeyondjusthandlingformdata; theyablestatemanagement、serverInteraction、andenvironmentaccess.1。$ _ requestcombines $ _get、$ _ post、

PHPの変数変数を分類する( `$$ var`) PHPの変数変数を分類する( `$$ var`) Jul 25, 2025 am 04:42 AM

変数変数は、$$ var構文を介して別の変数の名前として1つの変数の値を使用します。 2。たとえば、$ myvarが「hello」の場合、$$ myvarは$ helloに相当し、値を割り当てることができます。 3.実際のアプリケーションでは、フォームデータを動的に処理するために使用できます。たとえば、$ _POSTをforeachで移動したり、$$キーを使用して対応する変数を作成したりできます。 4.読みやすさの低さ、セキュリティの高いリスクが高く、特にユーザー入力のための$$の使用を回避することなどの問題があります。 5.動的変数を作成する代わりに、データを$データアレイに保存するなど、動的変数を作成する代わりに、配列またはオブジェクトを使用することをお勧めします。 6。$ {$ var}の使用curlyブレース構文を使用すると、特に複雑なシナリオでコードの明確さを改善できます。可変変化

PHPと入力されたプロパティでクラスを近代化します PHPと入力されたプロパティでクラスを近代化します Jul 26, 2025 am 09:49 AM

plopertiesInphp7.4 approaddirecttypedeclaration forclassporties、改善可能性、idesupport、andcodeclarity;

「グローバル」キーワードに対するケース:クリーナーコードの戦略 「グローバル」キーワードに対するケース:クリーナーコードの戦略 Jul 25, 2025 am 11:36 AM

theglobalkeywordunncondallyは、debug、andmentainを使用することを不必要に使用します。代わりに、functionparametersandreturnvaluestopassdataexplicty.2.replaceglobalvariablespurefurefurnctionsを使用して、depuntionsutiontuntututututsiを使用してください

PHP変数のライフサイクル:割り当てからごみ収集まで PHP変数のライフサイクル:割り当てからごみ収集まで Jul 24, 2025 pm 10:49 PM

aphpvariaible'slifecyclebeginswithmoryallocationviazvalcreation、タイプ、referencecount、andreferenceflag.2.whenvariablessignedorshared、phpusesreferencecountingandcountingandcopy-on-writeTeTeToptimizeMoryasage、juthing-durplicationagedaTawhnedationage

PHP定数と変数:不変性のガイド PHP定数と変数:不変性のガイド Jul 25, 2025 pm 05:37 PM

constantsCannotBeChangedafterDefinition、whorvariablescan; 1.variablesstartwith $、aremutable、scoped、andidealfordynamicdata;

変数検証用の `sisset()`、 `empty()`、 `is_null()`のニュアンス 変数検証用の `sisset()`、 `empty()`、 `is_null()`のニュアンス Jul 24, 2025 pm 10:15 PM

Isset()checksifavariableisdeclaredandnotnull、returningtrueemptystrings、0、 '0'、false、およびandemptyArrays; useittoconfirmavariaiainiaiainiaiveExistasnhasbeensetなど、$ _post ['email']

See all articles