It looks like as of bcompiler 0.9.3 geoff's code above works correctly with the output:
static
construct
testOut
PHP için derleyici
- Giriş
- Yapılandırma/Kurulum
- Öntanımlı Sabitler
- bcompiler İşlevleri
- bcompiler_load_exe — bcompiler exe dosyasından sınıfları okur ve oluşturur
- bcompiler_load — bz biçiminde sıkıştırılmış dosyadan, sınıfları okur ve oluşturur
- bcompiler_parse_class — Derlenmiş koddan sınıfı okur ve kullanıcı tanımlı işleve geriçağırım yapar
- bcompiler_read — Bir dosya tanıtıcısından sınıfları okur ve oluşturur
- bcompiler_write_class — Tanımlanmış bir sınıfı dosyaya yazar
- bcompiler_write_constant — Tanımlanmış sabiti dosyaya yazar
- bcompiler_write_exe_footer — Derlenmiş kodun başlangıç konumunu ve imzasını, exe türü bir dosyanın sonuna yazar
- bcompiler_write_file — Bir php kaynak dosyasını derleyerek yazar
- bcompiler_write_footer — Derlenmiş verinin sona erdiğini göstermek için \x00 karakterini yazar
- bcompiler_write_function — Tanımlı bir işlevi derlenmiş olarak yazar
- bcompiler_write_functions_from_file — Bir dosya içinde tanımlanmış bütün işlevleri derleyerek yazar
- bcompiler_write_header — bcompiler dosya başlığını yazar
- bcompiler_write_included_filename — Eklenmiş bir dosyayı derlenmiş olarak yazar
rustushki ¶
2 years ago
geoff at spacevs dot com ¶
3 years ago
static vars on classes do not work with bcompiler, eg.
<?PHP
class testClass {
static public $i;
static public function testStatic() {
echo "static\n";
testClass::$i = new testClass();
}
public function __construct() {
echo "construct\n";
}
public function testOut() {
echo "testOut\n";
}
}
testClass::testStatic();
testClass::$i->testOut();
?>
the call to "testOut" will silently fail.
