

Understanding PHP's internal function definitions - nikic
http://nikic.github.com/2012/03/16/Understanding-PHPs-internal-function-definitions.html

======
hamidpalo
Nitpicky but:

    
    
        The remaining arguments &haystack, &haystack_len, &needle, &offset specify the variables to put the arguments into. As you can see, they are all passed by reference (&), which means that not the variables themselves are passed, but pointers to them.
    
    

References aren't pointers, they _are_ the variables. The address of the
variable itself gets passed with a reference, whereas a pointer is a variable
containing the address of the variable. A pointer itself has an address. A
very subtle yet important difference.

~~~
KaeseEs
Another error:

    
    
          At this point you’ll have to remember that in C, arrays are represented by pointers to their first value.
    

No, they aren't. Arrays can _decay_ to a pointer when passed as function
parameters, but arrays and pointers are different things. Between these two
items, I think the author either a) is talking down to his audience more than
is warranted or b) fundamentally misunderstands C.

~~~
KaeseEs
To whomever downvoted this: if you think I'm wrong, I suggest you look at
question 6.3 from the comp.lang.c faq:
<http://c-faq.com/aryptr/aryptrequiv.html>

If you think I'm being too pedantic, a reply rather than a mere downvote would
be appreciated.

~~~
kingatomic
I didn't downvote, but I do think it's a bit pedantic.

From my dogeared, beaten copy of K&R: "By definition, the value of a variable
or expression of type array is the address of element zero of the array."

I don't think what the author wrote expresses that array === pointer, they
simply made a statement about the underlying representation.

