お世話になります、
表題についてですが、下記コードでインスタンス化をした際に、$aaaと$bbbはそれぞれ独立性をもって、出力結果が
//Test1::testCall1
//Test1::testCall2
//Test1::testCall1
//Test1::testCall2
となると期待したのですが間違いでした。
厳密にはインスタンス化をすると、newするたびにヒープ内にそれぞれのメモリ領域を確保するので上記の結果になると思ったのですが。
Javaを最近勉強していたので、phpのこの挙動には違和感を感じました(Javaの場合はインスタンス同士が独立している)。この点phpはハード面からどのような挙動をし、こういった出力結果になっているのでしょうか。
宜しくお願い致します。
php
1<?php 2 3 class Test1{ 4 public function testCall(){ 5 static $num = 0; 6 $num++; 7 echo __METHOD__ . $num . "<br>"; 8 } 9 } 10 11 $aaa = new Test1(); 12 $bbb = new Test1(); 13 14 $aaa->testCall(); 15 $aaa->testCall(); 16 $bbb->testCall(); 17 $bbb->testCall(); 18 19// 出力結果 20//Test1::testCall1 21//Test1::testCall2 22//Test1::testCall3 23//Test1::testCall4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/06/28 04:07