今日、製品の作業中に偶然コード行を見つけました。
$c= new$class_name; $object_os= newstdClass; $c->on_init_app_router($object_os);
非常に混乱したので、クラス $c を調べたところ、空のクラス stdClass のインスタンス $object_os にいくつかの属性が動的に追加されていることがわかりました。
上記の 3 行のコードから、stdClass で何ができるのかが大まかにわかります。
stdClass はプロダクトコードで何度か登場しましたが、使ったことはなかったので、関連情報を確認し、私の経験を以下にまとめました。
stdClass は PHP の基本クラスであり、ほとんどすべてのクラスがこのクラスを継承するため、いつでも新しいクラスになり、この変数はオブジェクトになる可能性があります。同時に、この基本クラスにはメソッドが存在しないという特別な機能があります。
stdClass は PHP5 で徐々に普及してきています。これは、PHP5 オブジェクトがどこで呼び出されても参照アドレス型であるため、消費されるリソースが比較的少ないためです。他のページで値を割り当てると、コピーを参照するのではなく、値が直接変更されます。
例:
$user= newstdClass(); $user->name = ‘gouki’; $myUser= $user; $myUser->name = ‘flypig’;
PHP4 の時代であれば、そのようなコードはシステム リソースを消費するでしょう。理由:
$myUser= $user;
これによりコピーが作成されます。したがって、PHP4 では次のように使用されます:
$myUser= & $user;
この記事の冒頭の 3 行のコードから、stdClass を使用してオブジェクト型の要素を生成できることがわかります。次に、stdClass を使用して配列をオブジェクト クラスに変換し、そのためのいくつかのメソッドを紹介します。配列オブジェクトを相互に変換します。:
1. stdClass 配列をオブジェクトに変換します
$arr= array(); $arr['a'] = 1; $arr['b'] = 2; $arr['c'] = 3; $object= newstdClass; foreach($arras$key=> $value) { $object->$key= $value; } var_dump($object);
結果の出力は次のとおりです:
object(stdClass)#1 (3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) }
2. オブジェクトを配列に変換します
functionobject_to_array($obj) { $_arr= is_object($obj) ? get_object_vars($obj) : $obj; foreach($_arras$key=> $val) { $val= (is_array($val) || is_object($val)) ? object_to_array($val) : $val; $arr[$key] = $val; } return$arr; }
3. ArrayObject メソッド配列からオブジェクトへ
$arr= array('key1'=>'test1', 'key2'=> 'test2'); var_dump(newArrayObject($arr));
結果の出力は次のとおりです:
object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(2) { ["key1"]=> string(5) "test1" ["key2"]=> string(5) "test2" } }
もちろん、PHP のパワーと柔軟性を考慮すると、配列やオブジェクトを変換する方法は他にもたくさんあるはずです。

求和方法:1、用array_column()获取多维数组中指定一列的全部元素,语法“rray_column(数组, '指定列名')”,会返回一个包含全部元素的结果数组;2、用“array_sum(结果数组)”计算结果数组中所有元素的和即可。

增加元素的方法:1、使用array_push()函数,语法“array_push(二维数组,值1,值2...);”;2、使用array_splice()函数,语法“array_splice(二维数组,count(二维数组),0,元素值)”。

获取方法:1、用“array_values(数组)”将指定数组转为索引数组;2、用“array_search(数值,索引数组)”,在索引数组中搜索数值,返回对应的索引值(下标);3、用“索引值+1”语句获取元素在数组中的位置值。

php数组里面可以放数组。PHP数组可以存储所有类型的数据,当然也包括数组本身;如果一个数组中的元素是另一个数组,就构成了包含数组的数组,即多维度数组。数组的不同维度标志着需用几个下标(索引)来获取对应的数组元素,比如二维数组需用两个下标。

方法:1、循环遍历数组,语法“foreach($arr as $k=>$v){}”;2、循环体中,用“==”判断元素值是否为null,如果是则用unset()删除该元素,语法“if($v==null){unset($arr[$k]);}”。

php中只比较值的数组交集函数是“array_intersect()”;该函数用于比较两个(或更多个)数组的键值,语法“array_intersect(数组1,数组2...)”,会返回一个交集数组,所包含的值是从被比较的数组(数组1)中取。

去掉方法:1、用“sort($arr)”对数组进行升序排序,排序后该数组的第一个元素就是最小值,最后一个元素就是最大值;2、用“array_pop($arr)”删除最后一个元素,用“array_shift($arr)”删除第一个元素即可。

方法:1、对数组进行升序排序,并用“array_pop(数组)”和“array_shift(数组)”去除最大值和最小值;2、用“count(数组)”和“array_sum(数组)”获取数组长度与元素和;3、用“元素和/数组长度”计算平均数。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Dreamweaver Mac版
ビジュアル Web 開発ツール

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
