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;
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;
舞台裏では、「new」キーワードを使用してオブジェクトを作成すると、zval が作成されます。コア ライブラリと拡張機能で zval を作成するために使用されるマクロは、zval にメモリを割り当てるため、答えはイエスです。PHP でオブジェクトを作成すると、ヒープに格納されるオブジェクトが作成されます。実際、すべてのタイプの PHP 変数は舞台裏で zval であるため (これにより変換が容易になります)、実際にはすべてヒープに格納されます。
スタックにデータを保存したい場合は、別の言語を使用する方がよいでしょう。
答えはイエスです。
また、PHP がメモリを制御する方法を制御することは想定されていません。これは、PHP などの高級言語の一部です。C++ は非常に低レベルの言語であることに注意してください (言語自体は異なる OS を考慮していないため、異なる OS に対して異なるコードを作成する必要があります (ライブラリ ofc を使用してそれを行うことができます))。