ホームページ バックエンド開発 PHPチュートリアル PHP の配列モデルに関するいくつかの推測 (misko lee 著)_PHP チュートリアル

PHP の配列モデルに関するいくつかの推測 (misko lee 著)_PHP チュートリアル

Jul 13, 2016 pm 05:54 PM
php 個人の について メモリ 存在する 配列 モデル 理解する

私の個人的な理解によれば、配列はメモリ内の連続した空間であるべきです。配列を使用する前に、指定されたサイズの空のメモリをメモリ内で開く必要があります。宣言されたサイズが使用可能な連続メモリ サイズより小さい場合は、メモリ オーバーフロー エラーが報告されます。
PHP 配列を使用したことがある子供たちは、PHP の配列には上記の特性がないことをすぐに判断できるはずです。第一に、配列宣言のサイズを決定する必要がありません。第二に、配列の使用に上限がありません。この 2 つの点から、PHP の配列は連続したメモリ空間ではなく、リンクされたリストの緩やかな構造であると判断できます。
PHP の配列は、インデックス付き配列と連想配列の 2 つの形式に分類できます。インデックス配列はカウント配列構造です。連想配列は、キーと値の構造であるマップ データ構造の実装です。
次の例を通じて、インデックス付き配列と連想配列について説明します。
$arr=array(1,2,3,'name'=>'misko_lee','age'=>22); //インデックス付きの結合配列を定義します
for($i=0;$i echo $arr[$i]; //ここで添字オーバーフローのエラーメッセージが表示されます

Cout($arr) 関数呼び出しは、$arr 配列の長さを返します。ただし、for ループは通常インデックス配列しか出力できません。したがって、インデックス配列と連想配列は 2 つの異なる実装であると判断できます。これは、PHP の配列が緩やかな構造をしているという推測も証明しています。
インデックス配列については次のような推測もあります:
$arr[100]=100;
$arr[]=101; //このとき、自動的に増加する$arr[]のインデックスは101です。

上記の実験は、PHP の配列カウンターは配列メモリの先頭アドレスからカウントを開始するのではなく、擬似的なカウント方法であることを証明しました。したがって、配列のサイズを決定するためにカウンターを使用することは完全に間違っています。
上記の発言は個人的な戯言であり、極めて信頼性が低いものです。先輩方は間違いを指摘していただければ幸いです。善良な人は安全な生活を送っています。
最後の追記: foreach を使用して配列を走査した後、要求によるものではない場合は、reset() 関数を使用して配列ポインターをリセットしてください

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477973.html技術記事私の個人的な理解によれば、配列はメモリ内の連続した空間であるべきです。配列を使用する前に、宣言されたサイズが...
より小さい場合、メモリ内に指定されたサイズの空のメモリを開く必要があります。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles