【php foreach 使用&(与运算符)引用赋值要注意的问题】教程文章相关的互联网学习教程文章

PHP的foreach中使用引用时需要注意的一个问题和解决方法_PHP

一、问题先看一个例子: $ar = array(1, 2, 3);var_dump($ar);foreach ($ar as &$v) {}foreach ($ar as $v) {}var_dump($ar);?>输出为: array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3)}array(3) { [0]=> int(1) [1]=> int(2) [2]=> &int(2)}???为什么没有进行赋值操作,数组最后一个元素的值却发生了改变呢? 我早就发现了这个问题,一开始以为是 PHP 的 bug,就扔着没管它, foreach 中不使用引用就没事, 用...

PHP中多维数组的foreach遍历示例_PHP

代码如下://声明一个三维数组 $info=array( "user"=>array( array(1,"zhangsan",20,"nan"), array(2,"lisi",20,"nan"), array(3,"wangwu",25,"nv") ), "score"=>array( array(1,100,98,95,96), array(2,56,98,87,84), array(3,68,75,84,79) ), "connect"=>array( array(1,'2468246',"salkh@bbs.com"), array(2,'343681643',"aikdki@sina.com"), array(3,'3618468',"42816@qq.com") ) ); //循环遍历,输出一个表格 foreach($info as...

php下foreach提示Warning:Invalidargumentsuppliedforforeach()_PHP

本文实例讲述了php下foreach()错误提示Warning: Invalid argument supplied for foreach() 的解决方法。分享给大家供大家参考。具体实现方法如下: 一、问题: php下foreach()错误提示Warning: Invalid argument supplied for foreach() 错误提示:Warning: Invalid argument supplied for foreach() in E:wampwwwmyshopcart.php on line 95 二、解决方案: 错误提示 Warning:Invalid argument supplied for foreach() 的中文意思是...

smarty内置函数foreach用法实例_PHP

本文实例讲述了smarty内置函数foreach用法。分享给大家供大家参考。具体如下: 输出文件:index.php代码如下:<?php require_once(libs/Smarty.class.php); $smarty = new Smarty(); $smarty->setTemplateDir($_SERVER[DOCUMENT_ROOT]."/php/templates/"); $smarty->setCompileDir($_SERVER[DOCUMENT_ROOT]."/php/templates_c/"); $smarty->setCacheDir($_SERVER[DOCUMENT_ROOT]."/php/cache/"); $smarty->caching = false; $name =...

smarty模板引擎使用内建函数foreach循环取出所有数组值的方法_PHP

本文实例讲述了smarty内建函数foreach的使用方法,分享给大家供大家参考。具体如下: 显示文件:index.php:代码如下:<?php //创建smarty对象 require_once("./libs/Smarty.class.php"); $smarty = new Smarty(); $arr1 = array("北京","上海","广州");//索引数组 $smarty->assign("arr1",$arr1);//分配索引数组 $arr2 = array("city1"=>"北京","city2"=>"上海","city3"=>"广州");//关联数组 $smarty->assign("arr2",$arr2);//分配...

PHP中foreach()用法汇总_PHP

PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。foreach (array_expression as $value)statementforeach (array_expression as $key => $value)statement第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且...

浅谈PHP中foreach/in_array的使用_PHP

php在开发效率很高,这是无可厚非的,但是却是在牺牲执行效率的。php数组功能非常强大,但是也要多加考虑,多试几种情况情况,以防万一,这里,我就简单的说两个遇到的坑,以后如果有发现更多的,再补上吧!foreach 提供了遍历数组的简单方式,可以很方便的读取到数据或对象的内容,但是官方文档说了,由于 foreach 依赖内部数组指针,在循环中修改其值将可能导致意外的行为。所以,基本上, 1、不要想在循环内部修改里面的值,否则...

深入解析PHP中foreach语句控制数组循环的用法_PHP

foreach是PHP中很常用的一个用作数组循环的控制语句。 因为它的方便和易用,自然也就在后端隐藏着很复杂的具体实现方式(对用户透明) 今天,我们就来一起分析分析,foreach是如何实现数组(对象)的遍历的。 我们知道PHP是一个脚本语言,也就是说,用户编写的PHP代码最终都是会被PHP解释器解释执行, 特别的,对于PHP来说,所有的用户编写的PHP代码,都会被翻译成PHP的虚拟机ZE的虚拟指令(OPCODES)来执行,不论细节的话,就是说,...

PHP模板引擎Smarty内建函数foreach,foreachelse用法分析_PHP【图】

本文实例讲述了PHP模板引擎Smarty内建函数foreach,foreachelse用法。分享给大家供大家参考,具体如下: 在 Smarty 模板中,您可以使用 foreach 来重复一个区块。而在模板中则需要从 PHP 中分配过来一个数组。这个数组可以是多维数组。Smarty 中 {foreach} 标记和 PHP 中 foreach 相同,不同的是它们的一个在模板文件中使用,一个在 PHP 脚本中使用。因此,语法会不同。但是,它们的作用都是相同的,即遍历数组中的内容。与 {foreac...

PHP数组遍历方法大全(foreach,list,each)_php技巧

在PHP中数组分为两类: 数字索引数组和关联数组。 其中数字索引数组和C语言中的数组一样,下标是为0,1,2… 而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似。 下面介绍PHP中遍历关联数组的三种方法: 方法1:foreach 代码如下:$sports = array( 'football' => 'good', 'swimming' => 'very well', 'running' => 'not good'); foreach ($sports as $key => $value) { echo $key.": ".$value.""; ?> 输出结果:...

PHP中foreach循环中使用引用要注意的地方_php技巧

代码如下:foreach ($array as &$row) { $row = explode(/, $row); } foreach ($array as $row) { //do something } 这么写,在第二个循环会出逻辑错误,加入第二个循环中do something的地方是输出$row,循环到最后一个的时候的输出是倒数第二个元素,而不是最后一个 要这么写 代码如下:foreach ($array as &$row) { $row = explode(/, $row); } unset($row); foreach ($array as $row) { //do something } 或者第一个循环这么写...

PHP中for与foreach的区别分析_php技巧

注意: 除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此数组指针不会被 each() 结构改变,对返回的数组单元的修改也不会影响原数组。 1. 自php5起,foreach 还可能遍历对象的属性。 2. 自php5起,foreach 可以很容易地通过在 $value 之前加上 & 来修改数组的单元,此方法将以引用赋值而不是拷贝一个值。 代码如下:$arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; }...

php中处理mysql_fetch_assoc返回来的数组不用foreach----echo_php技巧

代码如下:$id = intval($_GET[id]); $row = $db->getResult($db->query("select * from ".$t."product where id=$id;")); $rows = $row[0];//处理mysql_fetch_assoc返回来的数组 不用foreach----echo!

php中用foreach来操作数组的代码_php技巧

foreach()有两种用法: 代码如下:foreach(array_name as $value) { statement; } 这里的array_name是你要遍历的数组名,每次循环中,array_name数组的当前元素的值被赋给$value,并且数组内部的下标向下移一 步,也就是下次循环回得到下一个元素。 代码如下:foreach(array_name as $key => $value) { statement; } 这里跟第一种方法的区别就是多了个$key,也就是除了把当前元素的值赋给$value外,当前元素的键值也会在每次循环中...