《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组


Posted in PHP onNovember 01, 2010

数字、浮点、布尔型是值类型,英文:int、float、bool,这样你知道他们怎么用了。

比如语句:$fa=3.14;

字符串和数组是引用类型,也就是说他们作为地址放在栈里,当重新赋值时,栈里的地址改变方向,原来的指向变没或给回收了,英文:string、array。

比如:$str=”字符串”;$arr=array(“a”=>”数”,”b”=>”组”);// array()是一个数组赋值函数,这样的函数PHP有一千多个,一般常用的不到200个,我觉得。

字符串操作:

实例2:字符串合并、相加

<?php 
$str = 1; 
echo $str .= ""; //数字转化为字符串再合并,结果:"1"。 
echo "<br>"; 
echo $str += "1元"; //字符串转化为数字再相加,如"1XXX"转化为数字1,结果: 2。 
echo "<br>"; 
?>

实例3:字符串改变大小写
<?php 
$str="12345ABc"; 
echo strtolower($str);//变小写,结果:"12345abc"。 
echo "<br>"; 
echo strtoupper($str);//变小写,结果:"12345ABC"。 
echo "<br>"; 
?>

实例4:字符串长度、截取子字符串(中英文)
<?php 
$str = "字符串2"; 
echo mb_strlen($str, "UTF-8"); //返回字符串长度的函数,第二个参数是编码,由于页面用UTF-8编码,所以为这样。如果省去,返回内存占用的字节数(ASCII),即10。结果4 
echo "<br>"; 
echo mb_substr($str, 1, 2, "UTF-8"); //返回字符截取,1为从”符”地址开始截取,2为截取2个"UTF-8"编码的字符,结果:“符串”。 
echo "<br>"; 
/** 
* 知识点:现在开始接触函数了,每个函数都有()作为堆栈调用,()里面放0个或多个参数,可以自定义可以有默认值。而关键字比如echo是没有()的。 
* 很多书用GB2312编码,取长度和子串时很麻烦。下面给大家参考一下不用上面的mb中文字符串扩展库实现原理: 
*/ 
function my_mb_strlen($str, $code = "UTF-8") // 定义一个新函数,$str是必须传入的参数。 
{$num= 0; 
if ($code == "UTF-8") 
{ 
$str = iconv("UTF-8", "GB2312", $str); //转化为GB2312编码,ord函数返回对应的ASCII值判断每个字节该中文字符是否结束。 
for($i = 0;$i < strlen($str);$i++) // 在此strlen($str)返回内存占用的字节数相当于mb_strlen($str) 
{ 
if (ord($str[$i]) > 0xa0)$i++; //$str[$i]对应内存的i字节。如果直接用UTF-8判断会复杂些,因为编码的多样性UTF-8是网页常用编码,UTF-16(Unicode)是windows编码。 
$num++; 
} 
} 
else 
{ 
$num = "编码未实现"; 
} //有兴趣的自己查资料吧 
return $num; 
} 
echo my_mb_strlen($str) . ";" . my_mb_strlen($str, "GB2312") . "<br>"; //该页编码用UTF-8,你却说传入的字符串3是GB2312,就算函数实现了也无法正确的。 
?>

实例5:子字符串查找、替换
<?php 
$str = "字符串4"; 
echo mb_strpos($str, '串4', 0, "UTF-8"); //查找从0开始找到的第一个子字符串位置,结果:2。如果查找不到,返回空(="");如果最后两个参数不要,返回6。 
echo "<br>"; 
echo mb_strstr($str, '串', 0, "UTF-8"); //截取从0开始找到的第一个子字符串至结尾,结果:"串4"。如果查找不到,返回空(="");如果最后两个参数不要,返回相同=strstr($str,'串')。 
echo "<br>"; 
echo str_replace("4", "不是4", $str) ; //字符串替换,结果: "字符串不是4"。 
echo "<br>"; 
?>

实例6:子字符串去空、html转义
<?php 
$str=" 字符串5 "; 
echo $str=trim($str);//去除两边空格,结果:"字符串5"。 
echo "<br>"; 
echo "color=\"red\"";//\手工转义里面的'、"、\,使之存储到内存,结果"color="red"" 
echo "<br>"; 
$str="<br>123"; 
echo htmlentities($str) ; //字符串转义<>&'"避免和html标识冲突,使之能在html浏览器端显示出来,结果:"<br>123"。 
echo "<br>"; 
?>
PHP 相关文章推荐
浅析PHP水印技术
Feb 14 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
深入分析php之面向对象
May 15 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
ThinkPHP之N方法实例详解
Jun 20 PHP
php出现内存位置访问无效错误问题解决方法
Aug 16 PHP
php单一接口的实现方法
Jun 20 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
Oct 08 PHP
PHP实现的观察者模式实例
Jun 21 PHP
一篇有意思的技术文章php介绍篇
Oct 26 #PHP
理解php原理的opcodes(操作码)
Oct 26 #PHP
PHP下常用正则表达式整理
Oct 26 #PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 #PHP
微盾PHP脚本加密专家php解密算法
Sep 13 #PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 #PHP
php正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 #PHP
You might like
在Windows版的PHP中使用ADO
2006/10/09 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
jquery 分页控件实现代码
2009/11/30 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
对angularJs中$sce服务安全显示html文本的实例
2018/09/30 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
Python中的startswith和endswith函数使用实例
2014/08/25 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
python数组循环处理方法
2019/08/26 Python
Python Json数据文件操作原理解析
2020/05/09 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
开办化妆品公司创业计划书
2013/12/26 职场文书
如何写好升职自荐信
2014/01/06 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
安全协议书范本
2014/04/21 职场文书
赔偿协议书范本
2014/09/12 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
优秀大学生自荐信
2015/03/26 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android