Mombu the Php Forum sponsored links

Go Back   Mombu the Php Forum > Php > #40477 : object's read property handler not used in zend_print_zval_r_ex
User Name
REGISTER NOW! Mark Forums Read

sponsored links

1 11th July 00:24
External User
Posts: 1
Default #40477 : object's read property handler not used in zend_print_zval_r_ex

ID: 40477
User updated by: piotrek dot pokora at gmail dot com
Reported By: piotrek dot pokora at gmail dot com
Status: Bogus
Bug Type: Variables related
Operating System: debian/linux
PHP Version: 5.2.1
New Comment:


Please, f****ve me. But don't you think that do***entation privided by
ZEND clearly states:

"read_property - returns zval *, containing the value of the
property. Is used when value of the property should be retrieved for

It doesn't tell about any exceptions.

I will be more than glad to ask you about such exceptions at pecl-dev
list but unfortunatelly I didn't get any confirmation after using ( few
times ) submit form at

If I can not subscribe to this list with this form , please subscribe
me using my mail.

I am looking forward for detailed clarification.

Previous Comments:

[2007-02-15 09:48:33]

No, this is a list when I'm ready to explain any question regarding
Zend Engine sources to a person who haven't ever heard of respect.


[2007-02-15 09:36:25]

Stop ranting and grasp the facts.


[2007-02-15 09:32:19] piotrek dot pokora at gmail dot com

Is this a list for reporting ZEND bugs?

function: static void print_hash(HashTable *ht, int indent, zend_bool
is_object TSRMLS_DC)

printing value:
ZEND_PUTS("] => ");
zend_print_zval_r(*tmp, indent+PRINT_ZVAL_INDENT TSRMLS_CC);

`tmp` pointer is not a pointer for a zval returned by ANY
read_property. Neither standard nor user defined one.

If you are going to keep this bug with bogus status, I am going to
submit another one.

Logic and consistency is broken here. And this is absolutely a bug.
Behaviour of this function's part is unchanged since ZEND1 engine.


[2007-02-15 09:03:05]


[2007-02-14 20:51:42] piotrek dot pokora at gmail dot com

OK, let's talk code.

GObject and GValue wrappers for a case we talk about:

midgard_config class constructor and methods:

PAY SPECIAL ATTENTION! There's no get_properties hook function.

PHP code:

$a = new midgard_config();
/* $a has underlying GObject object so properties for this object are
already assigned */
$a->read_file("my_config", TRUE);
echo $a->dbtype;


midgard_config Object
[__res] => Resource id #8
[dbtype] =>
[database] =>
[dbuser] =>
[dbpass] =>
[host] =>
[blobdir] =>
[logfilename] =>
[schema] =>
[defaultlang] =>
[loglevel] =>
[tablecreate] =>
[tableupdate] =>
[testunit] =>
[midgardusername] =>
[midgardpassword] =>
[authtype] => 0
[pamfile] =>

Do you see 'MySQL' value in print_r output?
Why then echo $a->dbtype; outputs MySQL? Even if I use standard ( not
defined by me ) get_properties handler??

Because language respect my read_property hook, isn't it.

Do you want similiar code for derived class?
Or maybe you can look at zend_print_zval_r_ex and notice that
print_hash is used for IS_ARRAY and IS_OBJECT value type?

DO YOU SEE read_property hook invoked by print_hash function??

Maybe I misunderstood something here but this is not the fact that
IS_ARRAY != IS_OBJECT and zend_print_zval_r_ex
ignores completely user's read_property hook.


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

Edit this bug report at
  Reply With Quote

  sponsored links


Thread Tools
Display Modes

Copyright 2006 - Dies Mies Jeschet Boenedoesef Douvema Enitemaus -