PHP4用户手册:流程控制-for

 更新时间:2016年11月25日 15:19  点击:1368
DIV class=sect1>
for 循环是PHP中非常复杂的循环。它的行为象C语言中的一样。以下是循环的语法:
 
for (expr1; expr2; expr3) statement
 
第一个表达式(expr1)是循环无条件开始的值。
在每次反复开始,表达式expr2 被计算。如果值为TRUE,则继续循环,执行嵌套的语句。如果值为FALSE,执行循环以后的
在每次反复,表达式expr3 被计算(执行)。
每个表达式都可以为空。expr2 为空则意味着循环将不确定的运行(PHP 隐暗认为它为真,象C语言一样)。
 这不可能想你想的那样结束,你可以使用break语句去代替for事实表达式去结束循环。
考虑以下的例子。它们将显示1至10的数字:
 
/* 例 1 */
for ($i = 1; $i <= 10; $i++) {
      print $i;
}
/* 例 2 */
for ($i = 1;;$i++) {
      if ($i > 10) {
     break;
      }
      print $i;
}
/* 例 3 */
$i = 1;
for (;;) {
      if ($i > 10) {
     break;
      }
      print $i;
      $i++;
}
/* 例 4 */
for ($i = 1; $i <= 10; print $i, $i++);
 
当然,从第一个例子看出是简略的(或是第四个),但是你可以发现有很多的机会你可以使用空表达式。
PHP 仍然支持循环的“冒号语法”。
 
for (expr1; expr2; expr3): statement; ...; endfor;
 
另我的语言有一个 foreach 语句去操作数组或散列。PHP 3 中没有这样的构造;PHP 4 有(参见 foreach)。在PHP 3中,人可以用while、list() 和each() 函数去完成相同的功能。参见这些函数的文档。

TABLE border=0 cellPadding=0 cellSpacing=0 height="100%" width="100%">
 
(PHP 3, PHP 4 >= 4.0.0)
file -- 读取整个文件到数组
描述
 
array file (string filename [, int use_include_path])
 
除了file()返回的是数组,其它的与readfile()一样。数组的每个元素对应文件的每一行,而带有换行符。
注意:在结果数组中的每行包含着行结尾,如果你不想要行结尾你可使用trim() 函数去掉它。
如果你想在包含路径中搜索文件,你可以使用可选的第二个参数并把它设置为"1"。
 
 
<?php
// 获得一个网页的数组并打印它
$fcontents = file ('http://www.php.net/');
while (list ($line_num, $line) = each ($fcontents)) {
      echo "<b>Line $line_num:</b>; ", htmlspecialchars ($line), "<br> ";
}
// 获得一个网页到字符串中
$fcontents = join (', file ('http://www.php.net/'));
?>
 
 
警告
这个函数不能用于二进制!
 
提示:如果"fopen wrappers"配置已经打开,你可以在这个函数中使用 URL 作为文件名。
参见readfile(), fopen(), fsockopen(), 和 popen().
 

DIV class=chapter>
目录列表
基础
固定变量
变量作用域
变量的变量
PHP外的变量
变量的描述:在PHP中是一个美元符后跟随变量的名字。变量名是大小写敏感的。
变量名的命名与PHP中其他标签的一致。一个有效变量名是以一个字线或下划线开始的,随后是一些字线,数字或下划线。当作正则表达式看待,它将是这样的:'[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*'
注意:一个字母是 a-z, A-Z, 和ASCII 字符127 through 255 (0x7f-0xff).
 
 
$var = "Bob";
$Var = "Joe";
echo "$var, $Var";      // 输出 "Bob, Joe"
$4site = 'not yet';     // 错误; 开始不能是数字
$_4site = 'not yet';      // 有效; 开始可以是下划线
$täyte = 'mansikka';      // 有效:'ä' 是ASCII 228.
 
在PHP 3中,变量通过是被赋值的。换句话说,当你分配一个表达式给一个变量时,原始表达式的值被复制到目的变量。
这意味着,分配一个变量的值到另外的变量,只改变那些变量的值不会影响其他的变量。更多的信息参见Expressions.
PHP 4提供另外的途径为变量分配值:引用分配。这意味着新的变量是简单的引用原始变量(这个新变量只是一个“化名”或“指向”)改变新变量会影响原始变量,反之亦然。这也意味着没有复制被执行:因此,分配速度更快。尽管如此,这样的加速只体现在复杂的循环或分配大的数组和对象时。
分配一个引用,只需被分配(源变量)的那个变量前加“&”号。如,下面的代码片段输出'My name is Bob'两次:
 
<?php
$foo = 'Bob';         // 分配值'Bob' 到 $foo
$bar = &$foo;         // 通过$bar引用$foo.
$bar = "My name is $bar";  // 改变 $bar...
echo $foo;            // $foo 也被改变.
echo $bar;
?>
 
一个重要的提示:只有一个被指定的变量可以被引用分配。
 
<?php
$foo = 25;
$bar = &$foo;      // 这是有效的分配.
$bar = &(24 * 7);  // 错误:引用了没有命名的表达式.
function test()
{
     return 25;
}
$bar = &test();      // 错误.
?>

TABLE border=0 cellPadding=0 cellSpacing=0 height="100%" width="100%">
 
(PHP 3, PHP 4 >= 4.0.0)
count -- 计算变量中元素的个数
描述
 
int count (mixed var)
 
返回一个变量var元素的个数 , 最有代表性的是数组 (其他类型只有一个元素)。
如果这个变量var 不是一个数组,将返回1 (除外:count(NULL) 相当于 0).
 
警告
count() 可能为一个没有设置的变理返回0,但是它也可以为已初始化的空数组返回0。如果要检查一个变量是否设置请使用isset() 函数。
 
关于数组的实现和在PHP在数组的使用请参见手册中数组一节。
例1. count()例
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count ($a);
// $result == 3
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count ($b);
// $result == 3;
 
注意: sizeof() 函数是count()一个别名
参见:sizeof(), isset(), 和 is_array()。
 

DIV class=reference>
XI. CURL, 客户 URL 库函数
PHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。, libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证。
为了使用CURL函数你需要安装CURL包。PHP 需要你使用CURL 7.0.2-beta或更高版。如果CURL的版本低于7.0.2-beta,PHP将不工作。
要使用PHP的CURL支持,你必须用带有--with-curl[=DIR]参数重新编译PHP(DIR是包含库和头文件的目录)。
这些函数是在PHP 4.0.2中新增得。
一旦你编译了带有CURL支持的PHP,你可以使用curl函数。基本思路是:你使用curl_init()函数初始化CURL会话,而后你可以设置你的所有选项,通过curl_exec()函数执行,最后你可以作用curl_close()函数来结束你的会话。以下是一个例子:是把PHP的主页取回放到一个文件中。
例 1. 使用PHP的CURL模块取回PHP主页
<?php
$ch = curl_init ("http://www.php.net/");
$fp = fopen ("php_homepage.txt", "w");
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
?>
 
目录列表
curl_init — 初始化一个CURL会话
curl_setopt — 为CURL调用设置一个选项
curl_exec — 执行一个CURL会话
curl_close — 关闭一个CURL会话
curl_version — 返回当前CURL版本

[!--infotagslink--]

相关文章

  • python-for x in range的用法(注意要点、细节)

    这篇文章主要介绍了python-for x in range的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-10
  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • forum.php怎么打开?

    本文介绍了forum.php的打开方法,不会的同学可以参考一下。 虚拟空间,网页管理端, 会有一个默认访问页面(找一下,是这个意思,可能会有所不同),内容一般是 index.html index...2017-07-06
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • 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
  • php有效防止同一用户多次登录

    【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
  • Vue.js中轻松解决v-for执行出错的三个方案

    v-for标签可以用来遍历数组,将数组的每一个值绑定到相应的视图元素中去,下面这篇文章主要给大家介绍了关于在Vue.js中轻松解决v-for执行出错的三个方案,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。...2017-06-15
  • Javascript for in的缺陷总结

    这篇文章主要介绍了Javascript for in的缺陷总结的相关资料,需要的朋友可以参考下...2017-02-08
  • js检测用户输入密码强度

    一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • php ajax注册验证用户名是否存在代码

    这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • Navicat for MySQL 11注册码\激活码汇总

    Navicat for MySQL注册码用来激活 Navicat for MySQL 软件,只要拥有 Navicat 注册码就能激活相应的 Navicat 产品。这篇文章主要介绍了Navicat for MySQL 11注册码\激活码汇总,需要的朋友可以参考下...2020-11-23
  • shell中的for循环用法详解

    这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-11
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31