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版本
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版本
相关文章
python-for x in range的用法(注意要点、细节)
这篇文章主要介绍了python-for x in range的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-10- php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
- 这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
- PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
- 本文介绍了forum.php的打开方法,不会的同学可以参考一下。 虚拟空间,网页管理端, 会有一个默认访问页面(找一下,是这个意思,可能会有所不同),内容一般是 index.html index...2017-07-06
- 当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <?php $lan = substr( $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- 【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
- v-for标签可以用来遍历数组,将数组的每一个值绑定到相应的视图元素中去,下面这篇文章主要给大家介绍了关于在Vue.js中轻松解决v-for执行出错的三个方案,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。...2017-06-15
- 这篇文章主要介绍了Javascript for in的缺陷总结的相关资料,需要的朋友可以参考下...2017-02-08
- 一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
- 这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
- 这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
- 这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
- Navicat for MySQL注册码用来激活 Navicat for MySQL 软件,只要拥有 Navicat 注册码就能激活相应的 Navicat 产品。这篇文章主要介绍了Navicat for MySQL 11注册码\激活码汇总,需要的朋友可以参考下...2020-11-23
- 这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-11
- 这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31