PHP字符串

PHP字符串 PHP字符串是字符序列,即用于存储和操作文本。PHP仅支持256个字符集,因此不提供本机Unic…

PHP字符串

PHP字符串是字符序列,即用于存储和操作文本。PHP仅支持256个字符集,因此不提供本机Unicode支持。有4种方法在PHP中指定字符串文字。

  • 单引号
  • 双引号
  • Heredoc语法
  • newdoc语法(自PHP 5.3起)

单引号

我们可以通过将文本括在单引号中来在PHP中创建一个字符串。这是在PHP中指定字符串的最简单方法。

要指定文字单引号,请使用反斜杠()对其进行转义,并指定文字反斜杠(),请使用双反斜杠()。所有其他带有反斜杠的实例,例如r或n,将与指定的输出相同,而不具有任何特殊含义。

例如

给出一些示例,以更好地理解单引号的PHP字符串:

例子1

<?php
       $str='Hello text within single quote';
       echo $str;
?>

输出:

Hello text within single quote

我们可以在一个单引号的PHP字符串存储多个行文本,特殊字符和转义序列。

例子2

<?php
$str1='Hello text 
multiple line
text within single quoted string';
$str2='Using double "quote" directly inside single quoted string';
$str3='Using escape sequences n in single quoted string';
echo "$str1 <br/> $str2 <br/> $str3";
?>

输出:

Hello text multiple line text within single quoted string 
Using double "quote" directly inside single quoted string 
Using escape sequences n in single quoted string

例子3

<?php
$num1=10; 
$str1='trying variable $num1';
$str2='trying backslash n and backslash t inside single quoted string n t';
$str3='Using single quote 'my quote' and backslash';
echo "$str1 <br/> $str2 <br/> $str3";
?>

输出:

trying variable $num1 
trying backslash n and backslash t inside single quoted string n t 
Using single quote 'my quote' and backslash

注意:在单引号的PHP字符串中,大多数转义序列和变量将不会被解释。但是,我们可以在单引号的PHP字符串中通过’使用单引号,并通过使用反斜线。

双引号

在PHP中,我们也可以通过将文本括在双引号中来指定字符串。但是转义序列和变量将使用双引号PHP字符串进行解释。

例子1

<?php
$str="Hello text within double quote";
echo $str;
?>

输出:

Hello text within double quote

现在,您不能在双引号字符串直接使用双引号。

例子2

<?php
$str1="Using double "quote" directly inside double quoted string";
echo $str1;
?>

输出:

Parse error: syntax error, unexpected 'quote' (T_STRING) in C:wampwwwstring1.php on line 2

我们可以在双引号PHP字符串存储多个行文本,特殊字符和转义序列。

例子3

<?php
$str1="Hello text 
multiple line
text within double quoted string";
$str2="Using double "quote" with backslash inside double quoted string";
$str3="Using escape sequences n in double quoted string";
echo "$str1 <br/> $str2 <br/> $str3";
?>

输出:

Hello text multiple line text within double quoted string 
Using double "quote" with backslash inside double quoted string 
Using escape sequences in double quoted string

在双引号字符串中,变量将被解释。

例子4

<?php
$num1=10; 
echo "Number is: $num1";
?>

输出:

Number is: 10

赫雷多克

Heredoc语法(<<<)是分隔字符串的第三种方法。在Heredoc语法中,在此Heredoc<<<运算符之后提供了一个标识符,并立即开始换行以写入任何文本。为了结束报价,字符串跟随其自身,然后再次提供相同的标识符。该结束标识符必须从没有任何空格或制表符的新行开始。

命名规则

标识符应遵循命名规则,该标识符必须仅包含字母数字字符和下划线,并且必须以下划线或非数字字符开头。

例如

有效的例子

<?php
    $str = <<<Demo
It is a valid example
Demo;    //Valid code as whitespace or tab is not valid before closing identifier
echo $str;
?>

输出:

It is a valid example 

无效的例子

我们不能在标识符和分号前后使用任何空格或制表符,这意味着不能缩进标识符。标识符必须从新行开始。

<?php
    $str = <<<Demo
It is Invalid example
       Demo;    //Invalid code as whitespace or tab is not valid before closing identifier
echo $str;
?>

此代码将产生错误。

输出:

Parse error: syntax error, unexpected end of file in C:xampphtdocsxamppPMAheredoc.php on line 7

Heredoc与双引号字符串相似,但没有双引号,这意味着Heredoc中的引号不是必需的。它也可以打印变量的值。

<?php
$city = 'Delhi';
$str = <<<DEMO
Hello! My name is Misthi, and I live in $city.
DEMO;
echo $str;
 ?>

输出:

Hello! My name is Misthi, and I live in Delhi. 

我们可以在heredoc语法之间在此处添加多行文本。

<?php
$str = <<<DEMO
It is the example 
of multiple
lines of text.
DEMO;
echo $str;

echo '</br>';

echo <<<DEMO    // Here we are not storing string content in variable str. 
It is the example 
of multiple
lines of text.
DEMO;
 ?>

输出:

It is the example of multiple lines of text.
It is the example of multiple lines of text.

下面是带有类及其变量的示例

<?php
class heredocExample{
var $demo;
var $example;
function __construct()
{
$this->demo = 'DEMO';
$this->example = array('Example1', 'Example2', 'Example3');
}
}
$heredocExample = new heredocExample();
$name =  'Gunjan';

echo <<<ECO
My name is "$name". I am printing some $heredocExample->demo example.
Now, I am printing {$heredocExample->example[1]}.
It will print a capital 'A': x41
ECO;
 ?>

输出:

My name is "Gunjan". I am printing some DEMO example. 
Now, I am printing Example2. 
It will print a capital 'A': A

纽多克

Newdoc与Heredoc类似,但是在newdoc中,解析未完成。还用少于三个的符号<<<以及后跟的标识符来标识它。但是这里的标识符用单引号引起来,例如<<<‘EXP’。Newdoc遵循与heredocs相同的规则。

newdoc和heredoc之间的区别在于-Newdoc是单引号字符串,而Heredoc是双引号字符串。

注意:Newdoc用作单引号。

示例1:

<?php
    $str = <<<'DEMO'
Welcome to javaTpoint.
           Learn with newdoc example.
DEMO;
echo $str;
echo '</br>';

echo <<< 'Demo'    // Here we are not storing string content in variable str.
Welcome to javaTpoint.
           Learn with newdoc example.
Demo;
?>

输出:

Welcome to javaTpoint. Learn with newdoc example.
Welcome to javaTpoint. Learn with newdoc example.

转到查看页面源代码并查看程序的源代码。

下面的示例显示newdoc不打印变量的值。

<?php
class heredocExample{
var $demo;
var $example;
function __construct()
{
$this->demo = 'DEMO';
$this->example = array('Example1', 'Example2', 'Example3');
}
}
$heredocExample = new heredocExample();
$name =  'Gunjan';

echo <<<ECO
My name is "$name". I am printing some $heredocExample->demo example.
Now, I am printing {$heredocExample->example[1]}.
It will print a capital 'A': x41
ECO;
 ?>

输出:

上面程序的输出如下:

My name is "$name". I am printing some $heredocExample->demo example. 
Now, I am printing {$heredocExample->example[1]}. 
It will print a capital 'A': x41

注意:PHP 5.3.0+版本支持newdoc。

无效的例子

我们不能在标识符和分号前后使用任何空格或制表符,这意味着不得缩进标识符。标识符必须从新行开始。在newdoc中与Heredoc相同,也是无效的。

<?php
    $str = <<<'Demo'
It is Invalid example
Demo;  //Invalid code as whitespace or tab is not valid before closing identifier
echo $str;
?>

此代码将产生错误。

输出:

Parse error: syntax error, unexpected end of file in C:xampphtdocsxamppPMAnewdoc.php on line 7



类别:PHP 技巧

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册