Heim  >  Artikel  >  Backend-Entwicklung  >  Zeichenfolge in PHP

Zeichenfolge in PHP

韦小宝
韦小宝Original
2017-12-01 10:06:033163Durchsuche

Der Datentyp ist in acht Datentypen PHP unterteilt. Heute werden wir ihn im Detail erklären PHPString.

Einführung

Die Implementierung von String in PHP ist ein Array von Bytes plus einer Ganzzahl, die die Pufferlänge angibt. Es gibt keine Informationen darüber, wie Bytes in Zeichen umgewandelt werden; dies bleibt dem Programmierer überlassen. Es gibt keine Einschränkung hinsichtlich der Werte, aus denen eine Zeichenfolge besteht. Insbesondere kann ein Byte mit dem Wert 0 an einer beliebigen Stelle in der Zeichenfolge stehen.

Da PHP die Codierung von Strings nicht angibt, wie werden Strings codiert? Ist beispielsweise die Zeichenfolge „á“ gleich „xE1“ (ISO-8859-1), „xC3xA1“ (UTF-8, C-Form), „x61xCCx81“ (UTF-8, D-Form) oder einem anderen möglichen Ausdruck ? Die Antwort ist, dass die Zeichenfolge in derselben Codierung wie die Skriptdatei codiert wird.

Darstellung von Strings

PHP-Strings können auf vier Arten dargestellt werden, darunter:

einfache Anführungszeichen /doppelte Anführungszeichen/ heredoc/nowdoc

Diese vier Methoden unterstützen alle das Schreiben von Zeichenfolgen in mehrere Zeilen. Gleichzeitig bleiben Zeilenumbrüche und Leerzeichen in den Zeichen unverändert, dh im Format im Quellcode wird beibehalten. Wenn Sie Zeilenumbrüche vermeiden möchten, können Sie sie in eine einzelne Zeile schreiben und den String-Verkettungsoperator verwenden.



Einfache Anführungszeichen sind einfach zu verwenden. Bei der Verwendung von einfachen Anführungszeichen gibt es nur zwei Escape-Zeichen, nämlich ' und \

Wenn die Zeichenfolge enthält Ohne doppelte Anführungszeichen ist die Verwendung einfacher Anführungszeichen sehr prägnant.


Doppelte Anführungszeichen unterstützen mehr Escape-Zeichen wie n und t. Darüber hinaus unterstützen Escape-Zeichen auch die Oktalschreibweise, die Hexadezimalschreibweise und die UTF-8-Schreibweise:

[0-7]{1,3}

x[0- 9A-Fa-f] {1,2}

u{[0-9A-Fa-f]+}


In ähnlicher Weise stellen doppelte Anführungszeichen einfache Anführungszeichen in der Zeichenfolge dar müssen nicht entkommen werden.


Die durch doppelte Anführungszeichen dargestellte Zeichenfolge weist eine weitere wichtige Funktion auf, nämlich dass sie die Variablen in der Zeichenfolge analysiert:

"Hi, $str."
Sobald der Syntaxanalysator auf das $-Symbol stößt, wird es ruft die Zeichenfolge zwischen dem $-Symbol und dem nächsten Zeichen ab, das kein englischer Buchstabe, keine arabische Ziffer oder kein Unterstrich ist, und behandelt sie als Variablennamen. Wenn im Programm keine solche Variable vorhanden ist, wird sie automatisch ignoriert.

Wenn Sie das $-Symbol ausgeben möchten, müssen Sie das Escape-Zeichen $ verwenden



Heredoc-Syntax

Syntaxformat :

<<

String-Inhalt

str


Beachten Sie, dass der obige str ist a self Ein definierter Bezeichner (Sie können doppelte Anführungszeichen hinzufügen), um den Anfang und das Ende einer Zeichenfolge zu markieren. Außerdem muss auf <<

Der Bezeichner, der das Ende der Zeichenfolge angibt, muss in einer neuen Zeile und beginnend mit der ersten Spalte geschrieben werden. Diese Zeile darf außer eventuell einem Semikolon (;) danach keine weiteren Zeichen enthalten. Das bedeutet, dass Bezeichner nicht eingerückt werden dürfen und dass vor oder nach einem Semikolon weder Leerzeichen noch Tabulatoren stehen dürfen. Noch wichtiger ist, dass der Endkennung ein vom lokalen Betriebssystem erkannter Zeilenumbruch vorangestellt werden muss, z. B. n in UNIX- und Mac OS


Die Heredoc-Syntax analysiert die Variablen in der Zeichenfolge auf die gleiche Weise wie die Notation in doppelte Anführungszeichen.

Beachten Sie, dass Heredocs, wenn sie das Parsen von Variablen beinhalten, nicht zum Initialisieren von Klassenattributen verwendet werden können.



nowdoc-Syntax

Grammatikformat:

<<<'str'

String-Inhalt


str


Die Nowdoc-Syntax ähnelt der Heredoc-Syntax, außer dass Bezeichner in einfache Anführungszeichen gesetzt werden müssen. Und die Nowdoc-Syntax analysiert keine Variablen in Zeichenfolgen.

<?php  
  $name = "pish";  
  echo <<<&#39;str1&#39;  
My name is $name.<br>  
str1;  
?>

Variablenanalyse in String

Der einfachste Weg besteht darin, den Variablennamen direkt zu schreiben, zum Beispiel:

$name = &#39;Ann&#39;;  
$str = "hello $name!";
Diese Methode muss am Ende des Variablennamens ein Zeichen haben, das nicht zur Variablenbenennung verwendet werden kann, wie zum Beispiel „!“ im obigen Beispiel, es sei denn, die Zeichenfolge ist beendet.


Wenn auf den Variablennamen ein Buchstabe oder eine Zahl folgt, wird die Variable nicht korrekt analysiert, da der Parser $ erhält, sobald er auf das $-Symbol The trifft Eine Zeichenfolge zwischen dem Symbol und dem nächsten Zeichen, die kein englischer Buchstabe, keine arabische Ziffer oder kein Unterstrich ist, wird als Variablenname behandelt. Wenn im Programm keine solche Variable vorhanden ist, wird sie automatisch ignoriert.

Eine Ausnahme bilden Array-Elemente, die ] verwenden, um das Ende der Variablen zu identifizieren, sodass nach ] andere Buchstaben oder Zahlen stehen können.



Wenn Sie den Variablennamen besser kontrollieren oder einen komplexen Ausdruck verwenden möchten, können Sie {} zur Unterstützung der Identifizierung verwenden.

Hinweis:

1.$ und { müssen nahe beieinander liegen, z. B. ${ oder {$, andernfalls werden die geschweiften Klammern als normales Zeichen in der Zeichenfolge analysiert.

2. Es muss ein }-Symbol vorhanden sein, sonst tritt ein Fehler auf.


3. Wenn das $-Zeichen neben dem Variablennamen steht, darf kein Leerzeichen dazwischen stehen.

4.解析数组元素时,只有通过花括号语法才能正确解析带引号的键名

$str = "hello ${name}";  
$str = "hello ${  name  }";  
$str = "hello {$name  }";  
$str = "hello {$  name  }";  // 出错

只使用一层花括号时,无法处理函数或方法的返回值或者类常量以及类静态变量。正确的做法是使用两层花括号:

{${getName()}}            // 函数  
{${$object->getName()}}   // 方法  
{${beers::softdrink}}     // 类常量  
{${beers::$ale}}          // 类变量

下面的例子演示了字符串中的可变变量

$name = &#39;Ann&#39;;  
$Ann = &#39;Jeck&#39;;  
echo "hello {${$name}}"; // hello Jeck  
echo "hello ${$name}";   // hello Jeck  
  
class foo {  
  var $bar = &#39;I am bar.&#39;;  
}  
$foo = new foo();  
$bar = &#39;bar&#39;;  
$baz = array(&#39;foo&#39;, &#39;bar&#39;, &#39;baz&#39;, &#39;quux&#39;);  
echo "{$foo->$bar}\n";          // I am bar.  
echo "{$foo->{$baz[1]}}\n";     // I am bar.

以数组的形式访问字符串

一个字符串可以当成一个可读写的数组进行访问,这时,数组的键固定为0、1、2...

可以使用方括号或花括号来访问字符串中的元素:

$str = "abcdefg";  
$str[0] = "2";  
$str{1} = 3;  
echo var_dump($str);  // string(7) "23cdefg"

注意,用超出字符串长度的下标写入将会拉长该字符串并以空格填充。非整数类型下标会被转换成整数。非法下标类型会产生一个 E_NOTICE 级别错误。用负数下标写入字符串时会产生一个 E_NOTICE 级别错误,用负数下标读取字符串时返回空字符串。写入时只用到了赋值字符串的第一个字符。用空字符串赋值则赋给的值是 NULL 字符。 
PHP 的字符串在内部是字节组成的数组。因此用花括号访问或修改字符串对多字节字符集很不安全。仅应对单字节编码例如 ISO-8859-1 的字符串进行此类操作。

运算符

字符串支持以下这些运算符:

. .=

该运算符用于连接两个字符串:

$str1 = "hello " . "world";  
$str1 .= "!";  
echo $str1;     // hello world!

字符串函数

strlen(str)

返回字符串的长度

$str1 = "abcdefg";  
$str2 = "大家好!";  
echo strlen($str1); // 7  
echo strlen($str2); // 10

以上就是本文的所有内容,希望可以给你带来对字符串的新认识哦~

相关推荐:

最全的php字符串处理函数

php字符串转换为小写的函数strtolower()

几个被人遗忘的PHP字符串处理函数

Das obige ist der detaillierte Inhalt vonZeichenfolge in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn