当前位置: 首页 > news >正文

php字符串类型讲解

PHP 支持八种原始类型(type)。

四种标量类型:

  1. string(字符串)
  2. integer(整型)
  3. float(浮点型,也作 double )
  4. boolean(布尔型)

两种复合类型:

  1. array(数组)
  2. object(对象)

两种特殊类型:

  1. resource(资源)
  2. NULL(空)

 

字符串类型 

一个字符串是一串字符的序列,就像 "Hello world!"。

定义字符串有 3 种方法:

  1. 单引号(')
  2. 双引号(")
  3. 定界符(<<<)

1.单引号定义

将字符串用单引号(')括起来是定义字符串最简单的方法:

<?php
$var_char = '码农教程';
?>

如果字符串中有单引号,那么需要使用反斜线(\)进行转义:

<?php
$var_char = '字符串中包含\'需要转义';
echo $var_char;		//输出:字符串中包含'需要转义
?>

提示:如果在单引号之前或字符串结尾需要出现一个反斜线,需要用两个反斜线表示。换言之反斜线在此只转义 ' 字符而不会转义其他字符。

如果只是定义一个简单的字符串而不需要解析更多的内容,显然用单引号效率更高。

2.双引号定义

如果用双引号(")定义字符串,PHP 懂得更多特殊字符的转义序列:

转义序列说明
\n换行
\r回车
\t水平制表符
\[/td>反斜线
\$美元符号
\"双引号
\[0-7]{1,3}此正则表达式序列匹配一个用八进制符号表示的字符
\x[0-9A-Fa-f]{1,2}此正则表达式序列匹配一个用十六进制符号表示的字符

例子:

<?php
$var_char = "这里有个换行\n这是第二行文字";
?>

注意该例子中的换行是指文本意义上换行,如果需要在浏览器里显示换行,需要用 nl2br() 函数将 \n 替换成 <br />。

双引号字符串最重要的一点是其中的变量名会被变量值解析替代:

<?php
$var_char = "这是一些文字";
echo "请打印这些文字:$var_char";	//输出:请打印这些文字:这是一些文字
?>

3.定界符定义

定界符定义字符串是使用定界符语法(<<<),并在定界符之后提供一个标识符,然后是被定义的字符串,最后是同样的标识符结束字符串定义。

例子:

<?php
$str = <<<EOD
我是用定界符定义字符串的例子
这是其他更多字符
……
EOD;
?>

该例子中,EOD 就是标识符。结束标识符必须从行的第一列开始。同样,标识符也必须遵循 PHP 中其它任何标签的命名规则:只能包含字母数字下划线,而且必须以下划线或非数字字符开始。

注意:结束标识符所在的行不能有任何其他字符(可能除了一个分号 ; 之外),包括行缩进等。

提示:字符串不仅仅指上面例子所示的若干文字字符,也可以把数字定义为字符串,甚至巨大的长文本,这是和数据库中的 char 定义不一样的地方。

 

原文地址:http://www.manongjc.com/php/php_string.html

相关阅读:

php 使用str_word_count() 函数计算字符串中的单词个数

php str_split() 将字符串分割成N部分并保存到数组中

php str_shuffle 打乱字符串,将字符串的字符随机排列

php str_rot13() 函数获取字符串的ROT13 编码

php str_repeat()将字符串重复N次

转载于:https://www.cnblogs.com/myhomepages/p/5528543.html

相关文章:

  • IOS照片颠倒分析及移动/页面端的处理策略和思路
  • 熊猫热土-环汶川50公里越野赛赛记
  • HDFS学习之FileSystem
  • DDD实践问题之 - 关于论坛的帖子回复统计信息的更新的思考
  • HDU1230 火星A+B【进制】
  • tomcat下server.xml配置详解
  • BZOJ 2599 Race(树分治)
  • BI报表帮你轻松自如完成数据分析、业务数据探查
  • 第二次冲刺第二天
  • LintCode_389 判断数独是否合法
  • Android开发常见错误及技巧
  • 使用Markdown写文档
  • 普通pc安装懒人版的mac 10.10系统安装
  • mybatis-generator 基类继承
  • Spring MVC学习总结(5)——SpringMVC项目关于安全的一些配置与实现方式
  • ECMAScript6(0):ES6简明参考手册
  • es6--symbol
  • HTTP中GET与POST的区别 99%的错误认识
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java方法详解
  • MYSQL 的 IF 函数
  • mysql_config not found
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • SSH 免密登录
  • Travix是如何部署应用程序到Kubernetes上的
  • ucore操作系统实验笔记 - 重新理解中断
  • unity如何实现一个固定宽度的orthagraphic相机
  • web标准化(下)
  • 笨办法学C 练习34:动态数组
  • 大数据与云计算学习:数据分析(二)
  • 当SetTimeout遇到了字符串
  • 汉诺塔算法
  • 深度学习在携程攻略社区的应用
  • 实现菜单下拉伸展折叠效果demo
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 怎么将电脑中的声音录制成WAV格式
  • MyCAT水平分库
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #微信小程序:微信小程序常见的配置传旨
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (4.10~4.16)
  • (6)添加vue-cookie
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (转)一些感悟
  • **CI中自动类加载的用法总结
  • ../depcomp: line 571: exec: g++: not found
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .net core使用ef 6
  • .net下简单快捷的数值高低位切换
  • .NET中统一的存储过程调用方法(收藏)