在這兩種情況下,您都需要創建一個類的實例(stdClass或Array)並設置數據。在第二種情況下,您添加一個新的操作,即cast,因此存在隱式創建stdClass實例以及從Array到stdClass的解析數據操作。
在第一種情況下,您只創建一個類的實例,第二種情況是創建兩者,但1對程序員是不可見的。我認爲,首先是在內存和速度
1 <?php
2
3 $time_start = microtime(true);
4
5 for($i=0 ; $i<1000000; $i++)
6 {
7 $profile = new stdClass;$
8 $profile->first_name = 'Woppi';
9 $profile->last_name = 'Jillenjack';
10 $profile->email = '[email protected]';
11 $time_end = microtime(true);$
12 }
13
14 $object = $time_end - $time_start;
15
16
17 $time_start = microtime(true);
18 for($i=0;$i<1000000;$i++)
19 {
20 $profile = array('first_name'=>'Woppi',
21 'last_name'=>'Jillenjack',
22 'email'=>'[email protected]');
23 $profile = (object)$profile;
24 $time_end = microtime(true);
25 }
26 $array_to_object = $time_end - $time_start;
27
28 echo "stdClass: $object | Typecasting: $array_to_object";
29
30 ?>
stdClass的更高效:10.045720100403 |類型化:10.009358882904
stdClass:9.9519069194794 |類型化:9.2100629806519
stdClass:9.2515120506287 |類型:9.480808019638
stdClass:9.5376181602478 |類型:9.2310011386871
stdClass:9.9628109931946 |鑄字:10.414475917816
測試還沒有定論,在這種情況下,也許內存消耗幫助我們,使使用的一個或其他
兩兩件事一個選擇:A)我不相信人是由實際關注對象建設的速度。 b)爲外部讀者做些更明確的事情c)基準測試有多難? d)那是4件事。 –
那麼如果你每秒有上千次這樣的操作,那麼它真的很重要。此外,如果您正在創建某種您想發佈的開源庫,則希望將其完美無缺。我是一個完美主義者,我相信這確實很重要。 –
@Cicada我有很多東西需要學習......我只是好奇......就這些。 – Woppi