sample_isset という名前の pecl 関数を作成します。そのコードは次のとおりです。
PHP_FUNCTION(sample_isset) {
zval **fooval;
if(EG(active_symbol_table) == NULL) {
php_printf("the active symbol table is NULL");
}else if(zend_hash_find(EG(active_symbol_table),"foo",4,
(void **) &fooval) == SUCCESS){
php_printf("Got the value of $foo!");
} else {
php_printf("$foo is not defined!");
}
}
そして、この関数を使用して、現在のシンボル テーブルに $foo 変数があるかどうかを確認します。グローバルスコープで使用すると、うまく機能します。しかし、helloなどの別の関数で使用すると、エラーが発生し、何も表示されません。hello関数はこんな感じかもしれません。
function hello(){
sample_isset();
}
なぜエラーになったのかわかりません。