首页
网站首页
公司简介
资讯中心
推荐内容
返回顶部
JSON在PHP中的应用,PHP中for循环语句的几种变型
发布时间:2019-12-29 03:37
浏览次数:

for 循环是 PHP 中最复杂的循环结构。它的行为和 C 语言的相似。 for 循环的语法是:

互联网的今天,AJAX已经不是什么陌生的词汇了。说起AJAX,可能会立即想起因RSS而兴起的XML。XML的解析,恐怕已经不是什么难题了,特别是PHP5,大量的XML解析器的涌现,如最轻量级的SimpleXML。不过对于AJAX来说,XML的解析更倾向于前台Javascrīpt的支持度。我想所有解析过XML的人,都会因树和节点而头大。不可否认,XML是很不错的数据存储方式,但是其灵活恰恰造成了其解析的困难。当然,这里所指的困难,是相对于本文的主角--JSON而言。 JSON为何物?我就不重复概念了。通俗的说,它是一种数据的存储格式,就像PHP序列化后的字符串一样。它是一种数据描述。比如我们将一个数组序列化后存放,就可以很容易的反序列化后应用。JSON也是如此,只不过他搭建的是客户端Javascrīpt和服务端PHP的交互桥梁。我们用PHP生成JSON后的字符串,然后把这个字符串传给前台Javascrīpt,Javascirpt就可以很容易的将其反JSON然后应用。说通俗点,它真的很像数组。 言归正传,如何使用JSON。PHP5.2开始内置了JSON的支持。当然,如果低于这个版本的话,那么市面上有很多PHP版本的实现,随便下一个用就OK啦。现在主要是说说PHP内置支持的JSON。很简单,两个函数:json_encode和json_decode。一个编码,一个解码。先看看编码的使用:

函数count()描述:计算一变量中元素的个数int count (mixed var); Returns the number of elements in var , which is typically an array (since anything else will have one element). Returns 0 if the variable is not set. Returns 1 if the variable is not an array.

第三章 范例:the Hangman Game 这一章将会讲一下开发一个基于Web的Hangman Game。这里面会用到一些PRADO的组件。这个游戏说明了显示状态使PRADO页面具有很强的交互性。 这个游戏只包括了一个页面来实现以下的功能:当用户第一次访问的时候,允许用户选择三种不同难度来开始这个游戏,不同的难度对应着不同的可以猜错的次数。游戏开始后,页面的上半部分会显示要猜得单词,没有猜中的字母用下划线显示。页面的下半部分列出了26个字母,用户可以点击对应字母来选择要猜的字母。如果用户放弃游戏或者错误次数超过了难度限制,会显示失败信息;如果猜对了,会显示成功信息。任何时候用户都可以重新开始游戏。 范例中会使用的 PRADO 组件包括: TRadioButton: 显示一个单选框。TPanel: 显示 div 元素。TLabel: 显示文本。TButton: 显示一个提交按钮。TLinkButton: 显示一个提交操作的超链接。TForm: 显示 form 元素。 这些定义好的组件通过属性和事件已经封装好了很多功能。比如,可以设置TPanelVisible 属性来控制整个div元素是不是可见。可以给TButton 组件的OnClick 事件指定一个响应函数,这样当用户点击按钮的时候就会自动调用响应函数。请参考PRADO API文档中关于这些组件更详细的信息。 游戏中的一些数据在游戏过程中需要一值保持着的。因为这里只用了一个页面,所以可以使用显示状态而不需要使用session来保存这些数据。下面这些数据需要保存在显示状态中: Word:要猜得单词。GuessWord: 正在猜的单词。Level:游戏的难度级别。Misses: 猜错的次数。 他们都被定义在页面的属性中。 我们需要创建6个文件。假定这个应用放在Web服务器的根目录下,这些文件是: hangman.php : 应用的主入口; WEB-INF/hangman.spec: 应用的配置文件; WEB-INF/hangman/HomePage.php: 页面类文件; WEB-INF/hangman/HomePage.spec: 页面规格文件; WEB-INF/hangman/HomePage.tpl: 页面模板文件; WEB-INF/data/hangman.txt: 包含要猜得单词的文本文件。

for (expr1; expr2; expr3) statement 第一个表达式在循环开始前无条件求值一次。 expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。 expr3 在每次循环之后被求值。 每个表达式都可以为空。expr2 为空意味着将无限循环下去。这可能不像想象中那样没有用,因为经常会希望用 break 语句来结束循环而不是用 for 的表达式真值判断。 考虑以下的例子,它们都显示数字 1 到 10: ?php/* example 1 */for ($i = 1; $i = 10; $i ) { echo $i;}/* example 2 */for ($i = 1; ; $i ) { if ($i 10) { break; } echo $i;}/* example 3 */$i = 1;for (;;) { if ($i 10) { break; } echo $i; $i ;}/* example 4 */for ($i = 1; $i = 10; echo $i, $i );?

?php$arr = array( ''name'' = ''陈毅鑫'', ''nick'' = ''深空'', ''contact'' = array( ''email'' = ''shenkong at qq dot com'', ''website'' = '''', ));$json_string = json_encode($arr);echo $json_string;? 很简单的将一个数组JSON了。需要指出的是,在非UTF-8编码下,中文字符将不可被encode,结果会出来空值,所以,如果你使用gb2312编写PHP代码,那么就需要将包含中文的内容使用iconv或者mb转为UTF-8再进行json_encode,上面输出结果如下:

函数current()描述:传回数组指针目前所指的元素

当然,第一个例子看上去最正常,但用户可能会发现在 for 循环中用空的表达式在很多场合下会很方便。 PHP 也支持用冒号的 for 循环的替代语法。

{name:u9648u6bc5u946b,nick:u6df1u7a7a,contact:{email:shenkong at qq dot com,website:}} 我都说了和序列化很像,你还不信。编码后就要解码,PHP提供了相应的函数json_decode,json_decode执行后,将会得到一个对象,操作如下:

mixed current (array array);

for (expr1; expr2; expr3): statement; ...endfor; for语句可以说是PHP的循环控制部份最基本的一个语句了,for语句的执行规律和基础用法在这里就不多说。PHP手册中对它的语法定义如下:for (expr1; expr2; expr3)statement 下面说说for语句几种有用的变型。 1、无限循环 首先是人尽皆知的无限循环。由于空表达式null在语法上是有效的,所以我们可以把for语句的三个表达式留空,这样就会产生不断执行for嵌套语句的效果。

?php$arr = array( ''name'' = ''陈毅鑫'', ''nick'' = ''深空'', ''contact'' = array( ''email'' = ''shenkong at qq dot com'', ''website'' = '''', ));$json_string = json_encode($arr);$obj = json_decode($json_string);print_r($obj);? 访问对象内的属性会吧?$obj-name,这样子的,当然,也可以把它转位数组,方便调用啦:

Each array variable has an internal pointer that points to one of its elements. In addition, all of the elements in the array are linked by a bidirectional linked list for traversing purposes. The internal pointer points to the first element that was inserted to the array until you run one of the functions that modify that pointer on that array.

?phpfor (;;) { //放置需要不断执行的语句}? 虽然有一些任务会使用到无限循环,但是大多数程序任务,特别是PHP所能涉及的领域,在使用无限循环时都会添加一些终止循环的条件。

$json_string = json_encode($arr);$obj = json_decode($json_string);$arr = (array) $obj;print_r($arr); PHP转来转去的用途不是特别大,除了缓存生成,感觉还不如直接存数组呢,不过,

The current() function simply returns the array element that's currently being pointed by the internal pointer. It does not move the pointer in any way. If the internal pointer points beyond the end of the elements list, current() returns false.

<

函数each()描述:返回数组中下一对key/value的值

array each (array array);

Returns the current key/value pair from the array array and advances the array cursor. This pair is returned in a four-element array, with the keys 0 , 1 , key , and value . Elements 0 and key each contain the key name of the array element, and 1 and value contain the data.

Example 1. each() examples

友情链接: 网站地图
Copyright © 2015-2019 http://www.nflfreepicks.net. 新葡萄京娱乐场网址有限公司 版权所有