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

数字、浮点、布尔型是值类型,英文: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浏览器端显示出来,结果:"&ltbr&gt123"。
echo "<br>";
?>

(0)

相关推荐

  • 浅谈PHP中其他类型转化为Bool类型

    问题起由:PHP中if(true==2)会返回true还是false? 结果是返回true,顺着这个问题,我把php其他数据类型也测试一下. 结论: 转化为bool类型时,会变成false的几种数据: 1.整型0 2.空字符串 3.空数组 4.NULL 欢迎补充... 测试代码: <?php function p($title,$mybool){ echo "<pre>".$title; echo var_dump($mybool)."</pre>

  • php中的boolean(布尔)类型详解

    当转换为 boolean 时,以下值被认为是 FALSE: the 布尔值 FALSE 自身 the 整型值 0 (零) the 浮点型值 0.0 (零) 空 字符串, 以及 字符串 "0" 不包括任何元素的数组 不包括任何成员变量的对象(仅PHP 4.0 适用) 特殊类型 NULL (包括尚未设定的变量) 从没有任何标记(tags)的XML文档生成的SimpleXML 对象 所有其它值都被认为是 TRUE(包括任何资源). Warning -1 和其它非零值(不论正负)一样,被认为是

  • php curl常见错误:SSL错误、bool(false)

    症状:php curl调用https出错 排查方法:在命令行中使用curl调用试试. 原因:服务器所在机房无法验证SSL证书. 解决办法:跳过SSL证书检查. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 症状:php curl调用curl_exec返回bool(false),命令行curl调用正常. 排查方法: var_dump(curl_error($ch)); 返回: string(23) "Empty reply from server

  • PHP数据类型之布尔型的介绍

    布尔类型是PHP中 最简单的类型.它的值可以为 TRUE 或 FALSE. 如: $foo=false;$foo1=true;echo "为假时输出值为:".$foo; //没有输出值echo "<br />为真时输出值为:".$foo1; //输出1 这里主要的细节: 当转换为 boolean 时,以下值被认为是 FALSE :1.the 布尔值 FALSE 自身 2.the 整型值 0 (零) 3.the 浮点型值 0.0 (零) 空 字符串, 以及

  • PHP编程最快明白(第一讲 软件环境和准备工作)

    下载安装好就可以用,这样的集成开发环境很多,如果你已经按照其他书安装了PHP+Mysql开发环境,调试过就不用改了.我是租的空间,本地调试就没关系啦,效果一样的. 我用的代码编写软件是dreamweaver.说实话,我只使用其代码高亮和CSS功能,全部代码都是手工编写的.你用记事本或者Zend Studio等都可以(但一旦遇到问题别怪我,因为你也可以在LUNIX里面看我的教程和编写程序,甚至坐在太空船上学习,前提是不要违背我写这本书的目的.) ftp上传工具可以用:FlashFXP等随便一个啦.

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

    数字.浮点.布尔型是值类型,英文:int.float.bool,这样你知道他们怎么用了. 比如语句:$fa=3.14; 字符串和数组是引用类型,也就是说他们作为地址放在栈里,当重新赋值时,栈里的地址改变方向,原来的指向变没或给回收了,英文:string.array. 比如:$str="字符串";$arr=array("a"=>"数","b"=>"组");// array()是一个数组赋值函数,这

  • 《PHP编程最快明白》第八讲:php启发和小结

    同时,有很多函数是可以有多种方法实现的,这需要灵活运用.只有记住了这些函数,才能开发出动态的网站:也只有多练习,整个网站开发一次,才能熟练的进行下次的开发,才发现自己的不足并改进. 很多方法都可以改进,比如这个计数器: 实例24 计数器 复制代码 代码如下: <?php //计数器 function countx($file="count.dat"){ if(file_exists($file)){ $fp=fopen($file,"r"); $numx=fg

  • 《PHP编程最快明白》第六讲:Mysql数据库操作

    答案就是做成一个类--数据库类就产生了.通过对函数的二次封装,实现了非常好的重用.要用的时候再include进去. 在讲PHP数据库之前,先介绍一下Mysql要点:大家可以用phpmyadmin学习数据库操作. 在phpmyadmin里看到编码这一项全部选中文utf-8就对了. Mysql数据库类型主要是: char(固定空间字符串,多大就是多少个中文字符).varchar(可变空间字符串,多大就是初始化多少个中文字符).int(整数多大就是多少位).float(浮点数).timestamp(日

  • 《PHP编程最快明白》第三讲:php数组

    实例7:数组值基本操作 复制代码 代码如下: <?php $arr=array('a'=>"你",'b'=>"我","他"); $arr[]="其他"; echo $arr['b']."<br>"; $arr['c']="";//给个空值,但仍然占着位置的 echo count($arr)."<br>";//数组有多少个值.

  • 《PHP编程最快明白》第四讲:日期、表单接收、session、cookie

    实例11:日期戳.日期显示 复制代码 代码如下: <?php echo time();//返回一串以秒计算的时间数字戳 echo "<br>"; echo date("Y-m-d H:i:s",time()+8*3600);//格式化时间,+8*3600变为中国时区时间 echo "<br>"; $str="2010-08-24 10:26:10"; echo date("Y-m-d H

  • 《PHP编程最快明白》第七讲:php图片验证码与缩略图

    实例22 图片验证的核心代码 复制代码 代码如下: <?php //header("content-type:image/png"); $num ='1234'; $imagewidth=60; $imageheight=18; $numimage = imagecreate($imagewidth,$imageheight); imagecolorallocate($numimage,240,240,240); for($i=0;$i<strlen($num);$i++)

  • 《PHP编程最快明白》第五讲:php目录、文件操作

    实例15 目录创建.删除 复制代码 代码如下: <?php $dirfile="文件夹"; $dirfile=iconv("UTF-8","GB2312",$dirfile);//转码,否则会看到windows里面是乱码,但程序能正常操作,读取目录时反过来才看到目录的真正名字. if(!file_exists($dirfile))//用于判断目录或文件是否存在 mkdir($dirfile);//创建目录 rmdir($dirfile);/

  • C语言编程函数指针入门精讲教程

    目录 一.指针引子 二.使用步骤 1.取函数地址 2.创建函数指针 3.通过函数指针调用函数的两种方法 三.函数指针进阶 总结 一.指针引子 示例:我们常常接触的指针大多有如下几类: 整形指针-存放整形地址,指向整形 字符指针-存放字符地址,指向字符 数组指针-存放数组地址(注意不是数组首元素地址),指向数组 由以上三个例子,我们能总结指针的共同点:存放某个类型变量的地址,指向那个类型的变量,但是在讲函数指针首先有一个问题:函数也有地址吗?我们用一段简单的代码来验证一下即可. #include<

  • C++ LeetCode1796字符串中第二大数字

    目录 LeetCode 1796.字符串中第二大的数字 方法一:遍历 题目分析 解题思路 复杂度分析 AC代码 C++ LeetCode 1796.字符串中第二大的数字 力扣题目链接:leetcode.cn/problems/se… 给你一个混合字符串 s ,请你返回 s 中 第二大 的数字,如果不存在第二大的数字,请你返回 -1 . 混合字符串 由小写英文字母和数字组成. 示例 1: 输入:s = "dfa12321afd"输出:2解释:出现在 s 中的数字包括 [1, 2, 3]

随机推荐