《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环境搭建最新方法
Sep 05 PHP
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
关于Sphinx创建全文检索的索引介绍
Jun 25 PHP
php简单的留言板与回复功能具体实现
Feb 19 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
php 把数字转换成汉字的代码
Jul 21 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
PHP使用imagick扩展实现合并图像的方法
Apr 25 PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 PHP
PHP PDOStatement::fetchColumn讲解
Jan 31 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
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
php创建类并调用的实例方法
2019/09/25 PHP
laravel接管Dingo-api和默认的错误处理方式
2019/10/25 PHP
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
EsLint入门学习教程
2017/02/17 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
Angular2学习教程之ng中变更检测问题详解
2017/05/28 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
[46:27]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第一局
2016/03/02 DOTA
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
用Python输出一个杨辉三角的例子
2014/06/13 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
python3 map函数和filter函数详解
2019/08/26 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
python中常用的数据结构介绍
2021/01/12 Python
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
武汉某公司的C#笔试题面试题
2015/12/25 面试题
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
Python中的socket网络模块介绍
2022/07/23 Python