错误的学习编码语言观点:语言语法不用记,多练习就可以了。   应该是死记住,然后加强练习以免忘记。以及在练习中加强理解。试着想“为什么是这样的语法习惯”。
PHP提供了8种数据类型。4种是标量型(单值)的:整型、浮点型、字符串和布尔值;两种是复合型(集合)的:数组和对象。两种特殊类型:资源和NULL

静态变量在所有对该函数的调用中是共享的,而非静态变量会在函数结束时被销毁。
嵌套声明并没有限制内部定义函数的可见性。除非外部函数被调用,否则内部函数无法被调用。

字符串的定义:
字符串可以是任意长度的字符序列。字符串直接量用单引号或双引号分隔。

变量用双引号括起来,单引号中的变量符号不解析。
测试两个字符串是否相等,使用==比较操作符: if($a==$b) {echo "a and b are equal"}
使用is_string()函数测试一个值是否为字符串:if(is_string($x)){//}
PHP提供了操作符和函数来对字符串进行比较、拆分、合并、查找、替换和去除首尾空格,也有许多特定的字符串函数来处理HTTP、HTML和SQL编码。
变量的替换:
有两种方法把变量替换到字符串中:
1、双引号包含
$who='kilroy';
$where='here';
echo "$who was $where";
2、大括号包含。这种方法可以用于消除歧义或替换数组查找。大括号的经典作用是把变量名从周围的文本中分隔出来。
$n=12;
echo "You are the {$n}th person";
You are the 12th person
如果没有大括号的话,PHP就会尝试打印出变量$nth的值。
和一些shell环境不同,在PHP字符串中变量不会重复解析,而只处理在双引号字符串中的解析,然后把其结果作为字符串的值。
$bar='this is not printed';
$foo='$bar';//单引号
print("$foo");//双引号
$bar
用单引号括起来的字符串并不替换变量:
$name='Fred';
$str='Hello,$name';//用单引号括起来
echo $str;
Hello,$name
特殊符号转义:
在用单引号括起来的字符串中唯一可用的转义序列是\'(把单引号放在用单引号括起来的字符串中)、\\(把一个反斜杠放在用单引号括起来的字符串中)。任何其他的反斜杠只能被解释为一个反斜杠:
$name='Time O\'Reilly'; //转义的单引号
echo $name;
Time O'Reilly
$path='C:\\WINDOWS';   //转义的反斜杠
echo $path;
C:\WINDOWS
$nope='\n';            //不是转义序列
echo $nope;
\n  
用双引号括起来的字符串将会进行变量解析并且允许使用许多转义序列。\"(双引号)、\n(换行符)、\r(回车)、\t(制表符)、\\(反斜杠)、\$(美元符号)、\{、\}、\[、\](左右大括号与中括号)、\0 throuth \777(用八进制表示的ASCII字符)、\x0 through \xFF(用十六进制表示的ASCII字符)
如果在用双引号括起来的字符串中发现一个未知的转义序列,就忽略这个转义序列(如果警告级设置为E_NOTICE,就会为这样的未知序列产生一个警告):
$str="What is \c this?"; //未知的转义序列
echo $str;
What is \c this?

字符串的打印:有4种方法可以向浏览器发送输出内容。echo结构让你一次输出许多值,而print()只能输出一个值。printf()函数通过把值插入到模板中来建立一个格式化的字符串。print_r()函数利于调试——它用更容易读懂的方式来打印数组、对象和其它东西的内容。         echo的大部分行为看起来像是一个函数,但其实echo是一个语言结构(language construct)。这意味着可以省略小括号,所以下面两个语句是等价的:
echo "Printy";
echo ("Printy");  //也是合法的
可以通过逗号分隔来指定打印多个项:
echo "First","second","third";
Firstsecondthird
在尝试echo多个值时,使用小括号会产生语法错误:
echo("Hello","world");      //这是一个语法错误
因为echo并不是真正的函数,所以不可以把它作为表达式的一部分使用:
if(echo("test")){echo ("it worked!");}
通过使用函数print()或printf(),很容易补救这种错误。
print():函数print()发送一个值(它的参数)给浏览器。如果字符串成功显示则返回true,否则返回false(例如,用户在页面提交之前按下Stop按钮)
if (!print("Hello,world")){
    die("you're not listening to me!");
}
Hello,world

printf():函数printf()通过把值传入到模板中(即定义好的字符串格式)来输出一个字符串。它源自标准C库中的同名函数。
函数sprintf()和printf()的参数相同,但只是返回生成的字符串而不打印出来。这可以让你把字符串保存到一个变量中供稍后使用:
$date=sprintf("%02d/%02d/%04d",$month,$day,$year);//现在我们可以在任何一个需要日期的地方将类型说明符%的替换成$date的值。

print_r()结构可以聪明地显示传给它的东西,而不是像echo和print()那样把所有的都转换为字符串。使用print_r(),字符串和数字都简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。
在数组中使用print_r()可以将移动内部的迭代器指针指到数组里最后一个元素的位置。

访问单个字符:
函数strlen()返回字符串中的字符数,即字符长度:
$string='Hello,world';
$length=strlen($string); //$length为12
可以在字符串中使用字符串偏移量语法来定位单个字符:
$string='Hello';
for($i=0;$i<strlen($string);$i++){
    printf("The %dth charactor is %s\n",$i,$string{$i});
}
The 0th character is H
The 1th character is e
The 2th character is l
The 3th character is l
The 4th character is o

整理字符串
通常,我们从文件或用户得到的字符串在使用前需要整理(Cleaning)。原始数据的两个普遍问题是没用的空白符号(如空格、换行)的存在和不正确的字母大小写。

删除空白符
可以使用函数trim()、ltrim()、rtrim()删除字符串开头或结尾的空白符(whitespace):
$trimmed=trim(string[,charlist]);
$trimmed=ltrim(string[,charlist]);
$trimmed=rtrim(string[,charlist]);
trim()返回删除首尾空白的字符串。ltrim()(l是指left) 只删除字符串开头的空白。rtrim()(r是指right)只删除字符串末尾的空白。可选参数charlist是一个指定所有要删除字符的字符串。默认情况下要删除的字符有:空格(" ")、制表符("\t")、换行("\n")、回车("\r")、字符("\0")、纵向列表符("\x0B")

改变大小写
PHP有一些函数用于改变字符串的大小写:strtolower()和strtoupper()操作整个字符串,ucfirst()只操作字符串的第一个字母,ucwords()则操作字符串中每个单词的第一个字母。每一个函数都把字符串作为参数来执行,并适当地改变大小写,然后返回字符串的拷贝。例如:
$string1="FRED flintston";
$string2="barney rubble";
print(strtolower($string1)); //fred flintston
print(strtoupper($string1)); //FRED FLINTSTON
print(ucfirst($string2));    //Barney rubble
print(ucwords($string2));    //Barney Rubble

PHP字符串——简单应用的更多相关文章

  1. FJ的字符串-简单递归

    FJ的字符串-简单递归 问题描述FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = “ABACABADABACABA” … … 你能找出其 ...

  2. python反转字符串(简单方法)及简单的文件操作示例

    Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...

  3. HDOJ/HDU 2567 寻梦(字符串简单处理)

    Problem Description 每个人的童年都可能梦想过自己成为一个英雄,尤其是喜欢武侠的男生,Yifenfei也不例外. 童年的他常常梦想自己能成为一个绝世英雄,手拿一把灿灿发亮的宝剑,手挽 ...

  4. POJ 1200 Crazy Search(字符串简单的hash)

    题目:http://poj.org/problem?id=1200 最近看了一个关于hash的问题,不是很明白,于是乎就找了些关于这方面的题目,这道题是一道简单的hash 字符串题目,就先从他入手吧. ...

  5. java---正则表达式的字符串简单实用及扩展链接

    一:什么是正则表达式 1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的 ...

  6. 手写Java的字符串简单匹配方法IndexOf()

    简单的字符串模式匹配算法,可使用KMP进行优化 /** * @param s1 母串 * @param s2 子串 * @return */ public static int myIndexOf(S ...

  7. java字符串简单介绍

    String:String对象初始化之后不可变线程安全简单的字符串操作使用String效率更高 StringBuffer:StringBuffer对象初始化之后可改变线程安全频繁的字符串操作可以使用S ...

  8. HDU-2054.A==B?(字符串简单处理)

    这道题......被我各种姿势搞死的... 本题大意:给出两个数A和B,判断A和B是否相等,对应输出YES or NO. 本题思路:本题我有两种思路,第一种是直接去除前导零和后导零然后稍加处理比较字符 ...

  9. OI字符串 简单学习笔记

    持续更新qwq KMP 其实是MP啦qwq 就是先自己匹配自己得到状态图,然后再在上面进行模式串的匹配. nxt数组返回的是以该节点结尾的,最长的,在前面出现过的,不相交的,字符串的最靠右的,末位位置 ...

随机推荐

  1. SQL Server Profiler小技巧——筛选请求

    如果需要转载,请附上本文作者和原文链接:http://www.cnblogs.com/zeusro/p/4016228.html Microsoft SQL Server Profiler 是 SQL ...

  2. OracleServer总结进阶之系统分析(进阶完结)

    个人原创,转载请在文章头部明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10080102.html 在上一篇进阶中大概讲解了一些关于进阶方面的知识,今 ...

  3. UVA11624(KB1-J)

    Fire! Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and the owner of ...

  4. Pig安装

    环境: hadoop-2.4.1.jdk1.6.0_45.pig-0.12.1   1.下载pig并解压 tar -xzvf pig-0.12.1.tar.gz 2.设置环境变量 export PIG ...

  5. Week7——JSON

    1.什么是JSON? JSON是JavaScript对象表示法,全称是JavaScript Objec Notation.它是存储和交换文本信息的语法,类似于XML.JSON是轻量级的文本数据交换格式 ...

  6. The directory '/home/stone/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If execu

    使用sudo pip install ......的时候出现下面一段黄色的代码: The directory '/home/stone/.cache/pip/http' or its parent d ...

  7. shell_script2

    一.函数 1.简介 Shell函数类似于Shell脚本,里面存放了一系列的指令 不过,Shell的函数存在于内存,而不是硬盘文件,所以速度很快 另外,Shell还能对函数进行预处理,所以函数的启动比脚 ...

  8. maven(19)-生命周期和内置插件

    生命周期和依赖一样,是maven中最重要的核心概念.平时在使用maven时并不一定需要知道生命周期,但是只有明白了生命周期,才能真正理解很多重要的命令和插件配置. default生命周期 defaul ...

  9. 梯度下降法实现最简单线性回归问题python实现

    梯度下降法是非常常见的优化方法,在神经网络的深度学习中更是必会方法,但是直接从深度学习去实现,会比较复杂.本文试图使用梯度下降来优化最简单的LSR线性回归问题,作为进一步学习的基础. import n ...

  10. plsql常用函数

    1)处理字符的函数 || 或 CONCAT---并置运算符. 格式∶CONCAT(STRING1, STRING2) 例:’ABC’|| ’DE’=’ABCDE’ CONCAT(‘ABC’,’DE’) ...