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?

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to