PHP中的string类型使用说明

注意:PHP没有对string的长度做限制。唯一限制的就是PHP在计算机中的可用内存(php.ini文件中的memory_limit变量的值)
限定字符串范围的方法有4中:
1、单引号;
2、双引号;
3、原型文档语法;
4、nowdoc syntax(PHP5.3.0开始)

1、如果字符串使用单引号“‘”包裹,字符串中如果出现单引号“,”和反斜杠“\”符号,需要进行转义。

复制代码 代码如下:

// Outputs: Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';
// Outputs: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';
// Outputs: You deleted C:\*.*?
echo 'You deleted C:\*.*?';

(有待验证 单引号包裹的字符串反斜杠是否需要转义)

2、如果字符串被双引号包裹 一下字符都会被转义:
Escaped characters Sequence Meaning
\n linefeed (LF or 0x0A (10) in ASCII)
\r carriage return (CR or 0x0D (13) in ASCII)
\t horizontal tab (HT or 0x09 (9) in ASCII)
\v vertical tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5)
\f form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5)
\\ backslash
\$ dollar sign
\" double-quote
\[0-7]{1,3} the sequence of characters matching the regular expression is a character in octal notation
\x[0-9A-Fa-f]{1,2} the sequence of characters matching the regular expression is a character in hexadecimal notation

如果字符串 使用双引号“"”或者原形文档语法的形式包裹的话,在字符串中的变量会被解析。
1、简单语法:
因为解析器会贪婪匹配$后面的字符,所以,为了不出什么以外,应该使用"{"和"}"来表名变量的边界。
复制代码 代码如下:

<?php
$beer = 'Heineken';
echo "$beer's taste is great"; // works; "'" is an invalid character for variable names
echo "He drank some $beers"; // won't work; 's' is a valid character for variable names but the variable is "$beer"
echo "He drank some ${beer}s"; // works
echo "He drank some {$beer}s"; // works
?>

同样,数组的下标和对象的属性也会不解析。
复制代码 代码如下:

<?php
// These examples are specific to using arrays inside of strings.
// When outside of a string, always quote array string keys and do not use
// {braces}.
// Show all errors
error_reporting(E_ALL);
$fruits = array('strawberry' => 'red', 'banana' => 'yellow');
// Works, but note that this works differently outside a string
echo "A banana is $fruits[banana].";
// Works
echo "A banana is {$fruits['banana']}.";
// Works, but PHP looks for a constant named banana first, as described below.
echo "A banana is {$fruits[banana]}.";
// Won't work, use braces. This results in a parse error.
echo "A banana is $fruits['banana'].";
// Works
echo "A banana is " . $fruits['banana'] . ".";
// Works
echo "This square is $square->width meters broad.";
// Won't work. For a solution, see the complex syntax.
echo "This square is $square->width00 centimeters broad.";
?>

2、复合语法:
复制代码 代码如下:

<?php
// Show all errors
error_reporting(E_ALL);
$great = 'fantastic';
// Won't work, outputs: This is { fantastic}
echo "This is { $great}";
// Works, outputs: This is fantastic
echo "This is {$great}";
echo "This is ${great}";
// Works
echo "This square is {$square->width}00 centimeters broad.";
// Works
echo "This works: {$arr[4][3]}";
// This is wrong for the same reason as $foo[bar] is wrong outside a string.
// In other words, it will still work, but only because PHP first looks for a
// constant named foo; an error of level E_NOTICE (undefined constant) will be
// thrown.
echo "This is wrong: {$arr[foo][3]}";
// Works. When using multi-dimensional arrays, always use braces around arrays
// when inside of strings
echo "This works: {$arr['foo'][3]}";
// Works.
echo "This works: " . $arr['foo'][3];
echo "This works too: {$obj->values[3]->name}";
echo "This is the value of the var named $name: {${$name}}";
echo "This is the value of the var named by the return value of getName(): {${getName()}}";
echo "This is the value of the var named by the return value of \$object->getName(): {${$object->getName()}}";


访问,修改字符串中的指定字符:
字符串可以使用"[]"和"{}"进行访问。(注意:php5.3.0以后不建议使用“{}”访问)
注意:使用其他类型(非integer)类型访问字符串指定的字符,都会返回NULL
警告:
Writing to an out of range offset pads the string with spaces. Non-integer types are converted to integer. Illegal offset type emits E_NOTICE. Negative offset emits E_NOTICE in write but reads empty string. Only the first character of an assigned string is used. Assigning empty string assigns NUL byte。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

Laravel5中contracts详解 - 2015-04-19 06:04:34

我们先来看看官方文档中对contracts的定义: Laravel's Contracts are a set of interfaces that define the core services provided by the framework. 意思是说Laravel的Contracts是一个由 框架提供 的定义了 核心服务接口 的集合。 也就是说,每一个Contract都是一个接口,对应一个框架核心服务。 那它的意义何在?官网给出的解释也很简单:使用接口是为了 松耦合 和 简单 。 先不讲大道理
复制代码 代码如下: //php获取今日开始时间戳和结束时间戳 $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y')); $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; //php获取昨日起始时间戳和结束时间戳 $beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y')); $endYesterday=mktime(0,
下面本文将以具体的例子一一分析: capture标签 capture的中文意思是抓取,它的作用是抓取模板输出的数据,当我们需要它的时候,调用它,以得到抓取数据的目的。如下例子: 复制代码 代码如下: {capture name="test"} img src="testimg.jpg" {/capture} div class="image" {$smarty.capture.test} /div 说明:在{capture name="test"}和{/capture}之间的内容被存储到变量$test中,

深入分析PHP引用(&) - 2015-04-19 06:04:24

引用是什么 在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针,替代的是,引用是符号表别名。注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。引用可以被看作是 Unix 文件系统中的 hardlink。 引用做什么 PHP 的引用允许用两个变量来指向同一个内容。意思是,当这样做时: ?php$a = $b;? 这意味着 $a 和 $b 指向了同一个变量。 Not
定义和用法 str_pad() 函数把字符串填充为指定的长度。 语法 str_pad(string,length,pad_string,pad_type)参数 描述 string 必需。规定要填充的字符串。 length 必需。规定新字符串的长度。如果该值小于原始字符串的长度,则不进行任何操作。 pad_string 可选。规定供填充使用的字符串。默认是空白。 pad_type 可选。规定填充字符串的那边。 可能的值: STR_PAD_BOTH - 填充到字符串的两头。如果不是偶数,则右侧获得额外的填充。
效果图: 复制代码 代码如下: ?php /** * vCode(m,n,x,y) m个数字 显示大小为n 边宽x 边高y * micxp *jb51.net */ session_start(); vCode(4, 15); //4个数字,显示大小为15 function vCode($num = 4, $size = 20, $width = 0, $height = 0) { !$width $width = $num * $size * 4 / 5 + 5; !$height $height = $
在web开发中经常会碰到一些简单的视频播放功能,但现在的视频格式不同,并且可以动态增加,所以我们就必须把视频保存到数据哦,好了下面我们来看我写的段简单的 php视频网页播放器 代码吧。 复制代码 代码如下: ?PHP include './admin/connect.php'; @extract($db-get_one("select * from movieinfo where id='".$_GET['id']."'")); $db-query("update movieinfo set playnum

php简单操作mysql数据库的类 - 2015-04-18 20:04:09

本文实例讲述了php简单操作mysql数据库的类。分享给大家供大家参考。具体如下: ?php/** * Database class * * @version: 2.2 * @revised: 27 may 2007 * **/class Database { var $host; var $name; var $user; var $pass; var $prefix; var $linkId; function Database($mysql) { foreach($mysql as $k = $v)
如何准确的控制和判断成了PHP中的一个“小问题”,下面是从书上摘抄下来的语句。 复制代码 代码如下: ?php $filename = "html/cache.txt"; $contents = "我是张斌"; if(is_writable($filename)){ if(($handle = fopen($filename,"a") )== false){ echo "写入文件 $filename 失败"; exit(); } if(fwrite($handle,$contents) == false){
PHP Manual里,对imagick的描述,真的是简洁,每个成员函数,点击打开就看到如下文本: 复制代码 代码如下: Warning This function is currently not documented; only its argument list is available. 刚才解决了PHP加载问题后,对图片的处理相当方便,网上随便找了一段: 复制代码 代码如下: ?php Header("Content-type: image/jpeg"); /** * 缩小图片尺寸. * * @