Home >Backend Development >PHP Tutorial >PHP Basics String (1)_PHP Tutorial
String
String is a sequence of characters. In PHP, characters are the same as bytes, which means there are a total of 256 different character possibilities. This also implies that PHP has no native support for Unicode. See the functions utf8_encode() and utf8_decode() for information about Unicode support.
Note: There is no problem if a string becomes very large, PHP does not impose an implementation range on the size of the string, so there is absolutely no reason to worry about long strings.
Syntax
Strings can be defined in three literal ways.
Single quotes
Double quotes
Delimiter
Single quotes
The simplest way to specify a simple string is Surround it with single quotes (character ').
To represent a single quote, it needs to be escaped with a backslash (), like many other languages. If a backslash is required before a single quote or at the end of a string, use two backslashes. Note that if you try to escape any other characters, the backslash itself will also be displayed! So there's usually no need to escape the backslash itself.
Note: In PHP 3, an E_NOTICE level warning will be issued in this case.
Note: Unlike the other two syntaxes, variables and escape sequences appearing in single-quoted strings will not be replaced by the value of the variable.
<?phpecho 'this is a simple string';echo 'You can also have embedded newlines instrings this way as it isokay to do';// 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:*.*?';// Outputs: This will not expand: n a newlineecho 'This will not expand: n a newline';// Outputs: Variables do not $expand $eitherecho 'Variables do not $expand $either';?> |
Double quotes
If you surround a string with double quotes ("), PHP knows more escape sequences for special characters:
Table 11-1. Escape character
sequence meaning
n line feed (LF or ASCII character 0x0A (10))
r carriage return (CR or ASCII character 0x0D (13) ))
t horizontal tab character (HT or ASCII character 0x09 (9))
backslash
$ dollar sign
" double quote
[0-7]{1,3} This regular expression sequence matches a character represented in octal notation
x[0-9A-Fa-f]{1,2} This regular expression The sequence matches a character represented in hexadecimal notation
Additionally, if you try to escape any other character, the backslash itself will be displayed!
The most important thing about double-quoted strings is that the variable names will be replaced by variable values. See String Parsing for details.
Delimiter
Another way to delimit a string uses delimiter syntax ("
The end identifier must start in the first column of the row. Likewise, identifiers must follow the naming rules of any other tag in PHP: they must only contain alphanumeric underscores, and they must start with an underscore or a non-numeric character.
Warning
It is important to point out that the line that ends the identifier must not contain any other characters, except perhaps a semicolon (;). This means in particular that the identifier cannot be indented and there cannot be any spaces or tabs before or after the semicolon. It is also important to realize that the first character before the closing identifier must be a newline character as defined in your operating system. For example, on Macintosh systems it is r.
If you break this rule so that the end identifier is not "clean", it will not be treated as an end identifier and PHP will keep looking for it. Failure to find a suitable closing identifier in this case will result in a syntax error on the last line of the script.
Delimited text behaves like a double-quoted string, but without the double quotes. This means that quotes do not need to be escaped within delimited text, but the escape codes listed above can still be used. Variables are expanded, but the same care must be taken when expressing complex variables in delimited literals as with strings.
Example 11-2. Delimiter string example:
<?php $str = <<<EODExample of stringspanning multiple linesusing heredoc syntax.EOD;/* More complex example, with variables. */class foo{ var $foo; var $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); }}$foo = new foo();$name = 'MyName';echo foo.Now, I am printing some {$foo->bar[1]}.This should print a capital 'A': x41EOT;?> |
Note: Delimiter support was added in PHP 4.
1