php中foreach和while循环的区别比较

 更新时间:2016年11月25日 15:03  点击:2030
foreach和while在php中都循环,那么foreach和while循环之间他们的区别是什么,那个性能会更好一些,下面我来给大家介绍foreach和while循环区别与性能比较,有需要了解的同学可参考。

在while循环里,Perl会读入一行输入,把它存入某个变量并且执行循环主体。然后,它再回头去找其他的输入行。

在foreach循环中,整行输入操作符会在列表上下文中执行(因为foreach需要逐行处理列表的内容)。在循环开始执行之前,它必须先将输入全部读进来。

当输入大容量的文件时,使用foreach会占用大量的内存。两者的差异会十分明显。因此,最好的做法,通常是尽量使用while循环的简写,让它每次处理一行。

下面是一些资料:

当你想重复执行某些语句或语段时,依据当前不同的任务,C#提供4个不同的循环语句选择给你使用:
。for 语句
。foreach 语句
。while 语句
。do 语句

1.for

当你预先知道一个内含语句应要执行多少次时,for 语句特别有用。当条件为真时,常规语法允许重复地执行内含语句(和循环表达式):

for (初始化;条件;循环) 内含语句

请注意,初始化、条件和循环都是可选的。如果忽略了条件,你就可以产生一个死循环,要用到跳转语句(break 或goto)才能退出。

 代码如下 复制代码

for (;;)
{
break; // 由于某些原因
}

另外一个重点是,你可以同时加入多条由逗号隔开的语句到for循环的所有三个参数。例如,你可以初始化两个变量、拥有三个条件语句,并重复4个变量。

2.foreach

已经在Visual Basic 语言中存在了很久的一个功能是,通过使用For Each 语句收集枚举。C#通过foreach 语句,也有一个用来收集枚举的命令:

foreach(表达式中的类型标识符) 内含语句

循环变量由类型和标识符声明,且表达式与收集相对应。循环变量代表循环正在为之运行的收集元素。

3.while

当你想执行一个内含语句0次或更多次时,while语句正是你所盼望的:

while (条件) 内含语句

条件语句——它也是一个布尔表达式 ——控制内含语句被执行的次数。你可以使用 break 和continue语句来控制while语句中的执行语句,它的运行方式同在for语句中的完全相同。

4,do

C#最后可利用的循环语句是do语句。它与while语句十分相似,仅当经过最初的循环之后,条件才被验证。

 代码如下 复制代码

do
{
内含语句
}
while (条件);

do语句保证内含语句至少被执行过一次,而且只要条件求值等于真,它们继续被执行。通过使用break语句,你可以迫使运行退出 do 语块。如果你想跳过这一次循环,使用continue语句。


性能对比

foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。
在循环里进行的是数组“读”操作,则foreach比while快:

 代码如下 复制代码
foreach ($array as $value) {
echo $value;
}
while (list($key) = each($array)) {
echo $array[$key];
}

在循环里进行的是数组“写”操作,则while比foreach快:

 代码如下 复制代码
foreach ($array as $key => $value) {
echo $array[$key] = $value . '...';
}
while (list($key) = each($array)) {
$array[$key] = $array[$key] . '...';
}


下面先让我们来测试一下共同遍历一个有50000个下标的一维数组所耗的时间:

测试平台:
CPU:P-M 725
内存:512M
硬盘:40G 5400转
OS:Windows xp SP2
WEB:apache 2.0.54  php5.0.4

测试代码:

 代码如下 复制代码

<?php
/*
  * @ Author: Lilov
  * @ Homepage: www.111cn.net
  * @ E-mail: zhongjiechao@gmail.com
  *
  */

$arr = array();
for($i = 0; $i < 50000; $i++){
$arr[] = $i*rand(1000,9999);
}

function GetRunTime()
{
list($usec,$sec)=exp lode(" ",microtime());
return ((float)$usec+(float)$sec);
}
######################################
$time_start = GetRunTime();

for($i = 0; $i < count($arr); $i++){
$str .= $arr[$i];
}

$time_end = GetRunTime();
$time_used = $time_end - $time_start;

echo 'Used time of for:'.round($time_used, 7).'(s)<br><br>';
unset($str, $time_start, $time_end, $time_used);
######################################
$time_start = GetRunTime();

while(list($key, $val) = each($arr)){
$str .= $val;
}

$time_end = GetRunTime();
$time_used = $time_end - $time_start;

echo 'Used time of while:'.round($time_used, 7).'(s)<br><br>';

unset($str, $key, $val, $time_start, $time_end, $time_used);
######################################
$time_start = GetRunTime();

foreach($arr as $key => $val){
$str .= $val;
}

$time_end = GetRunTime();
$time_used = $time_end - $time_start;
echo 'Used time of foreach:'.round($time_used, 7).'(s)<br><br>';
######################################

?>

测试结果:

将三次测试结果求平均值:
分别对应for、while、foreach
0.1311650
0.1666853
0.1237440

经过反复多次测试,结果表明,对于遍历同样一个数组,foreach速度最快,最慢的则是while。foreach比while大约快20% ~ 30%左右。随后再把数组下标添加到500000、5000000测试结果也一样。但从原理上来看,foreach是对数组副本实行操作(通过拷贝数组),而while则通过移动数组内部指标实行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。原由应该是,foreach是PHP内部实现,而while是通用的循环结构。


总结:通常认为,foreach涉及到值复制,一定会比while慢,但实际上,如果仅仅是在循环里进行数组的读操作,那么foreach是很 快的,这是因为PHP采用的复制机制是“引用计数,写时复制”,也就是说,即便在PHP里复制一个变量,最初的形式从根本上说其实 仍然是引用的形式,只有当变量的内容发生变化时,才会出现真正的复制,之所以这么做是出于节省内存消耗得目的,同时也提升了 复制的效率。这样看来,foreach的高效读操作就不难理解了。另外,既然foreach不适合处理数组写操作,那么我们可以得出一个结 论,多数情况下,类似foreach ($array as $key => $value)形式的做数组写操作得代码都应该被替换成while (list($key) = each($array))。这些技巧产生的速度差异在小项目里可能并不明显,但是在类似框架这样的大项目中,一次请求动辄便会涉及到几 百几千几万次数组循环操作,差异就会明显放大。

星座判断很简单我们要统计出每个星期所有日期时间段了,然后获取日期进行查询即可了,下面我给大家举两个实例,有需要的同学可参考。

星座:我是根据这个时间表写的,该时间表未必准确。

'水瓶座'=>'(1/22-2/21)',   '双鱼座'=>'(2/22-3/21)',

'白羊座'=>'(3/22-4/21)',   '金牛座'=>'(4/22-5/21)',

'双子座'=>'(5/22-6/21)',   '巨蟹座'=>'(6/22-7/21)',

'狮子座'=>'(7/22-8/21)',   '处女座'=>'(8/22-9/21)',

'天秤座'=>'(9/22-10/21)',  '天蝎座'=>'(10/22-11/21)',

'射手座'=>'(11/22-12/21)',  '摩羯座'=>'(12/22-1/21)'


根据日期判断星座函数

 代码如下 复制代码

function yige_constellation($month, $day) {
 // 检查参数有效性
 if ($month < 1 || $month > 12 || $day < 1 || $day > 31) return false;
 
 // 星座名称以及开始日期
 $constellations = array(
  array( "20" => "宝瓶座"),
  array( "19" => "双鱼座"),
  array( "21" => "白羊座"),
  array( "20" => "金牛座"),
  array( "21" => "双子座"),
  array( "22" => "巨蟹座"),
  array( "23" => "狮子座"),
  array( "23" => "处女座"),
  array( "23" => "天秤座"),
  array( "24" => "天蝎座"),
  array( "22" => "射手座"),
  array( "22" => "摩羯座")
 );
 
 list($constellation_start, $constellation_name) = each($constellations[(int)$month-1]);
 
 if ($day < $constellation_start) list($constellation_start, $constellation_name) = each($constellations[($month -2 < 0) ? $month = 11: $month -= 2]);
 
 return $constellation_name;
}

下面这个更全面可直接根据生日检查年龄,生肖,星座

 代码如下 复制代码

<?php

/**

* 根据生日中的月份和日期来计算所属星座

*

* @param int $birth_month

* @param int $birth_date

* @return string

*/

function get_constellation($birth_month,$birth_date)

{

//判断的时候,为避免出现1和true的疑惑,或是判断语句始终为真的问题,这里统一处理成字符串形式

$birth_month = strval($birth_month);

 

$constellation_name = array(

      '水瓶座','双鱼座','白羊座','金牛座','双子座','巨蟹座',

      '狮子座','处女座','天秤座','天蝎座)','射手座','摩羯座'

      );

 

if ($birth_date <= 22)

{

  if ('1' !== $birth_month)

  {

   $constellation = $constellation_name[$birth_month-2];

  }

  else

  {

   $constellation = $constellation_name[11];

  }

}

else

{

  $constellation = $constellation_name[$birth_month-1];

}

 

return $constellation;

}


/**

* 根据生日中的年份来计算所属生肖

*

* @param int $birth_year

* @return string

*/

function get_animal($birth_year)

{

//1900年是子鼠年

$animal = array(

    '子鼠','丑牛','寅虎','卯兔','辰龙','巳蛇',

    '午马','未羊','申猴','酉鸡','戌狗','亥猪'

    );

 

$my_animal = ($birth_year-1900)%12;

return $animal[$my_animal];

}


/**

* 根据生日来计算年龄

*

* 用Unix时间戳计算是最准确的,但不太好处理1970年之前出生的情况

* 而且还要考虑闰年的问题,所以就暂时放弃这种方式的开发,保留思想

*

* @param int $birth_year

* @param int $birth_month

* @param int $birth_date

* @return int

*/

function get_age($birth_year,$birth_month,$birth_date)

{

$now_age = 1; //实际年龄,以出生时为1岁计

$full_age = 0; //周岁,该变量放着,根据具体情况可以随时修改

 

$now_year   = date('Y',time());

$now_date_num  = date('z',time()); //该年份中的第几天

$birth_date_num = date('z',mktime(0,0,0,$birth_month,$birth_date,$birth_year));

 

$difference = $now_date_num - $birth_date_num;

if ($difference > 0)

{

  $full_age = $now_year - $birth_year;

}

else

{

  $full_age = $now_year - $birth_year - 1;

}

 

$now_age = $full_age + 1;

 

return $now_age;

}


?>

本文章来给大家介绍一个入门教程关于PHP表单提交数据之get,post实例,有需要了解的同学可进入参考参考。

1.什么是表单

所谓表单,说简单点就是一对form标签。即:<form></form> 。

2.表单的作用

表单的作用是采集客户端提交的数据,并把数据提交给服务端。

比如在登录一个网站时,你需要输入自己的用户名和密码才能登陆。又比如你注册游戏账号时,你需要填写自己的邮箱、密码、年龄等等。

这些操作就要通过表单提交给服务器,最后由服务器记录在数据库。(不是所有)
3.表单的组成

表单的两个标签必须是成对出现的:<form></form>。

form标签有两个必填的属性 : action,method。

action的作用是指定要提交到服务器的地址,比如我要提交到本站的info.php文件,那么就写成<form  action=”http://www./info.php“>

,本站的文件写相对路径就可以了:<form  action=”info.php“>

method属性,顾名思义就是提交数据的方法,它有两个值可选:post/get ,post是隐藏传递,get是地址栏传递。具体不同请参阅文章《form的get和post 详细分析区别》。

如果用get传递,以上就可以写成:<form  action=”info.php“   method=”get”>

form标签中可以添加文本框,比如用户填写用户名和密码的:

用户名:<input    type=”text”   name=”username”  value=”"  />

密    码:<input    type=”password”  name=”password”  value=”"  />

也可以多行文本textarea等:

<textarea  name=”content”></textarea>

最后加一个提交按钮和一个重置按钮:

<input   type=”submit”  value=”提交”/>

<input   type=”reset”  value=”重置”/>

细心的童鞋可以看出,以上的几个标签除了提交、重置和form表单外,我都有些name属性,因为服务端是通过标签的name属性来获取它的值的。

4.那么在info.php中如何获取数据的呢?

有三种方式:$_GET,$_POST,$_REQUEST。

$_GET只能获取get方法提交的数据,$_POST方法只能获取post方法提交的数据,而$_REQUEST能同时获取get和post方法提交的数据。

比如要得到用户输入的用户名和密码的值,就是 $_GET["username"] 和$_GET["password"],或者$_REQUEST["username"] 和$_REQUEST["password"]

以下是实例代码:

创建  test.html文件,内容:

 代码如下 复制代码

<form  action=”info.php“   method=”get”>

用户名:<input    type=”text”   name=”username”  value=”"  /><br/>

密    码:<input    type=”password”  name=”password”  value=”"  /><br/>

<input   type=”submit”  value=”提交”/>

<input   type=”reset”  value=”重置”/>

</form>

再创建info.php文件,内容:

 代码如下 复制代码

<?php

$username = $_GET["username"];     //获取用户名

$password = $_GET["password"];     //获取密码

//打印输出

echo “您输入的用户名为:” . $username . “,密码为:”. $password ;

?>

友情提示:以上所有引号和分号均为英文状态下的引号和分号,中文的话会报错滴!!如有中文引号请自行修改 ^^


理解form的get和post

在HTML中,form元素用method属性来指定有两种不同的提交方法,即”get”(默认值)和”post”。
1. get和post的定义

W3C的HTML 4.01 specification说,form元素的method属性用来指定发送form的HTTP方法。

* 使用get时,form的数据集(形如control-name=current-value的键值对)被附加到form元素的action属性所指定的URI后面;
* 使用post时,form的数据集(形如control-name=current-value的键值对)被包装在请求的body中并被发送。

这可以简单地理解为,get仅仅是拼接一个URI,然后直接向服务器请求数据(需要提交给服务器的数据集包含在URI中)。比如:

<form action=”FormGet.aspx” method=”get”> <input name=”ProductID” type=”text” value=”1″ />
<input type=”submit” value=”Get” />
</form>这个form在提交的时候,会产生这样能够一个get请求:FormGet.aspx?ProductID=1。

而post会把form的数据集,即ProductID=1这个键值对包装在请求的body中,发送给服务器,然后向服务器请求数据。对于:

<form action=”FormPost.aspx” method=”post”> <input name=”ProductID” type=”text” value=”1″ />
<input type=”submit” value=”Get” />
</form>这样一个form在提交时,我们将看到一个干净的URI:FormPost.aspx。因为数据不是拼接在URI中。
2. get和post的区别
2.1 安全性

如果用get提交一个验证用户名和密码的form,一般认为是不安全的。因为用户名和密码将出现在URL上,进而出现在浏览器的历史记录中。显然,在对安全性有要求的情况下,应该使用post。
2.2 编码

HTML 4.01 specification指出,get只能向服务器发送ASCII字符,而post则可以发送整个ISO10646中的字符(如果同时指定enctype=”multipart/form-data”的话)。

注意get和post对应的enctype属性有区别。enctype有两个值,默认值为application/x-www-form-urlencoded,而另一个值multipart/form-data只能用于post。
2.3 提交的数据的长度

HTTP specification并没有对URL长度进行限制,但是IE将请求的URL长度限制为2083个字符,从而限制了get提交的数据长度。测试表明如果URL超出这个限制,提交form时IE不会有任何响应。其它浏览器则没有URL的长度限制,因此其它浏览器能通过get提交的数据长度仅受限于服务器的设置。

而对于post,因为提交的数据不在url中,所以通常可以简单地认为数据长度限制仅受限于服务器的设置。
2.4 缓存

由于一个get得到的结果直接对应到一个URI,所以get的结果页面有可能被浏览器缓存。而post一般则不能,参考5。
2.5 引用和SEO

出于和上面相同的原因,我们可以用一个URI引用一个get的结果页面,而post的结果则不能,所以必然不能被seo/seo.html" target="_blank">搜索引擎搜到。
3. 服务端的处理

在服务端的ASP.NET程序中,对于get,我们用Request.QueryString[control-name]来取得对应的=current-value;对于post,我们用Request.Form[control-name]。

我们也可以笼统地使用Request[control-name]。但这样做的效率不如前者。我们可以用下面的程序比较

 代码如下 复制代码

Request.QueryString和Request的效率:
&lt;%@ Page Language=”C#” %&gt;

<script>// <![CDATA[
protected void Page_PreInit(object sender, EventArgs e)
{
if(Request["InputString"] != null)
{
int count = 1000000;
DateTime start;
DateTime end;
string value = “”;
start = DateTime.Now;
for(int i = 0;i < count;i++)
{
value = Request.QueryString["InputString"];
}
end = DateTime.Now;
double requestGet = (end – start).TotalSeconds;
start = DateTime.Now;
for(int i = 0;i < count;i++)
{
value = Request["InputString"];
}
end = DateTime.Now;
double request = (end – start).TotalSeconds;
compare.InnerHtml = requestGet.ToString() + ” / ” + request.ToString() + ” = ” + (requestGet / request).ToString();
get.InnerHtml = value;
}
}
// ]]></script>

Request.QueryString / Request

<form action=”FormGet.aspx” method=”get”>
<div><input name=”InputString” type=”text” /><input type=”submit” value=”Post” />

Get: <span id=”get”> </span>

Request.QueryString / Request: <span id=”compare”> </span></div>
</form>

同样的办法我们可以比较Request.Form和Request。

最后得到的结果(Request.QueryString[control-name] / Request[control-name]和Request.Form[control-name] / Request[control-name])大多数时候是小于1的。因此,我们因该尽量用Request.QueryString或 Request.Form来代替Request。
4. 正确地使用get和post

W3C的官方建议是:当且仅当form是幂等(idempotent)的时候,使用get。幂等是一个数学上的术语,其定义是:对于一个函数f : D -&gt; D,如果D中的所有x满足f (f x) = f x,那么这个函数是幂等的。HTTP specification(比如RFC 2616)中,将幂等解释为:多次相同请求产生的副作用,和一次请求的副作用相同。

打个比方,如果你提交一个form会从Google上查询一个关键词,那么我们可以认为这个form是幂等的,因为1次提交和10次提交的副作用是差不多的(10次查询可能会多消耗一些电能);如果你提交一个form是订购一个终极大黄蜂(Utimate bumblebee),那么这就不是幂等的:要是你不小心多提交了1次form的话,你可能会被老婆乱骂,你不小心又提交了10次的话,你可能就破产了——一次提交和多次提交的副作用明显不同,所以这不是幂等的。

所以,一般来说,如果提交这个请求纯粹只是从服务端获取数据而不进行其他操作,并且多次提交不会有明显的副作用,应该使用get。比如:

* 搜索引擎的查询:http://www.google.com/search?q=yandixin;
* 分页:ArticleList.asp?Page=1。

如果提交这个请求会产生其它操作和影响,就应该使用post。比如:

* 修改服务器上数据库中的数据;
* 发送一封邮件;
* 删除一个文件。

另一个要考虑的因素是安全性。见2.1。
5. 浏览器差异

* IE 6:URL长度限制为2083个字符;post之后,刷新页面不会自动重新post数据,会出现警告;

并且,在后退的过程中有可能出现“Page has Expired”(通常是向自己post,然后后退时):

微软的技术支持人员号称“this is not a bug or problem specified to the ASP.NET but a security feature of the IE Browser”,并且说“You can also inform your users of this”,实在是荒唐。另外,一篇KB也提到这个问题,说将Response.CacheControl设为”Public”即可,经测试仅在第一次后退时有效。
* IE 7:和IE 6相同;
* Firefox 2.0.0.11:刷新页面不会自动重新post数据,会出现警告;
* Opera 9.24:正常(自动post数据);
* Safari 3.0.4:post之后,刷新页面、前进、后退都不会自动重新post数据,会出现警告。

留言板可以说是所有php入门者都会练习的一个小不上的WEB应用程序了,下面我把我写的一个php留言板实例分享给各位同学,有需要了解的同学可进入参考参考。

1.在你的PHP的根目录下创建一个名为”msgboard”的文件夹。

在”msgboard”下创建一个“msglist.php”文件


数据表结构大家可直接导入

 

 代码如下 复制代码
CREATE TABLE `msgboard` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) CHARACTER SET latin1 NOT NULL,
  `sex` tinyint(1) NOT NULL DEFAULT '1',
  `msg` text CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


msglist.php 文件,包括了留言增加,删除,修改

 

 代码如下 复制代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>我的留言板</title>
</head>
<body>
<?php
 $username = isset($_REQUEST['username']) ? $_REQUEST['username'] : '';   //姓名
 $sex = isset($_REQUEST['sex']) ? intval($_REQUEST['sex']) : 1;                   //性别
 $msg = isset($_REQUEST['msg']) ? $_REQUEST['msg'] : '';                  //留言

 
 
 mysql_connect("127.0.0.1","root","lzy");       //链接
 mysql_select_db("test");                       //选择数据库
 
 if(!empty($username) && !empty($msg))
 {
  mysql_query("INSERT INTO msgboard(username,sex,msg) VALUES('$username','$sex','$msg')");
 }
 else
 {
  echo "输入不正确<br/>";
 }
 
 $source = mysql_query("SELECT * FROM msgboard ORDER BY id DESC");
 $result = array();
 
?>
 <table border="1" width="1000">
  <tr align="center">
   <td width="10%">姓名</td>
   <td width="10%">性别</td>
   <td width="80%">留言内容</td>
  </tr> 
  <tr>
  <?php
  while ($row = mysql_fetch_array($source))
  {
   echo '<td>' . $row['username'] . '</td>';
   echo '<td>' . ($row['sex'] == 1 ? '男' : '女') . '</td>';
   echo '<td>' . $row['msg'] . '</td>';
  }
  ?>
  </tr>
 </table><p/>
 
 <form action="msglist.php" method="POST">
 <table width="1000" align="left">
  <tr>
   <td width="100%">
    姓名:<input type="text" name="username" value=""/>
   </td>
  </tr>
  <tr>
   <td width="100%">
    性别:男<input type="radio" name="sex" value="1" checked="checked" /> &nbsp;&nbsp;
          女<input type="radio" name="sex" value="0" />
   </td>
  </tr>
  <tr>
   <td width="100%">
    请留言:<br/><textarea name="msg" rows="5" cols="100"></textarea>
   </td>
  </tr> 
  <tr>
   <td width="100%">
     <input type="submit" value="提 交" />
   </td>
  </tr> 
 </table>
 </form>
</body>
</html>

一个php留言板实例下载:http://file.111cn.net/download/2013/06/08/msgboard.rar

在php中数组与json转换很简单,我们只要使用json_encode() 和 json_decode()。很容易理解,json_encode()就是将PHP数组转换成Json。相反,json_decode()就是将Json转换成PHP数组。

例如:

 代码如下 复制代码

$array = array("name" => "Eric","age" => 23);
 
echo json_encode($array);

程序将打印出 :

 {“name”:”Eric”,”age”:23}

再看下面的例子:

 代码如下 复制代码

$array = array(0 => "Eric", 1 => 23);
 
echo json_encode($array);

程序将打印出 :

["Eric",23]

这样就可以将 json 转换成数组形式了,key 保持原来格式 

 代码如下 复制代码

$json = ’{"name":"zhangsan","age":20,"sex":"nan"}’; 

print_r(json_decode($json,true)); 

这样的json数据解析后 就会成为下面这样的数组 


Array 

    [name] => zhangsan 
    [age] => 20 
    [sex] => nan 
)

[!--infotagslink--]

相关文章

  • mysql_connect与mysql_pconnect的区别详解

    在mysql中我们会看到有两种常用的数据库连接模式,一种是长久连接,另一各是页面访问完之后就断了连接,下面我来分别介绍mysql_connect与mysql_pconnect的区别,有需要了解...2016-11-25
  • JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍

    下面小编就为大家带来一篇JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20
  • Java8处理List的双层循环问题

    这篇文章主要介绍了Java8处理List的双层循环问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-19
  • jquery中常用的SET和GET$(”#msg”).html循环介绍

    复制代码 代码如下: $(”#msg”).html(); //返回id为msg的元素节点的html内容。 $(”#msg”).html(”new content“); //将“new content” 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content $(”...2013-10-13
  • 浅谈Java8 的foreach跳出循环break/return

    这篇文章主要介绍了Java8 的foreach跳出循环break/return,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-28
  • php中的foreach函数的2种用法

    Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
  • C#中out与ref的区别实例解析

    这篇文章主要介绍了C#中out与ref的区别实例解析,对C#初学者有不错的学习借鉴价值,需要的朋友可以参考下...2020-06-25
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • 谈谈Jquery中的children find 的区别有哪些

    精华:find方法能找子孙,children方法只能找儿子一、Jquery中children 语法.children(selector) 说明expr是表达式,可选参数,所有选择器中的表达式都可以用在这,比如按标签名"div",按类名".class",按序号":first"等等,如果表...2015-10-21
  • mybatis-plus  mapper中foreach循环操作代码详解(新增或修改)

    这篇文章主要介绍了mybatis-plus mapper中foreach循环操作代码详解(新增或修改),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-11-17
  • C#的循环语句集锦及案例详解

    这篇文章主要介绍了C#中的基本循环:while循环、for循环和foreach循环,大家都知道循环结构可以简化程序编码,更好地实现理想的效果,并结合案例给大家讲解,需要的朋友可以参考下...2020-06-25
  • python 实现循环定义、赋值多个变量的操作

    这篇文章主要介绍了python 实现循环定义、赋值多个变量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • shell中的for循环用法详解

    这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-11
  • PS中像素大小、文档大小的区别

    在PS中像素大小、文档大小有什么区别呢,这个估计很多初学者不清楚,下面我来给大家讲解一下,希望对你有帮助。 1、像素大小 通常用于显示屏显示的图片大小的调整。菜...2016-09-14
  • 解决vue-router路由拦截造成死循环问题

    这篇文章主要介绍了解决vue-router路由拦截造成死循环问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-05
  • c# 循环语句的使用方法

    这篇文章主要介绍了c# 循环语句的使用方法,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-06-25
  • Nodejs 数组的队列以及forEach的应用详解

    这篇文章主要介绍了Nodejs 数组的队列以及forEach的应用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-25
  • JavaScript循环遍历的24个方法,你都知道吗

    这篇文章主要给大家介绍了关于JavaScript循环遍历的24个方法,文中对每种方法都给出了详细的实例代码,方便大家理解学习,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2021-09-15
  • Java8之Stream流代替For循环操作

    这篇文章主要介绍了Java8之Stream流代替For循环操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-19
  • C#中sleep和wait的区别分析

    这篇文章主要介绍了C#中sleep和wait的区别分析,有助于深入理解C#中线程的原理与使用技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25