ホームページ バックエンド開発 PHPチュートリアル php函数间的参数传递(值传递/引用传递)_PHP

php函数间的参数传递(值传递/引用传递)_PHP

Jun 01, 2016 am 11:59 AM
PHP関数 パラメータの受け渡し

php:函数间的参数传递

1.值传递
复制代码 代码如下:
function exam($var1){
$var1++;
echo "In Exam:" . $var1 . "
";
}

$var1 = 1;
echo $var1 . "
";
exam($var1);
echo $var1 . "
";
?>

-------------------------------------------------------------------------------
输出结果:
1
In Exam: 2
1
-------------------------------------------------------------------------------
2.引用传递
复制代码 代码如下:
function exam( &$var1){
$var1++;
echo "In Exam:" . $var1 . "
";
}

$var1 = 1;
echo $var1 . "
";
exam($var1);
echo $var1 . "
";
?>


-------------------------------------------------------------------------------
输出结果:
1
In Exam: 2
2
-------------------------------------------------------------------------------
3.可选参数
复制代码 代码如下:
function values($price, $tax=""){
$price += $prive * $tax;
echo "Total Price:" . $price . "
";
}

values(100, 0.25);
values(100);

输出结果:
Total Price: 125
Total Price: 100
-------------------------------------------------------------------------------
4.如果传入的是一个对象,可以更改该对象的值
(实际上变量$obj记录的是这个对象的句柄,将$obj作为参数传入,完全可以对原对象进行操作。)
复制代码 代码如下:
class Obj{
public $name;
public $age;
public $gander;
public function __construct($name, $age, $gander){
$this->name = $name;
$this->age = $age;
$this->gander = $gander;
}
public function show_info(){
echo $this->name . " " . $this->age . " " . $this->gander . "
";
}
}
function grow($obj){
$obj->age++;
}
function test(){
$obj = new Obj("Mr. zhan", "12", "male");
$obj->show_info();
grow($obj);
$obj->show_info();
grow($obj);
$obj->show_info();
}
test();
?>

-------------------------------------------------------------------------------
输出结果:
Mr. zhan 12 male
Mr. zhan 13 male
Mr. zhan 14 male

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Golang 関数パラメータ受け渡しのパフォーマンスを最適化するためのベスト プラクティス Golang 関数パラメータ受け渡しのパフォーマンスを最適化するためのベスト プラクティス Apr 13, 2024 am 11:15 AM

Go 関数のパラメーター受け渡しのパフォーマンスを最適化するためのベスト プラクティスには、値の型を使用して小さい値の型をコピーすることを避けること、ポインターを使用して大きな値の型 (構造体) を渡すこと、インターフェイスを使用して多態性の型を渡すこと、などが含まれます。実際には、大きな JSON 文字列を渡すときにデータ パラメーター ポインターを渡すと、逆シリアル化のパフォーマンスが大幅に向上します。

PHPの画像処理機能を利用した画像編集・加工機能の実装方法まとめ PHPの画像処理機能を利用した画像編集・加工機能の実装方法まとめ Nov 20, 2023 pm 12:31 PM

PHPの画像処理関数は、画像の加工・編集に特化した関数群であり、開発者に豊富な画像処理機能を提供します。これらの機能を通じて、開発者は画像のトリミング、拡大縮小、回転、透かしの追加などの操作を実装して、さまざまな画像処理のニーズを満たすことができます。まずはPHPの画像処理関数を使って画像の切り抜き機能を実現する方法を紹介します。 PHP には、画像のトリミングに使用できる imagecrop() 関数が用意されています。トリミング領域の座標とサイズを渡すことで、画像をトリミングできます

PHP 関数のパフォーマンスはどの程度ですか? PHP 関数のパフォーマンスはどの程度ですか? Apr 18, 2024 pm 06:45 PM

さまざまな PHP 関数のパフォーマンスは、アプリケーションの効率にとって非常に重要です。パフォーマンスの良い関数には echo や print などがありますが、str_replace、array_merge、file_get_contents などの関数のパフォーマンスは低くなります。たとえば、str_replace 関数は文字列の置換に使用され、中程度のパフォーマンスを発揮しますが、sprintf 関数は文字列の書式設定に使用されます。パフォーマンス分析によると、1 つの例の実行にかかる時間はわずか 0.05 ミリ秒であり、関数が適切に実行されることが証明されています。したがって、関数を賢く使用すると、アプリケーションをより高速かつ効率的に実行できます。

PHP 関数と Flutter 関数の類似点と相違点 PHP 関数と Flutter 関数の類似点と相違点 Apr 24, 2024 pm 01:12 PM

PHP 関数と Flutter 関数の主な違いは、宣言、構文、戻り値の型です。 PHP 関数は暗黙的な戻り値の型変換を使用しますが、Flutter 関数は ? を通じてオプションのパラメータを指定できますが、Flutter 関数は必須パラメータと [] を使用して名前付けパラメータを渡します。 Flutter 関数は、{} を使用して名前付きパラメータを指定します。

PHP 関数と他の言語の関数の比較 PHP 関数と他の言語の関数の比較 Apr 10, 2024 am 10:03 AM

PHP 関数には他の言語の関数との類似点がありますが、いくつかの独自の機能もあります。構文的には、PHP 関数は function で宣言され、JavaScript は function で宣言され、Python は def で宣言されます。パラメータと戻り値の点では、PHP 関数はパラメータを受け入れて値を返します。JavaScript と Python にも同様の関数がありますが、構文が異なります。スコープに関しては、PHP、JavaScript、Python の関数はすべてグローバル スコープまたはローカル スコープを持ち、グローバル関数にはどこからでもアクセスできますが、ローカル関数には宣言スコープ内でのみアクセスできます。

C++ 関数パラメータの詳細説明: 並列プログラミングにおけるパラメータ受け渡しのパフォーマンスの最適化 C++ 関数パラメータの詳細説明: 並列プログラミングにおけるパラメータ受け渡しのパフォーマンスの最適化 Apr 27, 2024 pm 02:09 PM

マルチスレッド環境では、関数パラメータの受け渡し方法が異なり、パフォーマンスの違いは顕著です。値による受け渡し: パラメータ値のコピーは安全ですが、大きなオブジェクトは高価です。参照渡し: 参照渡しは効率的ですが、関数の変更は呼び出し元に影響します。定数参照による受け渡し: 定数参照による受け渡しは安全ですが、パラメーターに対する関数の操作が制限されます。ポインタによる受け渡し: ポインタの受け渡しは柔軟ですが、ポインタの管理は複雑で、ダングリング ポインタやメモリ リークが発生する可能性があります。並列合計では、値渡しよりも参照渡しの方が効率的で、ポインタ渡しが最も柔軟ですが、管理が複雑になります。

Go言語におけるパラメータの受け渡し方法に関する研究 Go言語におけるパラメータの受け渡し方法に関する研究 Apr 03, 2024 pm 02:48 PM

Go 言語では、関数パラメータを渡す主な方法が 2 つあります。 値の受け渡し: 変数のコピーを渡しても、呼び出し元のコード内の元の変数には影響しません。ポインターの受け渡し: 変数のアドレスを渡すと、関数は呼び出し元のコード内の元の変数を直接変更できます。

C++ 関数ポインター パラメーター受け渡しメカニズム C++ 関数ポインター パラメーター受け渡しメカニズム Apr 19, 2024 pm 02:06 PM

関数ポインタは、C++ のパラメータ受け渡しメカニズムとして使用されます。関数ポインタは定数ポインタとして渡され、受け渡しプロセス中にコピーが作成され、受け取った関数の仮パラメータはコピーを指し、逆参照されたコピーは基になる関数を呼び出すことができます。関数。

See all articles