PHP String
PHP string is a sequence of characters i.e., used to store and manipulate text.
It is a data type used to represent text.
PHP supports only 256-character set and so that it does not offer native Unicode support.
There are 4 ways to specify a string literal in PHP.
1. single quoted
2. double quoted
3. heredoc syntax
4. newdoc syntax (since PHP 5.3)
Single Quoted
We can create a string in PHP by enclosing the text in a single-quote.
It is the easiest way to specify string in PHP.
For specifying a literal single quote, escape it with a backslash (\) and to specify a literal backslash (\) use double backslash (\\).
All the other instances with backslash such as \r or \n, will
be output same as they specified instead of having any special meaning.
Example 1
<?php
$str='Hello text within single quote';
echo $str;
?>
Output:
Hello text within single quote
In this case, the variable $str
is assigned the value "Hello text within single quote." The content within the single quotes is treated as a literal string, and PHP does not interpret variables or special characters within single-quoted strings. Single-quoted strings are often used when you want to define a simple string without the need for variable interpolation or special character interpretation
We can store multiple line text, special
characters, and escape sequences in a single-quoted PHP string.
Example 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";
?>
Output:
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
Example 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";
?>
Output:
trying variable $num1
trying backslash n and backslash t inside
single quoted string \n \t
Using single quote 'my quote' and \backslash
Note: In single quoted PHP strings, most
escape sequences and variables will not be interpreted. But, we can use single
quote through \' and backslash through \\ inside single quoted PHP strings.
Double Quoted
In PHP, we can specify string through
enclosing text within double quote also. But escape sequences and variables
will be interpreted using double quote PHP strings.
Example 1
<?php
$str="Hello text within double
quote";
echo $str;
?>
Output:
Hello text within double quote
Now, you can't use double quote directly
inside double quoted string.
Example 2
<?php
$str1="Using double "quote"
directly inside double quoted string";
echo $str1;
?>
Output:
Parse error: syntax error, unexpected 'quote'
(T_STRING) in C:\wamp\www\string1.php on line 2
We can store multiple line text, special
characters and escape sequences in a double quoted PHP string.
Example 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";
?>
Output:
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
In double quoted strings, variable will be
interpreted.
Example 4
<?php
$num1=10;
echo "Number is: $num1";
?>
Output:
Number is: 10
Heredoc
Heredoc syntax (<<<) is the third way
to delimit strings. In Heredoc syntax, an identifier is provided after this
heredoc <<< operator, and immediately a new line is started to write
any text. To close the quotation, the string follows itself and then again that
same identifier is provided. That closing identifier must begin from the new
line without any whitespace or tab.
Naming Rules
The identifier should follow the naming rule
that it must contain only alphanumeric characters and underscores, and must
start with an underscore or a non-digit character.
Valid Example
<?php
$str
= <<<Demo
It is a valid example
Demo;
//Valid code as whitespace or tab is not valid before closing
identifier
echo $str;
?>
Output:
It is a valid example
Invalid Example
We cannot use any whitespace or tab before and
after the identifier and semicolon, which means identifier must not be
indented. The identifier must begin from the new line.
<?php
$str
= <<<Demo
It is Invalid example
Demo;
//Invalid code as whitespace or tab is not
valid before closing identifier
echo $str;
?>
This code will generate an error.
Output:
Parse error: syntax error, unexpected end of
file in C:\xampp\htdocs\xampp\PMA\heredoc.php on line 7
Heredoc is similar to the double-quoted
string, without the double quote, means that quote in a heredoc are not
required. It can also print the variable's value.
Example
<?php
$city = 'Delhi';
$str
= <<<DEMO
Hello! My name is Misthi, and I live in
$city.
DEMO;
echo
$str;
?>
Output:
Hello! My name is Misthi, and I live in Delhi.
Example
We can add multiple lines of text here between
heredoc syntax.
<?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;
?>
Output:
It is the example of multiple lines of text.
It is the example of multiple lines of text.
Below are the example with class and their
variable
Example
<?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;
?>
Output:
My name is "Gunjan". I am printing
some DEMO example.
Now, I am printing Example2.
It will print a capital 'A': A
Newdoc
Newdoc is similar to the heredoc, but in
newdoc parsing is not done. It is also identified with three less than symbols
<<< followed by an identifier. But here identifier is enclosed in
single-quote, e.g. <<<'EXP'. Newdoc follows the same rule as heredocs.
The difference between newdoc and heredoc is
that - Newdoc is a single-quoted string whereas heredoc is a double-quoted
string.
Note: Newdoc works as single quotes.
Example-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;
?>
Output:
Welcome to javaTpoint. Learn with newdoc
example.
Welcome to javaTpoint. Learn with newdoc
example.
Go to view page source and see the source of
the program.
PHP String
Example
The below example shows that newdoc does not
print the variable's value.
<?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;
?>
Output:
The output of the above program will be like:
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
Note: newdoc supported by PHP 5.3.0+ versions.
Invalid Example
We cannot use any whitespace or tab before and
after the identifier and semicolon, means identifier must not be indented. The
identifier must begin from the new line. It is also invalid in newdoc same as
heredoc.
<?php
$str
= <<<'Demo'
It is Invalid example
Demo;
//Invalid code as whitespace or tab is not valid before closing
identifier
echo $str;
?>
This code will generate an error.
Output:
Parse error: syntax error, unexpected end of
file in C:\xampp\htdocs\xampp\PMA\newdoc.php on line 7