PHP code:
<code><?php $key = [1,2]; function add($key){ array_push($key,'dddss'); print_r($key); } add($key); print_r($key);</code></code>
Output
<code>Array ( [0] => 1 [1] => 2 [2] => dddss ) Array ( [0] => 1 [1] => 2 ) </code>
JS code:
<code>var $key = [1,2]; function addkey($key){ let hello = $key; hello.push(9) console.log(hello) console.log($key) } addkey($key) console.log($key)</code>
Output:
<code>[ 1, 2, 9 ] [ 1, 2, 9 ] [ 1, 2, 9 ] </code>
What I want is that the processing inside the function does not affect the results outside the function, which is similar to the results of PHP. I also want to know the reason
Reply content:
PHP code:
<code><?php $key = [1,2]; function add($key){ array_push($key,'dddss'); print_r($key); } add($key); print_r($key);</code></code>
Output
<code>Array ( [0] => 1 [1] => 2 [2] => dddss ) Array ( [0] => 1 [1] => 2 ) </code>
JS code:
<code>var $key = [1,2]; function addkey($key){ let hello = $key; hello.push(9) console.log(hello) console.log($key) } addkey($key) console.log($key)</code>
Output:
<code>[ 1, 2, 9 ] [ 1, 2, 9 ] [ 1, 2, 9 ] </code>
What I want is that the processing inside the function does not affect the results outside the function, which is similar to the results of PHP. I also want to know the reason
let hello = $key.slice();
Your function parameter is an array, and arrays are passed by reference in js. . When you use let inside a function to assign a reference to an array to another variable. In fact, both hello and $key point to a value at the same time, which is an array of length 2 in this case. So when you push or do other operations on any variable, what changes is actually the value pointed to by both variables at the same time.
PHP’s default incoming parameters are copies, not references, but JS always passes references, so you only need to copy one in it to change it
var $keys = [1, 2]; function addkey($keys) { // 拷贝一份 let hello = [].concat($keys); hello.push(9); console.log(hello); console.log($keys); } addkey($keys); console.log($keys);
The problem is passing by reference. Actually this he will appear in PHP.
<code>$obj = new stdClass(); $obj->name = 'aa'; function change($o) { $o->name = 'bb'; } change($obj); echo $obj; // 'bb'</code>
The difference is that js arrays are also objects, and they are also passed by reference. You can search for 'clone object'. The answer to this question has been given above.
When using php to pass in parameters, adding & means passing by reference, and it will be the same as when your js code comes out

Load balancing affects session management, but can be resolved with session replication, session stickiness, and centralized session storage. 1. Session Replication Copy session data between servers. 2. Session stickiness directs user requests to the same server. 3. Centralized session storage uses independent servers such as Redis to store session data to ensure data sharing.

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

Alternatives to PHP sessions include Cookies, Token-based Authentication, Database-based Sessions, and Redis/Memcached. 1.Cookies manage sessions by storing data on the client, which is simple but low in security. 2.Token-based Authentication uses tokens to verify users, which is highly secure but requires additional logic. 3.Database-basedSessions stores data in the database, which has good scalability but may affect performance. 4. Redis/Memcached uses distributed cache to improve performance and scalability, but requires additional matching

Sessionhijacking refers to an attacker impersonating a user by obtaining the user's sessionID. Prevention methods include: 1) encrypting communication using HTTPS; 2) verifying the source of the sessionID; 3) using a secure sessionID generation algorithm; 4) regularly updating the sessionID.

The article discusses PHP, detailing its full form, main uses in web development, comparison with Python and Java, and its ease of learning for beginners.

PHP handles form data using $\_POST and $\_GET superglobals, with security ensured through validation, sanitization, and secure database interactions.

The article compares PHP and ASP.NET, focusing on their suitability for large-scale web applications, performance differences, and security features. Both are viable for large projects, but PHP is open-source and platform-independent, while ASP.NET,

PHP's case sensitivity varies: functions are insensitive, while variables and classes are sensitive. Best practices include consistent naming and using case-insensitive functions for comparisons.


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

Atom editor mac version download
The most popular open source editor

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Zend Studio 13.0.1
Powerful PHP integrated development environment
