Mark Skilbeck wrote:
Scott MacVicar wrote:
On 1 Nov 2009, at 21:41, Mark Skilbeck wrote:
Scott MacVicar wrote:
On 1 Nov 2009, at 21:09, Mark Skilbeck <markskilb...@gmail.com> wrote:
[snip]
There is no symbol table as there are no variables. You should check
if it's NULL before using zend_hash_exists.
Scott
Hi, Scott. I'm having trouble - I added the check to see if the
symbol table i available, yet it returns false even if I have added
variables within the function:
[code]
PHP_FUNCTION(sample_var_a_exists)
{
if (!EG(active_symbol_table) ||
!zend_hash_exists(EG(active_symbol_table), "a",
sizeof("a"))) {
RETURN_BOOL(0);
}
RETURN_BOOL(1);
}
[/code]
[code]
$a = '';
var_dump(sample_var_a_exists());
function x() {
$a = ''; // Add a symbol to the hash table.
var_dump(sample_var_a_exists()); // Shows bool(false)
}
x();
[/code]
--
You probably want the following to build the symbol table.
if (!EG(active_symbol_table)) {
zend_rebuild_symbol_table(TSRMLS_C);
}
Scott
Yes, that works. Do you know why we have to rebuild it? I'd assume that
the symbol table was built automatically?
Anyone?
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php