Professional Web Applications Themes

#40492 [NEW]: property_exists called in parent class doesn work on private property of subcla - PHP Bugs

From: rpg at terry-pratchett dot info Operating system: debian sarge PHP version: 5.2.1 PHP Bug Type: Feature/Change Request Bug description: property_exists called in parent class doesn work on private property of subcla Description: ------------ The property_exists function returns true on private properties if called within a class. That doesn't work, if it is called in a function of a parent class. If you overload the function in the childclass it works, but this is actually not the idea behind OOP ;-) Reproduce code: --------------- <? class x { private $x; public function prop ($p) { return property_exists($this,$p); } } class ...

  1. #1

    Default #40492 [NEW]: property_exists called in parent class doesn work on private property of subcla

    From: rpg at terry-pratchett dot info
    Operating system: debian sarge
    PHP version: 5.2.1
    PHP Bug Type: Feature/Change Request
    Bug description: property_exists called in parent class doesn work on private property of subcla

    Description:
    ------------
    The property_exists function returns true on private properties if called
    within a class. That doesn't work, if it is called in a function of a
    parent class. If you overload the function in the childclass it works, but
    this is actually not the idea behind OOP ;-)

    Reproduce code:
    ---------------
    <?
    class x {
    private $x;
    public function prop ($p) {
    return property_exists($this,$p);
    }
    }
    class y extends x {
    private $y;
    }
    $x = new x;
    echo 'prop(x): '.$x->prop('x').'<br>';
    $y = new y;
    echo 'prop(y): '.$y->prop('y').'<br>';
    ?>

    Expected result:
    ----------------
    you should see
    prop(x): 1
    prop(y): 1

    Actual result:
    --------------
    prop(x): 1
    prop(y):

    --
    Edit bug report at [url]http://bugs.php.net/?id=40492&edit=1[/url]
    --
    Try a CVS snapshot (PHP 4.4): [url]http://bugs.php.net/fix.php?id=40492&r=trysnapshot44[/url]
    Try a CVS snapshot (PHP 5.2): [url]http://bugs.php.net/fix.php?id=40492&r=trysnapshot52[/url]
    Try a CVS snapshot (PHP 6.0): [url]http://bugs.php.net/fix.php?id=40492&r=trysnapshot60[/url]
    Fixed in CVS: [url]http://bugs.php.net/fix.php?id=40492&r=fixedcvs[/url]
    Fixed in release: [url]http://bugs.php.net/fix.php?id=40492&r=alreadyfixed[/url]
    Need backtrace: [url]http://bugs.php.net/fix.php?id=40492&r=needtrace[/url]
    Need Reproduce Script: [url]http://bugs.php.net/fix.php?id=40492&r=needscript[/url]
    Try newer version: [url]http://bugs.php.net/fix.php?id=40492&r=oldversion[/url]
    Not developer issue: [url]http://bugs.php.net/fix.php?id=40492&r=support[/url]
    Expected behavior: [url]http://bugs.php.net/fix.php?id=40492&r=notwrong[/url]
    Not enough info: [url]http://bugs.php.net/fix.php?id=40492&r=notenoughinfo[/url]
    Submitted twice: [url]http://bugs.php.net/fix.php?id=40492&r=submittedtwice[/url]
    register_globals: [url]http://bugs.php.net/fix.php?id=40492&r=globals[/url]
    PHP 3 support discontinued: [url]http://bugs.php.net/fix.php?id=40492&r=php3[/url]
    Daylight Savings: [url]http://bugs.php.net/fix.php?id=40492&r=dst[/url]
    IIS Stability: [url]http://bugs.php.net/fix.php?id=40492&r=isapi[/url]
    Install GNU Sed: [url]http://bugs.php.net/fix.php?id=40492&r=gnused[/url]
    Floating point limitations: [url]http://bugs.php.net/fix.php?id=40492&r=float[/url]
    No Zend Extensions: [url]http://bugs.php.net/fix.php?id=40492&r=nozend[/url]
    MySQL Configuration Error: [url]http://bugs.php.net/fix.php?id=40492&r=mysqlcfg[/url]
    rpg at terry-pratchett dot info Guest

  2. #2

    Default #40492 [Opn->Bgs]: property_exists called in parent class doesn work on private property of subcla

    ID: 40492
    Updated by: [email]tony2001php.net[/email]
    Reported By: rpg at terry-pratchett dot info
    -Status: Open
    +Status: Bogus
    Bug Type: Feature/Change Request
    Operating System: debian sarge
    PHP Version: 5.2.1
    New Comment:
    >If you overload the function in the childclass it
    >works, but this is actually not the idea behind OOP
    I think inability to access child's private properties from parent's
    scope is pretty much OO. This is actually how private properties work,
    they cannot be accessed out of the class scope.


    Previous Comments:
    ------------------------------------------------------------------------

    [2007-02-15 08:54:26] rpg at terry-pratchett dot info

    Description:
    ------------
    The property_exists function returns true on private properties if
    called within a class. That doesn't work, if it is called in a function
    of a parent class. If you overload the function in the childclass it
    works, but this is actually not the idea behind OOP ;-)

    Reproduce code:
    ---------------
    <?
    class x {
    private $x;
    public function prop ($p) {
    return property_exists($this,$p);
    }
    }
    class y extends x {
    private $y;
    }
    $x = new x;
    echo 'prop(x): '.$x->prop('x').'<br>';
    $y = new y;
    echo 'prop(y): '.$y->prop('y').'<br>';
    ?>

    Expected result:
    ----------------
    you should see
    prop(x): 1
    prop(y): 1

    Actual result:
    --------------
    prop(x): 1
    prop(y):


    ------------------------------------------------------------------------


    --
    Edit this bug report at [url]http://bugs.php.net/?id=40492&edit=1[/url]
    tony2001@php.net Guest

Similar Threads

  1. Replies: 0
    Last Post: November 29th, 10:03 AM
  2. Replies: 3
    Last Post: October 5th, 03:04 PM
  3. File class doesn't work!
    By Daniel Carrera in forum Ruby
    Replies: 6
    Last Post: October 27th, 11:06 PM
  4. #24735 [NEW]: call_user_func on parent method does not use parent private property
    By tater at potatoe dot com in forum PHP Development
    Replies: 0
    Last Post: July 21st, 12:50 PM
  5. After PostBack my UserControls Property doesn't work correct
    By Andreas Klemt in forum ASP.NET General
    Replies: 0
    Last Post: July 8th, 02:58 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139