Home > Backend Development > PHP Tutorial > Is Pass-by-Reference Slower Than Pass-by-Value in PHP for Functions That Don't Modify Parameters?

Is Pass-by-Reference Slower Than Pass-by-Value in PHP for Functions That Don't Modify Parameters?

Linda Hamilton
Release: 2024-11-08 11:45:02
Original
565 people have browsed it

Is Pass-by-Reference Slower Than Pass-by-Value in PHP for Functions That Don't Modify Parameters?

Is Pass-by-Reference Faster in PHP (>= 5.0)?

In PHP, function parameters can be passed by reference, allowing functions to modify variables outside of their scope. While this is not intended for performance optimizations, it raises the question of whether the Copy On Write logic used in PHP affects performance for functions that do not modify their parameters.

Performance Tests

Tests involving 100,000 iterations of a function call with a string parameter of 20 kB revealed the following results:

For Functions That Read or Use the Parameter:

  • Pass by value: 0.12065005 seconds
  • Pass by reference: 1.52171397 seconds

For Functions That Change the Parameter:

  • Pass by value: 1.52223396 seconds
  • Pass by reference: 1.52388787 seconds

Conclusions

  1. Passing parameters by value is consistently faster in both cases.
  2. For functions that modify the parameter, there is no significant performance difference between pass-by-reference and pass-by-value.

The above is the detailed content of Is Pass-by-Reference Slower Than Pass-by-Value in PHP for Functions That Don't Modify Parameters?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template