私はC++/Python/JavaからPHPを初めて使用しています。 PHPには、組み込みの配列型があります。新しいオブジェクトを挿入した後、同じ配列であることを証明するにはどうしたらいいですか? C++/Python/Javaでは、オブジェクトのアドレス、id()、またはハッシュコードを使用してオブジェクトが同じかどうかをテストできます。PHPで同じテストを行うにはどうすればよいですか?アレイのアドレスはどのように取得できますか?
<?php
$a['0'] = "a";
$a['1'] = 'b'; //here, $a is a new copied one or just a reference to the old?
?>
[OK]をクリックします。実際には特に問題はありません。新しい値を挿入する前と後で配列オブジェクトが同じであるかどうかを知りたいだけです。 Pythonでは 、私はこのようなテストを行うことができます
a = [1]
print id(a)
a.append(2)
print id(a)
ところで、これはPythonでのid()関数のマニュアルです。
id(...)
id(object) -> integer
Return the identity of an object. This is guaranteed to be unique among
simultaneously existing objects. (Hint: it's the object's memory address.)
更新コード:
# -*- coding: utf-8 -*-
a = [1, 2, 3]
b = [1, 2, 3]
print id(a)
print id(b) //the id(b) is not same as id(a), so a and b has same content, but they both own their own values in the memory
c = a // c is a reference to a
c.append(4)
print c
print a //after appending a new value(which means insert a new value to array), a has same value as c
ので、問題は、私は同じことを行うことができれば、私は私が確認する、両方のC++/Pythonの/ Javaでコードがメモリレイアウトを証明することができますですPHP。
あなたはどのような問題を解決する必要がありますか?あなたのコードはあまりヒントを与えていません... C++が要素を追加すると、全く新しい配列が作成されるのは変です。 –
私はC++/python/Javaについて何も知らないけど、phpでは新しい要素を追加すると配列は同じです。 – Epodax
PHPにはそのような仕組みがありません。 PHPで適切な方法を提案するために解決しようとしている問題を説明しなければなりません。 – deceze