foreach遍历 是如何遍历的 指针问题
foreach遍历是对原数组的拷贝问题
比如$a1=array('a','b','c');foreach($a1 as $k=>$v){
echo $v,'
';
if($k==1){
$a1[3] ='d';
}
}
var_dump(current($a1));
数组a1在经过foreach遍历时 foreach遍历的是原数组的拷贝 我想问一下 它是先把原数组整体拷贝完后再遍历还是在原数组上一个一个元素进行复制存储在变量$k $v中 存一个然后echo输出一个 看了foreach执行的流程图 认为是第二种。
如果我按第二种法方理解 那么当if($k==1时对原数组进行了写操作 此时foreach会在指针指向第三个元素时进行了真实的拷贝) 在这里我困惑的是foreach的执行流程图要靠原数组的指针一个一个复制存储输出来完成的 而这段代码最后输出$a1的指针却是指向第三个元素C 就不动了 那么按照我第二种理解 指针不动如何完成foreach的遍历呢?
难道是这样理解吗:就是$a1复制一份出来比如是$a2 foreach遍历的实际上是$a2 这样就可以理解老师所讲的这句话:数组遍历的是原数组的拷贝
就是说先整体把$a1复制一份出来 再对$a2的一个一个元素进行存储到变量里然后输出吗
回复讨论(解决方案)
数组有两套指针,一套是你能看到的下标、关联键,另一套是内部的你不能看到的,但可以用next、perv、end等函数操作
foreach 只是把数组的内部指针的副本传了进去,所以你在 foreach 中修改、添加、删除的数组成员,在 foreach 中都是表现不出来的。因为你并没有修改到那个传进去的副本

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











In PHP, password_hash and password_verify functions should be used to implement secure password hashing, and MD5 or SHA1 should not be used. 1) password_hash generates a hash containing salt values to enhance security. 2) Password_verify verify password and ensure security by comparing hash values. 3) MD5 and SHA1 are vulnerable and lack salt values, and are not suitable for modern password security.

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP type prompts to improve code quality and readability. 1) Scalar type tips: Since PHP7.0, basic data types are allowed to be specified in function parameters, such as int, float, etc. 2) Return type prompt: Ensure the consistency of the function return value type. 3) Union type prompt: Since PHP8.0, multiple types are allowed to be specified in function parameters or return values. 4) Nullable type prompt: Allows to include null values and handle functions that may return null values.

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.
