注意:PHP没有对string的长度做限制。唯一限制的就是PHP在计算机中的可用内存(php.ini文件中的memory_limit变量的值) 限定字符串范围的方法有4中: 1、单引号; 2、双引号; 3、原型文档语法; 4、nowdoc syntax(PHP5.3.0开始) 1、如果字符串使用单引号“‘”包裹,字符串中如果出现单引号“,”和反斜杠“”符号,需要进行转义。 <div class="codetitle"><a style="CURSOR: pointer" data="55569" class="copybut" id="copybut55569" onclick="doCopy('code55569')"> 代码如下:<div class="codebody" id="code55569"> // 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、简单语法: 因为解析器会贪婪匹配$后面的字符,所以,为了不出什么以外,应该使用"{"和"}"来表名变量的边界。 <div class="codetitle"><a style="CURSOR: pointer" data="47283" class="copybut" id="copybut47283" onclick="doCopy('code47283')"> 代码如下:<div class="codebody" id="code47283"> <?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 ?> 同样,数组的下标和对象的属性也会不解析。 <div class="codetitle"><a style="CURSOR: pointer" data="25256" class="copybut" id="copybut25256" onclick="doCopy('code25256')"> 代码如下:<div class="codebody" id="code25256"> <?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、复合语法: <div class="codetitle"><a style="CURSOR: pointer" data="64777" class="copybut" id="copybut64777" onclick="doCopy('code64777')"> 代码如下:<div class="codebody" id="code64777"> <?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。
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|