这些天学习了PHP的核心编程语法,PHP核心语法概括起来不多,大致分为php标签,语法规范、数据类型、变量、常量、当然还有预定义的,还有操作符、循坏等等,最后几天学习了函数,其中数组的常用函数非常多。例如array_merge、rand、asort、arsort这些,在日后项目中会用的比较多。

数组的函数里,foreach()与while-list-each()两个遍历数组的函数最为强大,不仅能解决访问数组的问题,而且它的返回值各有特点,可以灵活运用在往后数据库数据的处理中。

平时的应用PHP语言的实操中,我认为比较难一点的就是递归,它比迭代在理解上要难一点,迭代的原理跟常用的for循坏差不多,但是递归却不一样,递归难就难在递归的出口如何定义,什么时候定义,定义的条件应该是怎样,好比“斐波那契数列”那一道经典的题目:

/**

* 斐波那契数列

* @param int $n 数列的项数

* @return int $s 数列的最后一项的值

*/

function f($n) {

// 递归出口

if($n == 1 || $n == 2) {

return 1;

}

// 递归点

$s = f($n - 1) + f($n - 2);

return $s;

}

// 调用函数并输出

echo f($_GET[‘n‘]);

刚刚接触递归时遇到这个算术题,在递归出口那里有点混了,主要是反应不过来递归点的f($n-1)与f($n-2)这两个函数调用里的值怎么求出来,即使知道它是一层一层往下算直到n=1和2时候会返回一个值,然后电脑进行往回的计算,但是一开始我却陷入了自己的不好的理解,就是递归点的两个函数重新回去后是经过怎样的计算。但是后来的话,我在午饭的时候想了好几次,搞明白了是当n赋值给形参时,不满足出口条件,就往下变为n-1与n-2两个数相加,但是这两个数是未知的,只有n=1和n=2时的值才是确定的1,所以只能继续调用函数,将n-1重新传值给函数形参,那么n-1,就会变为n-2与n-3这两个值的相加,然后继续下去,总算是解决了这个函数递归点的真正意义,当然递归出口还是一个很重要的逻辑问题,虽然不知道工作中会不会用得多,但是我还是会继续探讨函数的递归调用,因为这个点让我产生了很多疑问与求知欲,递归还能处理怎样各式各样的问题呢?

原文:http://www.cnblogs.com/xieyaojin/p/6091670.html

php核心语法,PHP核心语法总结相关推荐

  1. TWiki 语法格式(TWiki语法教程及TWiki使用技巧)

    TWiki 语法格式(TWiki语法教程及TWiki使用技巧) Winter 翻译 用TWiki 编辑就和平时直接写文本一样简单 -- 就像写email.如果你喜欢,你可以使用HTML代码,但是并不要 ...

  2. php语法介绍,PHP语法介绍

    php7新特性是什么 php7新特性是什么?在PHP7中由于修改了底层引擎大部分代码,以及通过各种方式提高PHP的性能,所以在PHP7中也增加了一些新的语法,这些语法的使用也能对提高性能有帮助.下面给 ...

  3. python导入模块的语法结构_python学习第五讲,python基础语法之函数语法,与Import导入模块....

    python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 函数,就是一个代码块,这个代码块是别人写好的.我们调用就可以. 函数也可以称为方法. 1.函数语法定义 ...

  4. 英语语法篇 - 英语语法综述

    文章目录 简单句 英语的5种基本句型: 八大句子成分 复杂句和复合句 复杂句 从句(4 + 2) 同一类句子成分里可能有不同的词类. 十大词性(词类) 谓语动词 非谓语动词 总结 简单句 没法再拆成更 ...

  5. Tornado-02-Tornado、路由进阶、视图进阶(视图中内置的钩子方法、视图方法调用顺序、冲刷缓存、用户认证)、模板语法(基本语法、内置标签或函数)

    Tornado 一.路由进阶 路由语法和参数 在路由列表的路由成员中,我们一共可以设置4个参数 url(r"/uri路径", 视图类, {"参数名":" ...

  6. 2020版北大核心期刊目录_榜单|2020武大版核心期刊RCCSE高职高专成高院校学报类自然科学综合、社会科学综合学科权威、核心及准核心期刊目录...

    编者按 <中国学术期刊评价研究报告>(以下简称<RCCSE>)是邱均平教授团队创立的四大科教评价报告之一,于2009年3月正式推出第1版,后于2011年后连续推出了<RC ...

  7. 爬虫之xpath语法-节点修饰语法

    爬虫之xpath语法-节点修饰语法 可以根据标签的属性值.下标等来获取特定的节点 1.1 节点修饰语法    [用[ ]方括号修饰标签或节点] 1.2 关于xpath的下标 在xpath中,第一个元素 ...

  8. 几个有趣的名词--语法糖、语法盐等

    今天看<Java NIO>,里边出现"语法糖"这一名词,觉得挺有趣就问google,结果出来连带了其他几个类似名词,这里仅作整理. 语法糖 语法糖(Syntactic ...

  9. 【计算理论】上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 | 语法分析树 )

    文章目录 I . 语法组成 II . 规则 III . 语法 IV . 语法示例 V . 语法简写形式 VI . 语法分析树 VII . 代数表达式 语法 I . 语法组成 上下文无关语法 组成 : ...

  10. 如何让 zend studio 10 识别 Phalcon语法并且进行语法提示

    让 zend studio 10 识别 Phalcon语法并且进行语法提示 https://github.com/rogerthomas84/PhalconPHPDoc 下载解压后,把里面 phalc ...

最新文章

  1. P1209 [USACO1.3]修理牛棚 Barn Repair(贪心+逆向思维)难度⭐⭐⭐
  2. 美国诚实签经验——着装,戒指,手表装土豪,医生预约单,流水、房产和工作证明...
  3. python基础第六天
  4. STM32外设之GPIO的推挽输出和开漏输出模式详解
  5. 【网络安全】针对 HTTP/2 协议的HTTP Desync攻击
  6. Jboss4集群配置之四:启动Jboss集群
  7. python验证卡普耶卡(D.R.Kaprekar)6174猜想
  8. boost::math::tools::ulps_plot用法的测试程序
  9. maven 配置篇 之pom.xml
  10. SAP Customer Data Cloud(Gigya)登录的重定向问题
  11. oracle tabs作用,Oracle 中 table 函数的应用浅析
  12. java并发编程实战阅读总结(b)
  13. 《Spark GraphX in Action》书评及作者访谈
  14. 安装提示没有安装包docker(转载)
  15. linux之I2C驱动分析
  16. matlab的setdiff函数,matlab setdiff函数
  17. 同时使用SVN和Git进行版本控制
  18. 网站实现支付宝第三方登陆详解
  19. 怎么添加校园邮箱到Outlook?
  20. 编写类A2, 定义方法find, 实现查找某字符串数组中的元素查找,并返回索引,如果找不到,返回-1

热门文章

  1. Hadoop之YARN介绍
  2. Retrofit的网络框架介绍
  3. python安卓自动化实现方法_带你用 Python 实现自动化群控(入门篇)
  4. mysql 分区 导出_mysql普通表变成分区表导入导出
  5. linux服务占用的真实内存,为什么TOP看不出真实的内存占用情况?
  6. android prebuild第三方so库,Android NDK编译本地文件以及引用第三方so文件
  7. Shell else if mysql_linux shell中 if else以及大于、小于、等于逻辑表达式介绍
  8. Ubuntu Touch OTA-12 发布,Ubuntu 移动版本
  9. Visual Studio 2017中的第一个Python项目
  10. WASM 成为 HTML、CSS 与 JS 之后的第 4 门 Web 语言