首页后端开发JAVAPHP官方手册研读--数据类型:字符串(php字符串型数据的定义方式)

PHP官方手册研读--数据类型:字符串(php字符串型数据的定义方式)

时间2023-03-24 17:24:49发布访客分类JAVA浏览1381
导读:分享读PHP官方手册一点点心得;五一闲置在家,撸代码之余,读读“拍黄片”官方手册,巩固下“拍黄片”基础(PHP);一个字符串可以用 4 种方式表达:单引号双引号heredoc 语法结构nowdoc 语法结构单引号不会解析变量,要表达一个单引...

分享读PHP官方手册一点点心得;

五一闲置在家,撸代码之余,读读“拍黄片”官方手册,巩固下“拍黄片”基础(PHP);

一个字符串可以用 4 种方式表达:

  • 单引号
  • 双引号
  • heredoc 语法结构
  • nowdoc 语法结构

单引号

不会解析变量,要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\)。转义字符不会被转义

双引号

会解析变量,同样要表达一个双引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\)。转义字符会被转义

Heredoc 语法结构

解读Heredoc会解析变量,Heredoc 结构就象是没有使用双引号的双引号字符串; heredoc 句法结构: 。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志。 注意:heredoc 结构中单双引号不用被转义, 结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头

?php
$name='ChenDasheng';
    
echo EOT
My name is "$name" ;
    
EOT;
    
// My name is "ChenDasheng" ;
    

PHP

Copy

Nowdoc 结构

解读Nowdoc不会解析变量,和Heredoc 结构恰恰相反,Nowdoc 结构是类似于单引号字符串的; Nowdoc 句法结构: nowdoc 结构也用和 heredocs 结构一样的标记 , 但是跟在后面的标识符要用单引号括起来,即 'EOT' 。 注意: Heredoc 结构的所有规则也同样适用于 nowdoc 结构,尤其是结束标识符的规则。

?php
$name='ChenDasheng';
    
echo 'EOT'
My name is "$name" ;
    
EOT;
    
// My name is "$name" ;
    

PHP

Copy

字符串变量解析

当字符串用双引号或 heredoc 结构定义时,其中的变量将会被解析。 共有两种语法规则:一种简单规则,一种复杂规则。 简单的语法规则是最常用和最方便的,它可以用最少的代码在一个 string 中嵌入一个变量,一个 array 的值,或一个 object 的属性。 简单示例:

?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 .

PHP

Copy

复杂(花括号)语法

复杂语法不是因为其语法复杂而得名,而是因为它可以使用复杂的表达式。 简单示例:

?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

Copy

参考文献:PHP官方手册

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

php变量数据类型语法字符串

若转载请注明出处: PHP官方手册研读--数据类型:字符串(php字符串型数据的定义方式)
本文地址: https://pptw.com/jishu/144.html
IDEA 重写方法时带注释 Typecho博客网站底部添加网站已运行时间教程(typecho博客插件)

游客 回复需填写必要信息