Ask a Question related to PHP Development, Design and Development.

  1. #1

    Default PHP's References

    I'm trying to create a stack of class objects; but on cycling through them
    with 'foreach' I am unable to update their properties. What is the correct
    method for this?


    Guest

  2. Similar Questions and Discussions

    1. How do I keep individual .php's from being posted
      My DW operator left the company and I need to remove her from the website. I do not want to delete her PHP though. I can see other ex-employees in...
    2. Is there a Coldfusion equivalent to PHP's array_unique?
      I'm trying to filter out unique array elements in Coldfusion MX 7. Is there any coldfusion function equivalent to PHP's array_unique function? ...
    3. Something like PHP's PEAR::DB_NestedSet?
      This PHP module looks cool: http://pear.php.net/package/DB_NestedSet is there something like it in CPAN? -- dave
    4. PHP's global namespace
      Why are PHP's system functions all in a global namespace? Won't this lead to chaos as new functions are added, which have names which clash with...
    5. PROBLEM : Installing GD for PHP's JpGraph
      Hi there, I've installed PHP on a variety of machines, but I seem to be having a lot of trouble on Windows XP. I have 4.3.2 installed, and I...
  3. #2

    Default Re: PHP's References

    [email]barry@blues.no[/email] wrote:
    > I'm trying to create a stack of class objects; but on cycling through them
    > with 'foreach' I am unable to update their properties. What is the correct
    > method for this?
    You get copies with foreach; use the key value to access the
    original array:

    foreach ($foo as $bar->$baz)
    {
    $foo[$bar] = new MyClass($baz->Name, $baz->WidgetCount);
    }

    HTH

    You really could have thought of this one yourself and tried the code, you
    know!

    matty Guest

  4. #3

    Default Re: PHP's References

    [email]barry@blues.no[/email] schrieb:
    > I'm trying to create a stack of class objects; but on cycling through them
    > with 'foreach' I am unable to update their properties. What is the correct
    > method for this?
    foreach() uses a copy of the array. Use somthing like:

    <?php
    foreach($arr as $key=>$val) {
    $arr[$key] = editfunc($val);
    }
    ?>

    or for very large arrays

    <?php
    reset($arr);
    while(list($key,$val) = each($arr)) {
    $arr[$key] = editfunc($val);
    }
    ?>

    Regards
    Thomas

    Thomas Weinert Guest

  5. #4

    Default Re: PHP's References

    Thanks to both Thomas and matty; I actually was unaware of the second form
    of 'foreach'. So ended up doing something like the following (which even
    keeps me from having to use references.) I'd like to ask one more thing; is
    the call to array_keys, neglible in effeciency compared to using the second
    form of 'foreach'?

    class Foo
    {
    var $some_value;

    function Bar()
    {
    $this->some_value = "def";
    }

    function Foo()
    {
    $this->some_value = "abc";
    }
    }

    $class_stack = array();
    array_push( $class_stack, new Foo() );
    array_push( $class_stack, new Foo() );

    // $some_value is set to "abc"

    foreach( $class_stack as $cls=>$key )
    {
    $class_stack[ $cls ]->Bar();
    }

    // $some_value now equals "def"


    Guest

Posting Permissions

  • You may not post new threads
  • You may 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