ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP チュートリアルで & 記号を参照する際に注意すべきいくつかの問題について説明します。

PHP_PHP チュートリアルで & 記号を参照する際に注意すべきいくつかの問題について説明します。

WBOY
リリース: 2016-07-13 17:19:06
オリジナル
667 人が閲覧しました

PHP リファレンスとシンボルは、習得するのが難しい知識ポイントです。 PHP のリファレンスとシンボルの使用法を誤解すると、作成するコード全体でエラーが発生するため、初心者は実際にコードを記述するときにこの点にさらに注意を払う必要があります。

  • PHP 連想配列クエリ結果の使用方法
  • 一般的な PHP エラーの具体的な修正方法
  • PHP 関数 header() は単一コンポーネントの特定のメソッドをクエリします
  • WordPress は 2009 オープンソース PHP プロジェクトで準優勝しました
  • PHP配列から文字列への変換とPHP文字列から配列への変換の関係
多くの人は、PHP の参照が C のポインターと同じであると誤解しています。実際には、それらは異なり、大きく異なります。 C 言語では配列転送処理中に明示的に宣言する必要のないポインタを除き、その他の点は * を使用して定義する必要がありますが、PHP にはポインタのようなアドレスを指す機能がありません。ユーザー自身によって実装されますが、PHP リファレンスとシンボルは「コピーオンライト」の原則を使用します。つまり、書き込み操作が発生しない限り、同じアドレスを指す変数またはオブジェクトはコピーされます。次のコードなどはコピーできません:

りー

プログラムがここでのみ実行される場合、 $b と $b は同じですが、C のように異なるメモリ空間を占有することはありません。代わりに、これらは同じメモリを指します。これが php と c の違いです。 $b が $a のメモリを指すように $b=&$a と記述する必要はありません。zend はすでに参照の実装を支援しており、zend はこれをいつ行うべきかを判断するのに非常に役立ちます。このように対処すべきではないとき。

後で次のコードを書き続ける場合は、関数を追加し、PHP リファレンスとシンボルを通じてパラメーターを渡し、配列サイズを出力します。

りー

上記のコードでは、PHP の & シンボルを参照して $a 配列を printArray() 関数に渡します。zend エンジンは printArray() が $a に変更を加える可能性があると判断し、$ に対して $ を自動的に生成します。 b. a のデータをコピーし、ストレージ用のメモリを再申請します。これが、前述した「コピーオンライト」の概念です。

上記のコードを次のように変更すると:

りー


上記のコードは $a 値を printArray() に直接渡します。現時点では参照転送がないため、コピーオンライトは行われません。

上記の 2 行のコードの実行効率をテストできます。たとえば、ループを 1000 回外に追加して、実行にかかる時間を確認します。その結果、PHP 参照とシンボルの使用が間違っていることがわかります。パフォーマンスが 30% 以上低下する可能性があります。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/588674.html技術記事 PHP の参照シンボルは、習得するのが難しい知識ポイントです。初心者は実際にコードを書くときにこれにもっと注意を払う必要があります。PHP 参照シンボルの使用を誤解すると、次のような問題が発生するためです。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート