Reply to RE: [PHP] Quick Poll: PHP 4 / 5

Your name:

Reply:


Posted by "Carl Furst" on 09/18/05 23:59

Chris,

You probably are aware that this comes from a C/C++ standard the '&' before
the variable means that you are passing by reference and not by value. If
you are passing by reference, you are passing the address of a variable
instead of the value of that variable.

By passing the value of 3 the script crashes because it thinks that you are
passing a pointer to address 3 in memory. This means the computer thinks
that the value being passed to the function is located in memory address '3'
which is invalid because that memory address is reserved for the OS (at
least on most machines the lowest memory addresses are reserved for the OS.)
In order to make your code work you would have to pass a variable so that
the computer can get the address of that variable and use/compute the data
located there.

Sounds like the original problem is some kind of type mismatch of this sort.



Carl

> -----Original Message-----
> From: Chris Shiflett [mailto:shiflett@php.net]
> Sent: Sunday, September 18, 2005 4:10 PM
> To: Robert Cummings
> Cc: Rasmus Lerdorf; Stephen Leaf; PHP-General
> Subject: Re: [PHP] Quick Poll: PHP 4 / 5
>
> Robert Cummings wrote:
> > I don't agree with your position that the above code is incorrect
>
> I think notices are fine for situations where you've probably screwed
> up. I'd rather PHP let me know than do nothing.
>
> I see this situation as being very similar to the following:
>
> <?php
>
> function foo(&$bar)
> {
> /* ... */
> }
>
> foo(3);
>
> ?>
>
> This happens to throw a fatal error, which seems fine (mainly because it
> always has, as far as I know, so no one can have working code that does
> this sort of thing).
>
> I'm curious to know whether you would also disagree that this code is
> incorrect. I don't see a big fundamental difference, but I might be
> misunderstanding something.
>
> Chris
>
> --
> Chris Shiflett
> Brain Bulb, The PHP Consultancy
> http://brainbulb.com/

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация