


Fatal error: Call-time pass-by-reference has been removed,passbyreference_PHP教程
Fatal error: Call-time pass-by-reference has been removed, passbyreference
The following code reports an error: Fatal error: Call-time pass-by-reference has been removed
function myFunc($arg) { do something... }
myFunc(&$arg);//Call myFunc
or
function myFunc(&$arg) { do something... }
myFunc(&$arg);//Call myFunc
Error analysis:
allow_call_time_pass_reference boolean
Whether to issue a warning when parameters are passed by reference during function calls. This method is deprecated and will likely no longer be supported in a future version of PHP/Zend. The encouraged approach is to specify in the function definition which parameters should be passed by reference. Everyone is encouraged to try turning this option off and ensuring that the script runs properly to ensure that the script also works in future versions (you will receive a warning every time you use this feature).
It is not recommended to pass parameters by reference when calling functions, because it affects the cleanliness of the code. If a function's parameters are not declared to be passed by reference, the function can modify its parameters through undocumented methods. To avoid its side effects, it is best to specify only when the function is declared that parameters need to be passed by reference.
Changelog for allow_call_time_pass_reference Version Description
5.4.0 Removed from PHP.
5.3.0 Emits an E_DEPRECATED level error.
5.0.0 Deprecated, and generates an E_COMPILE_WARNING level error.
Pass-by-reference parameters have been removed when calling functions , that is, you cannot pass parameters to call functions through function(&$a).
Solution:
Check your php.ini configuration file, adjust the allow_call_time_pass_reference parameter to true, and try restarting the server .
In addition, the previous php code may cause this error after upgrading to version 5.4 of php:
When we use functions (or classes) like this, an error will be generated:
myFunc(&$arg);//Call myFunc
Actually, it is wrong to use it this way, but the previous error level was only Deprecated.
The correct way to use it should be when defining the function:
function myFunc(&$arg) { do something... }
And just pass the parameters directly when calling:
myFunc($var);//Call myFunc
It means that reference parameters have been removed when calling, that is, you cannot pass parameters to call functions through function(&$a).
Solution:
Check you php.ini configuration file, adjust the allow_call_time_pass_reference parameter to true, and try restarting the server.
========================================
In addition, previously The php code may have this error after upgrading to version 5.4 of php:
When we use a function (or class) like this, an error will be generated:
foo(&$var );
Actually, it is wrong to use it this way, but the previous error level was only Deprecated.
The correct way to use it should be when defining the function:
function foo(& $var) {
//other code
}
And Just pass the parameters directly when calling: foo($var);
Go to the problematic line and remove the & from variables such as &$this, then restart xampp or bugfree;
or modify allow_call_time_pass_reference=On in php.ini

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Alipay PHP...

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

How to debug CLI mode in PHPStorm? When developing with PHPStorm, sometimes we need to debug PHP in command line interface (CLI) mode...

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.
