PHP循环体内给数组赋值
2023-09-14 09:07:19 时间
循环体中给数组赋值
一:未初始化数组,直接赋值
<?php
$list = [1, 2, 3];
foreach ($list as $value) {
if($value != 2){
$data[0] = $value ;
}
var_dump($data) ;
}
/**
array(1) {
[0]=>int(1)
}
array(1) {
[0]=>int(1)
}
array(1) {
[0]=>int(3)
}
*/
二:先初始化数组,再赋值
<?php
$list = [1, 2, 3];
foreach ($list as $value) {
// 先初始化数组
$data = [] ;
if($value != 2){
$data[0] = $value ;
}
var_dump($data) ;
}
/**
array(1) {
[0]=>int(1)
}
array(0) {
}
array(1) {
[0]=>int(3)
}
[Finished in 0.1s]
*/
比较发现:
方式一,循环体中没有给数组进行初始化,当$value==2
时得到了错误的内容
整个循环过程中$data 指向了同一个对象,下次循环并没有新建对象
方式二,每次循环前都进行数组初始化操作,确保数组内容是空的
相关文章
- php 排列组合函数(无重复组合,可重复组合【全排列组合】)
- php 查找字符串里面中文字符第一次出现的位置,并插入字符串
- PHP Socket编程 之 抓取数据遇到Transfer-Encoding chunked
- [PHP] 使用 pcntl 库实现PHP多进程
- thinkphp6:访问多个redis数据源(thinkphp6.0.5 / php 7.4.9)
- 安装 php_mongodb.dll的坑
- thinkphp6:前后端分离使用表单令牌(php 8.1.1 / thinkphp v6.0.10LTS/vue 3.2.26)
- 彻底理解PHP的SESSION机制
- Atitit web httphandler的实现 java python node.js c# net php 目录 1.1. Java 过滤器 servelet1 1.2. Python的
- atitit.激活一个窗口总结 swing java .net php
- atitit.为什么 java开发要比php开发速度慢??
- PHP 循环 - For 循环
- PHP 循环 - While 循环
- PHP面试题:PHP.ini路径?
- PHP 零基础入门笔记(6):PHP 流程控制
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform