Will there be any measurable performance difference when passing data as values instead of as reference in PHP?
It seems like few people are aware of that variables can be passed as values instead of references. Is this common sense or not?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
If you are passing a large variable by value (which is the default for everything except objects in PHP5+), then yes, you can take a performance hit.
For example, if the user submits a large amount of POST data, if you were to pass that to a function normally (aka pass by value), the whole array would have to be copied, which would affect performance. However, unless you’re on a very large-scale site, you probably won’t notice the hit.
Pass by reference is possible in PHP, but certainly not the default (unless it’s an object): you need to add an & before the variable to make it pass by reference, otherwise it’s just by value (and copies it). As of PHP5, objects are passed by reference automatically, but before PHP5 you need to explicitly pass by reference (ie add the &)