ホームページ バックエンド開発 PHPの問題 PHP関数にパラメータを渡す方法

PHP関数にパラメータを渡す方法

Sep 26, 2019 am 11:51 AM
パラメータ

PHP関数にパラメータを渡す方法

php での関数のパラメータの受け渡しには、形式的なパラメータの受け渡し (C 言語などのプログラミング言語からの用語の借用) があります。

つまり、変数の値を関数のパラメーターに代入することです。関数パラメーターに対して実行されるすべての操作は、元の変数とは何の関係もありません。

//php
function testX( $b )
{
     return $b-=2;
}
$a = 5 ;
$c = testX($a);
print_r($a);//5
print_r($c);//3
ログイン後にコピー

そして、アドレス転送(参照転送)とは、変数のアドレスを関数の引数に与えることであり、関数内の引数に対する演算はすべて変数に対する演算と等価です。

//php
function testS( &$b )
{
     return $b-=2;
}
$a = 5 ;
$c = testX($a);
print_r($a);//3
print_r($c);//3
ログイン後にコピー

PHP では、関数のパラメーターと変数はすべてメモリ内のスペースを空けますが、通常のパラメーターの受け渡しではパラメーターに値が割り当てられますが、参照の受け渡しでは割り当てられず、変数のアドレスが代入されます。

パラメータが配置されているスペースに移動します。

特に注目すべきは、PHP5以降、参照の受け渡しの書き方が変更されたことです。上記のコードに示すように、PHP の記述方法を他のプログラミング言語と同じ方法に変更します。定義する場合は

& を使用する必要がありますが、呼び出す場合は & を使用する必要はありません。これまでの書き方とは大きく異なります。

//php以前的写法
function &testS( &$b )
{
 return $b-=2;
}
$c = &testS($a);
ログイン後にコピー

利点:

個人的には、この書き方の変更は、php 言語の独自性を減らし、他のプログラミング言語の書き方に近づけることだと思います。ある意味、他のプログラミング言語に精通しているプログラマーが PHP をより早く習得できるようになります。コードの読み取りと論理理解の観点から、関数内の変数に対して実行されるすべての操作は完全に無視されます。コードの抽象化にとってはより理にかなっています。

欠点:

開発の最前線にいるプログラマーにとって、これはクレイジーな変更だと思います。特に二次開発をしている人にとっては。二次開発者は、先行開発者に基づいて開発する必要があります。関数を見るとき、私は値による参照関数を & で区別することに慣れています。この記述方法がなければ、すべての関数は同じになります。値による参照関数への呼び出しが含まれる場合、プログラマは、値による参照関数の内部に入る必要があります。コードの詳細を確認する機能。特にプログラムにエラーがある場合。値による参照関数によって変数に加えられたすべての変更を詳細に理解する必要があります。また、& をキャンセルして参照関数を呼び出すということは、プログラムによって呼び出されるすべての関数を確認する必要があることを意味し (どの関数が参照関数であるかわからないため)、その作業負荷は容易に想像できます。

グローバル変数 (global) もあります。これはパラメータを直接かつ迅速に定義する方法です。関数で使用するパラメータをグローバル変数として設定します。このように、関数内の操作では変数自体が直接使用されます。

短いプログラムで使用するのには問題ありませんが、これは外部ファイルを呼び出すときにパラメータを定義する理想的な方法ではありません。

以上がPHP関数にパラメータを渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP バージョン 5.4 の新機能: 呼び出し可能な型ヒント パラメーターを使用して呼び出し可能な関数またはメソッドを受け入れる方法 PHP バージョン 5.4 の新機能: 呼び出し可能な型ヒント パラメーターを使用して呼び出し可能な関数またはメソッドを受け入れる方法 Jul 29, 2023 pm 09:19 PM

PHP5.4 バージョンの新機能: 呼び出し可能な型ヒント パラメーターを使用して呼び出し可能な関数またはメソッドを受け入れる方法 はじめに: PHP5.4 バージョンでは、非常に便利な新機能が導入されています。呼び出し可能な型ヒント パラメーターを使用して、呼び出し可能な関数またはメソッドを受け入れることができます。この新機能により、追加のチェックや変換を行わずに、関数やメソッドで対応する呼び出し可能なパラメーターを直接指定できるようになります。この記事では、呼び出し可能な型ヒントの使用法を紹介し、いくつかのコード例を示します。

製品パラメータとは何を意味しますか? 製品パラメータとは何を意味しますか? Jul 05, 2023 am 11:13 AM

製品パラメータは、製品属性の意味を指します。たとえば、衣類のパラメータには、ブランド、素材、モデル、サイズ、スタイル、生地、適用グループ、色などが含まれ、食品のパラメータには、ブランド、重量、素材、保健免許番号、適用グループ、色などが含まれ、家電のパラメータには、家電製品のパラメータが含まれます。ブランド、サイズ、色、原産地、適用可能な電圧、信号、インターフェース、電力などが含まれます。

PHP 警告: in_array() に対する解決策にはパラメーターが必要です PHP 警告: in_array() に対する解決策にはパラメーターが必要です Jun 22, 2023 pm 11:52 PM

開発プロセス中に、次のようなエラー メッセージが表示される場合があります: PHPWarning: in_array()expectsparameter。このエラー メッセージは、in_array() 関数を使用するときに表示されます。関数のパラメータの受け渡しが正しくないことが原因である可能性があります。このエラー メッセージの解決策を見てみましょう。まず、in_array() 関数の役割を明確にする必要があります。配列に値が存在するかどうかを確認します。この関数のプロトタイプは次のとおりです: in_a

i9-12900Hパラメータ評価リスト i9-12900Hパラメータ評価リスト Feb 23, 2024 am 09:25 AM

i9-12900H は 14 コア プロセッサです。使用されているアーキテクチャとテクノロジはすべて新しく、スレッドも非常に高速です。全体的な動作は優れており、いくつかのパラメータが改善されています。特に包括的で、ユーザーに優れたエクスペリエンスをもたらします。 。 i9-12900H パラメータ評価レビュー: 1. i9-12900H は、q1 アーキテクチャと 24576kb プロセス テクノロジを採用した 14 コア プロセッサで、20 スレッドにアップグレードされています。 2. 最大 CPU 周波数は 1.80! 5.00 ghz で、主にワークロードによって異なります。 3. 価格と比較すると、非常に適しており、価格性能比が非常に優れており、通常の使用が必要な一部のパートナーに非常に適しています。 i9-12900H のパラメータ評価とパフォーマンスの実行スコア

C++ 関数パラメータの型の安全性チェック C++ 関数パラメータの型の安全性チェック Apr 19, 2024 pm 12:00 PM

C++ パラメーターの型の安全性チェックでは、コンパイル時チェック、実行時チェック、静的アサーションを通じて関数が予期される型の値のみを受け入れるようにし、予期しない動作やプログラムのクラッシュを防ぎます。 コンパイル時の型チェック: コンパイラは型の互換性をチェックします。実行時の型チェック:dynamic_cast を使用して型の互換性をチェックし、一致しない場合は例外をスローします。静的アサーション: コンパイル時に型条件をアサートします。

指定された値を引数として受け取る逆双曲線正弦関数の値を見つける C++ プログラム 指定された値を引数として受け取る逆双曲線正弦関数の値を見つける C++ プログラム Sep 17, 2023 am 10:49 AM

双曲線関数は、円の代わりに双曲線を使用して定義され、通常の三角関数と同等です。ラジアン単位で指定された角度から双曲線正弦関数の比率パラメーターを返します。しかし、その逆、つまり別の言い方をすればいいのです。双曲線正弦から角度を計算したい場合は、双曲線逆正弦演算のような逆双曲線三角関数演算が必要です。このコースでは、C++ で双曲線逆サイン (asinh) 関数を使用し、ラジアン単位の双曲線サイン値を使用して角度を計算する方法を説明します。双曲線逆正弦演算は次の式に従います -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}ここで\:In\:is\:自然対数\:(log_e\:k)

100億個のパラメータを持つ言語モデルは実行できないのでしょうか? MIT の中国人医師が SmoothQuant 定量化を提案しました。これにより、メモリ要件が半分に減り、速度が 1.56 倍向上しました。 100億個のパラメータを持つ言語モデルは実行できないのでしょうか? MIT の中国人医師が SmoothQuant 定量化を提案しました。これにより、メモリ要件が半分に減り、速度が 1.56 倍向上しました。 Apr 13, 2023 am 09:31 AM

大規模言語モデル (LLM) は優れたパフォーマンスを持っていますが、パラメーターの数は簡単に数千億に達する可能性があり、コンピューティング機器とメモリの需要が非常に大きいため、一般の企業にはそれを買う余裕がありません。量子化は一般的な圧縮操作であり、モデルの重みの精度を下げる (32 ビットから 8 ビットなど) ことにより、推論速度の高速化とメモリ要件の削減と引き換えにモデルのパフォーマンスの一部を犠牲にします。しかし、1,000 億を超えるパラメータを持つ LLM の場合、既存の圧縮方法ではモデルの精度を維持できず、ハードウェア上で効率的に実行することもできません。最近、MIT と NVIDIA の研究者が共同で、汎用のポストトレーニング量子化 (GPQ) を提案しました。

C++ 関数での参照パラメータとポインタ パラメータの高度な使用法 C++ 関数での参照パラメータとポインタ パラメータの高度な使用法 Apr 21, 2024 am 09:39 AM

C++ 関数の参照パラメーター (基本的には変数のエイリアス、参照を変更すると元の変数が変更されます) とポインター パラメーター (元の変数のメモリ アドレスを保存し、ポインターを逆参照して変数を変更します) は、変数を渡したり変更したりするときに使用方法が異なります。参照パラメーターは、コンストラクターまたは代入演算子に渡されるときのコピーのオーバーヘッドを避けるために、元の変数 (特に大きな構造体) を変更するためによく使用されます。ポインター パラメーターは、メモリの場所を柔軟に指定したり、動的データ構造を実装したり、オプションのパラメーターを表すために null ポインターを渡したりするために使用されます。

See all articles