һ���ַ��� string ������һϵ�е��ַ���ɣ�����ÿ���ַ���ͬ��һ���ֽڡ�����ζ�� PHP ֻ��֧�� 256 ���ַ�������˲�֧�� Unicode ������ַ������������
Note: string �����Դﵽ 2GB��
һ���ַ��������� 4 �ַ�ʽ��
����һ���ַ�������ķ������õ����Ű�����Χ�������ַ� '����
Ҫ���һ��������������������ǰ��Ӹ���б�ߣ�\����ת�塣Ҫ���һ����б����������������б�ߣ�\\���������κη�ʽ�ķ�б�߶��ᱻ���ɷ�б�߱���Ҳ����˵�����ʹ������ת���������� \r ���� \n�����������κ����⺬�壬�͵������������ַ�����
Note: ����˫������ heredoc ��ṹ���ڵ������ַ����е������������ַ���ת�����н��������滻��
<?php
echo 'this is a simple string';
// ����¼�����
echo 'You can also have embedded newlines in
strings this way as it is
okay to do';
// ����� Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';
// ����� You deleted C:\*.*?
echo 'You deleted C:\\*.*?';
// ����� You deleted C:\*.*?
echo 'You deleted C:\*.*?';
// ����� This will not expand: \n a newline
echo 'This will not expand: \n a newline';
// ����� Variables do not $expand $either
echo 'Variables do not $expand $either';
?>
����ַ����ǰ�Χ��˫���ţ�"���У� PHP ����һЩ������ַ����н�����
���� | ���� |
---|---|
\n | ���У�ASCII �ַ����е� LF �� 0x0A (10)�� |
\r | �س���ASCII �ַ����е� CR �� 0x0D (13)�� |
\t | ˮƽ�Ʊ����ASCII �ַ����е� HT �� 0x09 (9)�� |
\v | ��ֱ�Ʊ����ASCII �ַ����е� VT �� 0x0B (11)������ PHP 5.2.5 �� |
\e | Escape��ASCII �ַ����е� ESC �� 0x1B (27)������ PHP 5.4.0 �� |
\f | ��ҳ��ASCII �ַ����е� FF �� 0x0C (12)������ PHP 5.2.5 �� |
\\ | ��� |
\$ | ��Ԫ��� |
\" | ˫���� |
\[0-7]{1,3} | ���ϸ�������ʽ���е���һ���˽��Ʒ�ʽ�������ַ� |
\x[0-9A-Fa-f]{1,2} | ���ϸ�������ʽ���е���һ����ʮ�����Ʒ�ʽ�������ַ� |
�͵������ַ���һ����ת���κ������ַ����ᵼ�·�б�߱���ʾ������PHP 5.1.1 ��ǰ��\{$var} �еķ�б�����ᱻ��ʾ������
��˫���Ŷ�����ַ�������Ҫ�������DZ����ᱻ�������������������
�����ֱ���ַ����ķ������� heredoc �䷨�ṹ��<<<���ڸ������֮��Ҫ�ṩһ����ʶ����Ȼ���С����������ַ��� string �������Ҫ��ǰ�涨��ı�ʶ����Ϊ������־��
����ʱ�����õı�ʶ�������ڸ��еĵ�һ�У����ң���ʶ��������ҲҪ��������ǩһ������ PHP �Ĺ���ֻ�ܰ�����ĸ�����ֺ��»��ߣ����ұ�������ĸ���»�����Ϊ��ͷ��
Ҫע����ǽ�����ʶ�����г���������һ���ֺţ�;���⣬���Բ��ܰ��������ַ�������ζ�ű�ʶ�������������ֺŵ�ǰ��Ҳ�������κοհ��Ʊ��������Ҫ���ǽ�����ʶ����ǰ������Ǹ������ز���ϵͳ�ϿɵĻ��У������� UNIX �� Mac OS X ϵͳ���� \n�����������������������и��ֺţ�֮��Ҳ�������һ�����С�
��������ظù����½�����ʶ��"�ɾ�"��PHP ����Ϊ�����ǽ�����ʶ��������Ѱ�ҡ�������ļ�����ǰҲû���ҵ�һ����ȷ�Ľ�����ʶ����PHP ���������һ�в���һ����������
Heredocs �ṹ����������ʼ��������ԡ��� PHP 5.3 �𣬴����ƽ��� heredoc ��������ʱ��Ч��
Example #1 �Ƿ���ʾ��
<?php
class foo {
public $bar = <<<EOT
bar
EOT;
}
?>
Heredoc �ṹ������û��ʹ��˫���ŵ�˫�����ַ����������˵�� heredoc �ṹ�е����Ų��ñ�ת�壬�����������г���ת�����л�����ʹ�á����������滻������ heredoc �ṹ�к��и��ӵı���ʱҪ����С�ġ�
Example #2 Heredoc �ṹ���ַ���ʾ��
<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
/* ���б����ĸ�����ʾ�� */
class foo
{
var $foo;
var $bar;
function foo()
{
$this->foo = 'Foo';
$this->bar = array('Bar1', 'Bar2', 'Bar3');
}
}
$foo = new foo();
$name = 'MyName';
echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>
�������̻������
My name is "MyName". I am printing some Foo. Now, I am printing some Bar2. This should print a capital 'A': A
Ҳ���� Heredoc �ṹ���ں������������������ݣ�
Example #3 Heredoc �ṹ�ڲ����е�ʾ��
<?php
var_dump(array(<<<EOD
foobar!
EOD
));
?>
�� PHP 5.3.0 �Ժ�Ҳ������ Heredoc �ṹ����ʼ����̬������������Ժͳ�����
Example #4 ʹ�� Heredoc �ṹ����ʼ����ֵ̬
<?php
// ��̬����
function foo()
{
static $bar = <<<LABEL
Nothing in here...
LABEL;
}
// ��ij���������
class foo
{
const BAR = <<<FOOBAR
Constant example
FOOBAR;
public $baz = <<<FOOBAR
Property example
FOOBAR;
}
?>
�� PHP 5.3.0 ������ Heredoc �ṹ����˫������������ʶ����
Example #5 �� heredoc �ṹ��ʹ��˫����
<?php
echo <<<"FOOBAR"
Hello World!
FOOBAR;
?>
���� heredoc �ṹ������˫�����ַ�����Nowdoc �ṹ�������ڵ������ַ����ġ�Nowdoc �ṹ���� heredoc �ṹ������ nowdoc �������н������������ֽṹ���ʺ�����Ƕ�� PHP �������������ı�����������е������ַ�����ת�塣�� SGML �� <![CDATA[ ]]> �ṹ������������εIJ��ý������ı����ƣ�nowdoc �ṹҲ����ͬ��������
һ�� nowdoc �ṹҲ�ú� heredocs �ṹһ���ı�� <<<�� ���Ǹ��ں���ı�ʶ��Ҫ�õ��������������� <<<'EOT'��Heredoc �ṹ�����й���Ҳͬ�������� nowdoc �ṹ�������ǽ�����ʶ���Ĺ���
Example #6 Nowdoc �ṹ�ַ���ʾ��
<?php
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;
/* ���б����ĸ����ӵ�ʾ�� */
class foo
{
public $foo;
public $bar;
function foo()
{
$this->foo = 'Foo';
$this->bar = array('Bar1', 'Bar2', 'Bar3');
}
}
$foo = new foo();
$name = 'MyName';
echo <<<'EOT'
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': \x41
EOT;
?>
�������̻������
My name is "$name". I am printing some $foo->foo. Now, I am printing some {$foo->bar[1]}. This should not print a capital 'A': \x41
Note:
���� heredoc �ṹ��nowdoc �ṹ������������ľ�̬���ݻ����У�����͵�ʾ����������ʼ��������Ի�����
Example #7 ��̬���ݵ�ʾ��
<?php
class foo {
public $bar = <<<'EOT'
bar
EOT;
}
?>
Note:
Nowdoc �ṹ���� PHP 5.3.0 �м���ġ�
���ַ�����˫���Ż� heredoc �ṹ����ʱ�����е��������ᱻ������
���ﹲ�����������һ��������һ�������������������ú����ģ������������ٵĴ�����һ�� string ��Ƕ��һ��������һ�� array ��ֵ����һ�� object �����ԡ�
���ӹ����������������û����Ű�Χ�ı��ʽ��
�� PHP ����������һ����Ԫ���ţ�$��ʱ������������ܶ������һ����ȥ��Ͼ�����ı�ʶ���γ�һ���Ϸ��ı������������û���������ȷ�������Ľ��ߡ�
<?php
$juice = "apple";
echo "He drank some $juice juice.".PHP_EOL;
// Invalid. "s" is a valid character for a variable name, but the variable is $juice.
echo "He drank some juice made of $juices.";
?>
�������̻������
He drank some apple juice. He drank some juice made of .
���Ƶģ�һ�� array ������һ�� object ����Ҳ�ɱ���������������Ҫ�÷����ţ�]������ʾ���������ıʣ������������Ǻ������ı���������ͬ��
Example #8 ���ʾ��
<?php
$juices = array("apple", "orange", "koolaid1" => "purple");
echo "He drank some $juices[0] juice.".PHP_EOL;
echo "He drank some $juices[1] juice.".PHP_EOL;
echo "He drank some juice made of $juice[0]s.".PHP_EOL; // Won't work
echo "He drank some $juices[koolaid1] juice.".PHP_EOL;
class people {
public $john = "John Smith";
public $jane = "Jane Smith";
public $robert = "Robert Paulsen";
public $smith = "Smith";
}
$people = new people();
echo "$people->john drank some $juices[0] juice.".PHP_EOL;
echo "$people->john then said hello to $people->jane.".PHP_EOL;
echo "$people->john's wife greeted $people->robert.".PHP_EOL;
echo "$people->robert greeted the two $people->smiths."; // Won't work
?>
�������̻������
He drank some apple juice. He drank some orange juice. He drank some juice made of s. He drank some purple juice. John Smith drank some apple juice. John Smith then said hello to Jane Smith. John Smith's wife greeted Robert Paulsen. Robert Paulsen greeted the two .
�����Ҫ�������ӵĽṹ�����ø������
�����������Ϊ������Ӷ�������������Ϊ������ʹ�ø��ӵı��ʽ��
�κξ��� string ���ı������������鵥Ԫ��������Զ���ʹ�ô����ֻ������� string ����ĵط�����д�����ʽ��Ȼ���û����� { �� } �������������ɡ����� { ����ת�壬ֻ�� $ ������ { ʱ�Żᱻʶ�𡣿����� {\$ ����� {$�������ʾ�����Ը��õĽ��ͣ�
<?php
// ��ʾ���д���
error_reporting(E_ALL);
$great = 'fantastic';
// �������: This is { fantastic}
echo "This is { $great}";
// ��������� This is fantastic
echo "This is {$great}";
echo "This is ${great}";
// ��Ч
echo "This square is {$square->width}00 centimeters broad.";
// ��Ч��ֻ��ͨ���������������ȷ���������ŵļ���
echo "This works: {$arr['key']}";
// ��Ч
echo "This works: {$arr[4][3]}";
// ���Ǵ���ı��ʽ����Ϊ���� $foo[bar] �ĸ�ʽ���ַ�������Ҳ�Ǵ��һ����
// ���仰˵��ֻ���� PHP ���ҵ����� foo ��ǰ���²Ż�������������������һ��
// E_NOTICE (undefined constant) ����Ĵ���
echo "This is wrong: {$arr[foo][3]}";
// ��Ч�������ַ�����ʹ�ö�������ʱ��һ��Ҫ�����Ž���������
echo "This works: {$arr['foo'][3]}";
// ��Ч
echo "This works: " . $arr['foo'][3];
echo "This works too: {$obj->values[3]->name}";
echo "This is the value of the var named $name: {${$name}}";
echo "This is the value of the var named by the return value of getName(): {${getName()}}";
echo "This is the value of the var named by the return value of \$object->getName(): {${$object->getName()}}";
// ��������� This is the return value of getName(): {getName()}
echo "This is the return value of getName(): {getName()}";
?>
Ҳ�������ַ������ô��ͨ������������������ԡ�
<?php
class foo {
var $bar = 'I am bar.';
}
$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo "{$foo->$bar}\n";
echo "{$foo->{$baz[1]}}\n";
?>
�������̻������
Note:
��������������̬��������ೣ��ֻ���� PHP 5 �Ժ�ſ��� {$} ��ʹ�á�Ȼ����ֻ���ڸ��ַ���������������ռ��вſ��Խ���ֵ��Ϊ�����������ʡ�ֻ��һʹ�û����� ({}) ������Ӻ������ķ���ֵ�����ೣ���Լ��ྲ̬������ֵ��
<?php
// ��ʾ���д���
error_reporting(E_ALL);
class beers {
const softdrink = 'rootbeer';
public static $ale = 'ipa';
}
$rootbeer = 'A & W';
$ipa = 'Alexander Keith\'s';
// ��������� I'd like an A & W
echo "I'd like an {${beers::softdrink}}\n";
// Ҳ��Ч������� I'd like an Alexander Keith's
echo "I'd like an {${beers::$ale}}\n";
?>
string �е��ַ�����ͨ��һ���� 0 ��ʼ���±꣬������ array �ṹ�еķ����Ű�����Ӧ�����������ʺ��ģ����� $str[42]������ string �����ַ���ɵ� array������ substr() �� substr_replace() �����ڲ�������һ���ַ��������
Note: string Ҳ���û����ŷ��ʣ����� $str{42}��
�ó����ַ������ȵ��±�д�뽫���������ַ������Կո���䡣�����������±�ᱻת�����������Ƿ��±����ͻ����һ��
E_NOTICE
��������ø����±�д���ַ���ʱ�����һ�� E_NOTICE
��������ø����±��ȡ�ַ���ʱ���ؿ��ַ�����д��ʱֻ�õ��˸�ֵ�ַ����ĵ�һ���ַ����ÿ��ַ�����ֵ����ֵ��
NULL �ַ���
PHP ���ַ������ڲ����ֽ���ɵ����顣����û����ŷ��ʻ����ַ����Զ��ֽ��ַ����ܲ���ȫ����Ӧ�Ե��ֽڱ������� ISO-8859-1 ���ַ������д��������
Example #9 һЩ�ַ���ʾ��
<?php
// ȡ���ַ����ĵ�һ���ַ�
$str = 'This is a test.';
$first = $str[0];
// ȡ���ַ����ĵ������ַ�
$third = $str[2];
// ȡ���ַ��������һ���ַ�
$str = 'This is still a test.';
$last = $str[strlen($str)-1];
// ���ַ��������һ���ַ�
$str = 'Look at the sea';
$str[strlen($str)-1] = 'e';
?>
�� PHP 5.4 ���ַ����±����Ϊ�������ת��Ϊ�������ַ���������ᷢ�����档֮ǰ���� "foo" ���±��������ת���� 0��
Example #10 PHP 5.3 �� PHP 5.4 ������
<?php
$str = 'abc';
var_dump($str['1']);
var_dump(isset($str['1']));
var_dump($str['1.0']);
var_dump(isset($str['1.0']));
var_dump($str['x']);
var_dump(isset($str['x']));
var_dump($str['1x']);
var_dump(isset($str['1x']));
?>
����������PHP 5.3������
string(1) "b" bool(true) string(1) "b" bool(true) string(1) "a" bool(true) string(1) "b" bool(true)
����������PHP 5.4������
string(1) "b" bool(true) Warning: Illegal string offset '1.0' in /tmp/t.php on line 7 string(1) "b" bool(false) Warning: Illegal string offset 'x' in /tmp/t.php on line 9 string(1) "a" bool(false) string(1) "b" bool(false)
Note:
�� [] �� {} �����κ��������ͣ�����������������Ӧ�ӿڵĶ���ʵ�֣��ı���ֻ�������ط���
NULL
��
Note:
PHP 5.5 ������ֱ�����ַ���ԭ������ [] �� {} �����ַ���֧�֡�
�ַ��������� '.'���㣩���������������ע�� '+'���Ӻţ������û��������ܡ�������Ϣ�ο��ַ����������
���� string �IJ����кܶ����õĺ�����
���Բο��ַ��������˽�ֺ��������IJ������滻���ܿ��Բο�������ʽ������ Perl ����������ʽ������
����� URL �ַ���������Ҳ�м��ܣ������ַ����ĺ�����mcrypt �� mhash����
����Բο��ַ����ͺ�����
һ��ֵ����ͨ������ǰ����� (string) ���� strval() ������ת����ַ�������һ����Ҫ�ַ����ı��ʽ�У����Զ�ת��Ϊ string��������ʹ�ú��� echo �� print ʱ������һ��������һ�� string ���бȽ�ʱ���ͻᷢ������ת��������������ת�����Ը��õĽ�����������飬Ҳ�ɲο����� settype()��
һ������ֵ boolean �� TRUE
��ת���� string ��
"1"��Boolean �� FALSE
��ת����
""�����ַ�����������ת�������� boolean
�� string ֮������С�
һ������ integer ���� float ��ת��Ϊ���ֵ�������ʽ�� string������ float �е�ָ�����֣���ʹ��ָ���������ĸ�������4.1E+6��Ҳ��ת����
Note:
�ڽű�������category LC_NUMERIC���ж�����ʮ����С�����ַ����μ� setlocale()��
���� array ����ת�����ַ��� "Array"����ˣ�echo �� print ����ʾ�������������ݡ�Ҫ��ʾij����Ԫ�������� echo $arr['foo'] ���ֽṹ��Ҫ��ʾ�����������ݼ����ġ�
�� PHP 4 �ж��� object ���DZ�ת�����ַ��� "Object"�����Ϊ�˵���ԭ����Ҫ��ӡ�������ֵ��������Ķ����ġ�Ϊ�˵õ������������ƣ������� get_class() �������� PHP 5 ���ʵ�ʱ������ __toString ������
��Դ resource �ܻᱻת��� "Resource id #1" ���ֽṹ���ַ��������е� 1 �� PHP ������ʱ������� resource ��Ψһֵ����Ҫ�����˽ṹ�����ܻ��б����Ҫ�õ�һ�� resource �����ͣ������ú��� get_resource_type()��
NULL
���DZ�ת��ɿ��ַ�����
��������˵�ģ�ֱ�Ӱ� array��object �� resource ת���� string ����õ�����������֮����κ�������Ϣ������ʹ�ú��� print_r() �� var_dump() �г���Щ���͵����ݡ�
�ֵ� PHP ֵ����ת��� string �����ñ��棬�ⱻ�������л��������ú��� serialize() ��ʵ�֡���� PHP �����趨֧�� WDDX��PHP ֵҲ�ɱ����л�Ϊ��ʽ���õ� XML �ı���
��һ���ַ���������һ����ֵ��ȡֵ���������������£�
������ַ���û�а��� '.'��'e' �� 'E'
����������ֵ�����͵ķ�Χ֮�ڣ��� PHP_INT_MAX
�����壩�����ַ����������� integer
��ȡֵ��������������¶�����Ϊ float ��ȡֵ��
���ַ����Ŀ�ʼ���־���������ֵ��������ַ����ԺϷ�����ֵ��ʼ����ʹ�ø���ֵ��������ֵΪ 0���㣩���Ϸ���ֵ�ɿ�ѡ�������ţ��������һ���������֣�������С���㣩���ٸ��ſ�ѡ��ָ�����֡�ָ�������� 'e' �� 'E' �������һ���������ֹ��ɡ�
<?php
$foo = 1 + "10.5"; // $foo is float (11.5)
$foo = 1 + "-1.3e3"; // $foo is float (-1299)
$foo = 1 + "bob-1.3e3"; // $foo is integer (1)
$foo = 1 + "bob3"; // $foo is integer (1)
$foo = 1 + "10 Small Pigs"; // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1; // $foo is float (11)
$foo = "10.0 pigs " + 1.0; // $foo is float (11)
?>
������Ϣ���Բο� Unix �ֲ��е� strtod(3)��
�����е�ʾ������ͨ�����ƣ�ճ��������Ĵ���������ʾ��
<?php
echo "\$foo==$foo; type is " . gettype ($foo) . "<br />\n";
?>
��Ҫ������ C �����е�������ͨ����һ���ַ�ת���������Եõ�����롣ʹ�ú��� ord() �� chr() ʵ�� ASCII ����ַ����ת����
PHP �е� string ��ʵ�ַ�ʽ��һ�����ֽ���ɵ������ټ���һ������ָ�����������ȡ�������ν��ֽ�ת�����ַ�����Ϣ���ɳ���Ա���������ַ�����ʲôֵ����ɲ������ƣ��ر�ģ���ֵΪ 0��"NUL bytes"�����ֽڿ��Դ����ַ����κ�λ�ã������м����������ڱ��ֲ��б���Ϊ��"�����ư�ȫ"�ģ�Ҳ���� NUL �ֽ�֮�������ȫ�����ԣ���
�ַ������͵Ĵ����Խ�����Ϊʲô PHP ��û�е�����"byte"���� - �Ѿ����ַ����������ˡ����ط��ı�ֵ�ĺ��� - ������������ֶ�ȡ���������� - �Ի᷵���ַ�����
���� PHP �����ر�ָ���ַ����ı��룬���ַ�������������������أ������ַ��� "��" �����ǵ��� "\xE1"��ISO-8859-1����"\xC3\xA1"��UTF-8��C form����"\x61\xCC\x81"��UTF-8��D form�������κ��������ܵı���أ������ַ����ᱻ���ոýű��ļ���ͬ�ı��뷽ʽ�����롣������һ���ű��ı����� ISO-8859-1�������е��ַ���Ҳ�ᱻ����Ϊ ISO-8859-1���Դ����ơ������Ⲣ�������ڼ����� Zend Multibyte ʱ����ʱ�ű����������κη�ʽ����ģ���ȷָ�����Զ���⣩Ȼ��ת��Ϊij���ڲ����룬Ȼ���ַ��������ô˷�ʽ���롣ע��ű��ı�����һЩԼ������������� Zend Multibyte �������ڲ����룩- ����ζ�Ŵ˱���Ӧ���� ASCII �ļ��ݳ��������� UTF-8 �� ISO-8859-1������Ҫע�⣬����״̬�ı���������ͬ���ֽ�ֵ������������ĸ�ͷ�����ĸ��ת��״̬������ܻ�������⡣
��Ȼ�ˣ�Ҫ�������ã������ı��ĺ�������ٶ��ַ�������α���ġ����ҵ��ǣ�PHP ���ڴ˵ĺ����кܶ���֣�
���Ҫ��д�ܹ���ȷʹ�� Unicode �ij��������ں�С�ĵر�����Щ���ܻ������ݵĺ�����Ҫʹ�������� intl �� mbstring ��չ�ĺ���������ʹ���ܴ��� Unicode ����ĺ���ֻ�Ǹ���ʼ�������ú��������ṩ�ĺ�����������Ļ����˽� Unicode �������һ����������ٶ�ֻ�д�д��Сд���ǿ��Ǵ���ش�