PHP 字符串

PHP 字符串

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

  1. 单引号
  2. 双引号
  3. heredoc语法
  4. newdoc语法(自PHP 5.3起)

单引号

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

要指定一个单引号字面值,请使用反斜杠(\)进行转义,要指定一个反斜杠字面值,请使用双反斜杠(\\)。所有其他带有反斜杠的实例,如\r或\n,将以与它们指定的相同方式输出,而不具有任何特殊含义。

例如

以下是一些示例,以更好地理解在PHP中的单引号字符串:

示例1

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

输出:

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";
echostr;
?>

输出:

Hello text within double quote

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

示例2

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

输出:

Parse error: syntax error, unexpected 'quote' (T_STRING) in C:\wamp\www\string1.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语法中,此heredoc <<< 操作符后面提供了一个标识符,并立即开始新的一行来写任意文本。为了关闭引号,字符串后面跟着自己,然后再次提供相同的标识符。此关闭标识符必须从新的一行开始,没有任何空格或制表符。

命名规则

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

例如

有效的示例

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

输出:

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
echostr;
?>

这段代码会产生一个错误。

输出:

Parse error: **syntax error, unexpected end of file in** C:\xampp\htdocs\xampp\PMA\heredoc.php on **line 7**

Heredoc类似于双引号字符串,但不需要双引号,意味着在heredoc中不需要引号。它还可以打印变量的值。

示例

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

输出:

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

示例

我们可以在这里使用heredoc语法添加多行文本。

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

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;
        varexample;
        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 someheredocExample->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

Newdoc类似于heredoc,但是在newdoc中不进行解析。它也是用三个小于符号<<<后跟一个标识符来识别。但是这里的标识符要用单引号括起来, 例如 <<<'EXP' 。Newdoc遵循与heredocs相同的规则。

newdoc和heredoc的区别在于- newdoc是一个 单引号字符串 而heredoc是一个 双引号字符串

注意: Newdoc作为单引号使用。

示例1:

<?php
    str = <<<'DEMO'
    Welcome to javaTpoint.
           Learn with newdoc example.
DEMO;
echostr;
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.

打开查看页面源代码,并查看程序的源代码。

PHP 字符串

示例

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

<?php
class heredocExample{
        var demo;
        varexample;
        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 someheredocExample->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**

注意:

无效的示例:

我们不能在标识符和分号之前后使用任何空白字符或制表符,也就是说标识符不能缩进。标识符必须从新的一行开始。在newdoc(新文档)中与heredoc(定界符)一样也是无效的。

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

这段代码将会产生一个错误。

输出:

Parse error: **syntax error, unexpected end of file in** C:\xampp\htdocs\xampp\PMA\newdoc.php on **line 7**

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程