php怎么判断变量是为1,foreach循环获取第一个和最后一个元素?
引言
对于数组遍历,使用一个 foreach 几乎就完全够用了。那么你一般在编写代码的时候,怎么判断是循环的第一个元素,和最后一个元素呢?
本文通过几个示例,展示实现此功能的多种方法。
学习时间首先,我们使用最直接,最容易想到的办法,使用一个计数器 $i 用于标记当前的索引位置。如果是第一个,则 $i == 0;如果是最后一个,则 $i 等于数组长度减一。代码如下:
$i = 0; $len = count($array); foreach ($array as $item) { if ($i == 0) { // first } else if ($i == $len 1) { // last } $i++; }
上述代码实现简单直接,但是写的优点太长了,而且也不美观。有没有更优雅一些的方式呢?
我们试着从PHP数组操作函数上着手,内置函数中提供了 reset,用于将指针指向数组的第一个元素;end 函数,将指针指向数组的最后一个元素。下面的代码,就是这样实现的:
foreach($array as $key => $element) { reset($array); if ($key === key($array)) echo 'FIRST ELEMENT!'; end($array); if ($key === key($array)) echo 'LAST ELEMENT!'; }
函数 key() 用于获取当前数组指针所指向的索引值。
而 foreach 循环内将元素匹配到 $key => $element 两个变量,$key 存储循环所指向的索引位置。
PHP 的数组操作函数为我们提供了思路,那么当然还可以用 prev 函数,返回前一个元素的值;使用 next 函数,获取下一个元素的值。
这两个函数都是在获取不到元素时返回 false。那么代码就可以这样来写了:
foreach( $items as $item ) { if( !prev( $items ) ) { echo 'First Item'; } if( !next( $items ) ) { echo 'Last Item'; } }
写在最后本文通过三种方式实现了定位 foreach 循环体内,第一个元素和最后一个元素的方法。希望大家熟练使用。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
PHP中对变量使用单引号和双引号的区别?
在PHP中,单引号和双引号大多数情况下没有区别,但是在一些特殊用法上双引号会多一些功能.
双引号可以直接解析变量而单引号不会
例如:
$a='123';
$b='$a';
$c="$a";
echo $b; //输出$a
echo $c; //输出123
特别注意以下例子
echo '$a的值是'.$a; //输出:$a的值是123 (真正想要的结果)
echo "$a的值是".$a; //输出:123的值是123
上面这种要输出的字符串有和变量重名的,就必须用单引号避免解析.
在混合编写代码时,单双引号可以互补避免出错.
例如:
$html1='<div style="color:red">你好世界</div>';
$html2='<div onclick=alert("你好世界");>点击</div>';
PHP是什么?
PHP是编程语言之一,主要用于web开发。
以下是百科内容介绍:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。它可嵌入到 HTML中,尤其适合 web 开发。只要企业还在,PHP就是主角
目前全球5000万互联网网站中有60%以上使用PHP技术
AlexaTOP500中国网站排名有394家使用了PHP技术,占整理比例的78.8%
国内80%以上的动态网站使用PHP进行开发
在国内PHP人才供求比为1:14,会H5的PHP高端人才尤其稀缺
作为老牌web后端语言,PHP全球市场占有率为83.2
PHP如何学习?
这是我给出的学习线路图,你可以按照学习线路图来学习,如果看不清楚,可以后台回复我,我告诉你那里可以看。
另外每个阶段对应了不同的薪资水平及能力!
基础阶段:
可掌握的核心能力:
熟练掌握html5/css3页面布局排版、样式美化。
可解决的现实问题:
能够根据UI的设计实现HTML的静态布局。
市场价值:
熟练掌握之后,可以满足市场静态页面布局,但是市场就业工资相对较低。
第二阶段:
可掌握的核心能力:1、可以清晰划分项目开发模块;2、根据开发任务编写详细设计文档;3、根据文档对功能模块进行编码;4、根据测试信息修复模块功能缺陷;5、能对现有产品进行升级和维护。
可解决的现实问题:能解决常规业务逻辑,PHP操作mysql增删改查,动态网站数据展示,能够手写mvc框架,能够使用ThinkPHP5.0框架实现商城系统开发。
可拥有的市场价值:
可满足企业动态网站开发的需求,根据市场反馈数据看,薪资普遍在 7000元/月以上。
第三阶段:
可掌握的核心能力:(1) 具备解决复杂问题和技术难点的能力;(2)丰富的调试技能和组件开发能力;(3)能够独立设计开发复杂的功能模块。
可解决的现实问题:(1)能够实现功能的同时,考虑代码的优雅性,注重代码的性能和重用性;(2)针对项目中的bug和技术难点,能够提供解决办法;(3)深入理解前端框架实现原理,能够开发和重构通用的前端组件。
可拥有的市场价值:
熟练掌握和学习后,可满足前端与移动开发行业的中级需求,根据市场反馈数据看,薪资普遍在 10000元/月。
第四阶段:
可掌握的核心能力:
(1)从全栈的全局角度认识相关的框架;(2)深刻理解移动端的开发模式和技术选型;(3)了解主流的后台技术和前后端协作方式,从全局角度理解项目的整个生命周期。
可解决的现实问题:
(1)能够熟练使用EasyWechat/微擎等框架实现微信公众平台开发;(2)熟悉微信小程序的开发模式,能够基于PHP或NodeJS等技术实现小程序项目开发;(3)熟悉软件开发中整个项目的生命周期,了解主流的后台开发技术以及相应的前后端协作方式。
可拥有的市场价值:
熟练掌握和学习后,可满足移动端开发的高级需求,薪资普遍在14000元/月。
第五阶段:
可掌握的核心能力:(1)能够对系统架构进行分析和设计;(2)控制开发产品质量,参与制定开发规范;(3)能对现有项目进行性能调优;(4)参与网站项目需求分析,根据项目需求设计提供优化技术方案;(5)改进公司现有框架,提高产品质量。
可解决的现实问题:服务器高级部署优化,互联网常用技术。MySQL优化、读写分离、Nginx服务器集群、Laravel框架、在线视频直播项目开发。
可拥有的市场价值:
真正掌握互联网系统架构设计思想,可实现对门户网站、商城系统、办公系统等项目进行系统性能调优,根据市场反馈数据看,薪资普遍在 20000元/月以上
拓展阶段:
可掌握的核心能力:行业前沿技术
可解决的现实问题:React框架;微服务Docker;Swoole框架;爬虫技术;
可拥有的市场价值:
掌握行业市场未来流行趋势,实现对大型系统的架构与设计,根据市场反馈数据看,薪资普遍在 25000元/月以上。
php变量赋值加单引号还是双引号?
在赋予一个string值的时候,可以用单引号或者双引号。
1.单引号和双引号的区别:
单引号:不会翻译变量。
双引号:会翻译变量,会将变量替换为之前赋予变量的值。
php中如何判断数组是否为空?
这里介绍一下判断PHP数组为空的5种方法,有需要的朋友可以借鉴参考一下。
1. isset功能:判断变量是否被初始化
说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过
注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右
2. empty功能:检测变量是否为”空”
说明:任何一个未初始化的变量、值为 0 或 false 或 空字符串”” 或 null的变量、空数组、没有任何属性的对象,都将判断为empty==true
注意1:未初始化的变量也能被empty检测为”空”
注意2:empty只能检测变量,而不能检测语句
3. var == null功能:判断变量是否为”空”
说明:值为 0 或 false 或 空字符串”” 或 null的变量、空数组、都将判断为 null
注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。
4. is_null功能:检测变量是否为”null”
说明:当变量被赋值为”null”时,检测结果为true
注意1:null不区分大小写:$a = null; $a = NULL 没有任何区别
注意2:仅在变量的值为”null”时,检测结果才为true,0、空字符串、false、空数组都检测为false
注意3:变量未初始化时,程序将会报错
5. var === null功能:检测变量是否为”null”,同时变量的类型也必须是”null”
说明:当变量被赋值为”null”时,同时变量的类型也是”null”时,检测结果为true
注意1:在判断为”null”上,全等于和is_null的作用相同
注意2:变量未初始化时,程序将会报错
PHP中,”NULL” 和 “空” 是2个概念。
isset 主要用来判断变量是否被初始化过
empty 可以将值为 “假”、”空”、”0″、”NULL”、”未初始化” 的变量都判断为TRUE
is_null 仅把值为 “NULL” 的变量判断为TRUE
var == null 把值为 “假”、”空”、”0″、”NULL” 的变量都判断为TRUE
var === null 仅把值为 “NULL” 的变量判断为TRUE
注意:在判断一个变量是否真正为”NULL”时,大多使用 is_null,从而避免”false”、”0″等值的干扰。