PHPで配列かオブジェクトかを判断する方法
php メソッドで配列かオブジェクトかを判断: 1. 変数の型と変数の長さ属性で判断; 2. toString メソッドを使用してオブジェクトを他の型に変換string; 3.instanceof;で判定する 4.isArrayを使って判定する、など。
この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、Dell G3 コンピューター。
PHP は配列かオブジェクトかをどのように判断するのでしょうか?変数が配列であるかオブジェクトであるかを判断する方法
方法 1: 変数の型と変数の長さ属性を判断することによって (1 つの例外として、引数オブジェクト - 引数オブジェクトが存在する場合にデータが格納される場所)パラメータを関数に渡す)
var arr=[2,3,4]; var obj={"name":"maomao","age":20}; console.log(typeof arr); //object console.log(typeof obj); //object console.log(arr.length); //3 console.log(obj.length); //undefined console.log(obj.name); //maomao //这里说明在对象中并没有length属性,所以是未定义。
メソッド 2:
toString メソッドを使用して、オブジェクトを他のタイプの文字列に変換します。この例は、引数オブジェクトが配列ではないことをよく証明していますが、オブジェクト
var arr=[2,3,4]; var obj={"name":"maomao","age":20}; // console.log(arr.toString()); //'2,3,4' // console.log(obj.toString()); //[object Object] function sum(a,b){ // console.log(arguments); // console.log(typeof arguments); //object // console.log(arguments.length); //2 根据具体调用函数传的实参决定 // console.log(arguments.toString()); //[object Arguments] return a+b; } alert(sum(3,4));
方法 3: —>実現不可能
instanceof は、オブジェクトが特定のクラスのインスタンスであるかどうかを示します。
結論: オブジェクト A が別のオブジェクト B のインスタンスであるかどうかを検出する instanceof の原理は、オブジェクト B のプロトタイプが指すオブジェクトがオブジェクトの [[prototype]] チェーン上にあるかどうかを確認することです。 A.存在する場合は true を返し、そうでない場合は false を返します。ただし、特殊なケースがあり、オブジェクト B のプロトタイプが null の場合、エラーが報告されます (null ポインター例外と同様)。
var arr=[2,3,4,"haa"]; var obj={"name":"maomao","age":20}; console.log(arr instanceof Array); //true console.log(obj instanceof Object); //true console.log(arr instanceof Object); //true ---这里跟网上的不同,不知道是什么原因 console.log(obj instanceof Array); //false
4. ECMAScript 5 では、isArray を使用して
var arr=[2,3,4,"haa"]; var obj={"name":"maomao","age":20}; console.log(Array.isArray(arr)); //true console.log(Array.isArray(obj)); //false //注意没有isObject这种方法 暂时
5. isPrototypeOf() 関数を使用します
原則: オブジェクトが配列のプロトタイプであるかどうかを検出します(または、プロトタイプ チェーンでは、直接の親オブジェクトだけでなく、プロトタイプ チェーン全体のすべての親オブジェクトも検出できます)
使用方法:parent.isPrototypeOf(child) を使用して、次のことを検出します。親は子のプロトタイプです;
isPrototypeOf() 関数によって実装される関数は instancof 演算子と非常に似ていることに注意してください;
var arr=[2,3,4,"haa"]; var object={"name":"maomao","age":20}; console.log(Array.prototype.isPrototypeOf(arr)); //true console.log(Array.prototype.isPrototypeOf(object)); //false console.log(Object.prototype.isPrototypeOf(arr)); //true console.log(Object.prototype.isPrototypeOf(object)); //true //从上面上看Array.prototype.isPrototypeOf()可以作为判断的依据
6. コンストラクター属性を使用します
var arr=[2,3,4,"haa"]; var obj={"name":"maomao","age":20}; console.log(arr.constructor); //function Array() { [native code] } console.log(obj.constructor); //function Object() { [native code] } console.log(arr.constructor==Array); //true console.log(arr.constructor==Object); //false console.log(obj.constructor==Array); //false console.log(obj.constructor==Object); //true
7. concat メソッドを使用します – 柔軟
array.concat(array1,array2,…)
2 つ以上の配列を組み合わせた新しい配列を返します
var arr=[2,3,4]; var obj={"name":"maomao","age":20,'concat':function(){ return 1;}}; console.log(arr.concat()); //[2,3,4] console.log(obj.concat()); //1 当然这个concat是我自定义上去的方法,返回值也是可以定制的。如果没有该方法则会报出Uncaught TypeError: obj.concat is not a function这个错误。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPで配列かオブジェクトかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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