《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初学者头痛的十四个问题
Jul 12 PHP
Discuz 模板语句分析及知识技巧
Aug 21 PHP
php中获得视频时间总长度的另一种方法
Sep 15 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
Apr 25 PHP
php调用google接口生成二维码示例
Apr 28 PHP
PHP类中的魔术方法(Magic Method)简明总结
Jul 08 PHP
PHP人民币金额转大写实例代码
Oct 02 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
Mar 18 PHP
利用switch语句进行多选一判断的实例代码
Nov 14 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 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
JAVA/JSP学习系列之七
2006/10/09 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
Maps Javascript
2007/01/22 Javascript
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
Javascript的一种模块模式
2010/09/08 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
2016/02/21 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
彻底理解Python中的yield关键字
2019/04/01 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
美国现代家具购物网站:LexMod
2019/01/09 全球购物
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
毕业生自我鉴定范文
2013/11/08 职场文书
医院消毒隔离制度
2015/08/05 职场文书
导游词之重庆钓鱼城
2019/09/19 职场文书
七年级作文之英语老师
2019/10/28 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
python解析json数据
2022/04/29 Python