5

PHPのキーワードnewは、ヒープにメモリを割り当てることを意味しますか?元。

class person {
    // properties and methods
}

$p1 = new person();



C ++のようにPHPでスタックにオブジェクトを作成する方法はありますか?
元。

class person {
    // properties and methods
}

//inside in main stack
int main() {
person p1;
4

2 に答える 2

6

舞台裏では、「new」キーワードを使用してオブジェクトを作成すると、zval が作成されます。コア ライブラリと拡張機能で zval を作成するために使用されるマクロは、zval にメモリを割り当てるため、答えはイエスです。PHP でオブジェクトを作成すると、ヒープに格納されるオブジェクトが作成されます。実際、すべてのタイプの PHP 変数は舞台裏で zval であるため (これにより変換が容易になります)、実際にはすべてヒープに格納されます。

スタックにデータを保存したい場合は、別の言語を使用する方がよいでしょう。

于 2012-08-27T21:50:38.470 に答える
1

答えはイエスです。

また、PHP がメモリを制御する方法を制御することは想定されていません。これは、PHP などの高級言語の一部です。C++ は非常に低レベルの言語であることに注意してください (言語自体は異なる OS を考慮していないため、異なる OS に対して異なるコードを作成する必要があります (ライブラリ ofc を使用してそれを行うことができます))。

于 2012-08-27T21:43:46.010 に答える