个性化阅读
专注于IT技术分析

PHP字符串用法详解

本文概述

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

  1. 单引号
  2. 双引号
  3. Heredoc语法
  4. 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:\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
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:\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;
	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语法

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

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

注意:Newdoc用作单引号。

示例1:

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

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

输出

Welcome to srcmini. Learn with newdoc example.
Welcome to srcmini. Learn with newdoc example.

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

PHP字符串

例子

下面的示例显示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:\xampp\htdocs\xampp\PMA\newdoc.php on line 7
赞(0)
未经允许不得转载:srcmini » PHP字符串用法详解

评论 抢沙发

评论前必须登录!