搜索

首页  >  问答  >  正文

PHP 语法:解码符号背后的含义


这是什么?

这是关于 PHP 语法时不时出现的问题的集合。这也是一个社区 Wiki,因此邀请每个人参与维护此列表。

这是为什么?

过去很难找到有关运算符和其他语法标记的问题。 ¹

主要思想是提供 Stack Overflow 上现有问题的链接,这样我们就可以更轻松地引用它们,而不是复制 PHP 手册中的内容。

注意:自 2013 年 1 月起,Stack Overflow 开始支持特殊字符。只需用引号将搜索词括起来,例如[php]“==”与“===”

我应该在这里做什么?

如果您因为问了这样的问题而被某人指向这里,请查找下面的特定语法。 PHP 手册的链接页面以及链接的问题可能会回答您的问题。如果是这样,我们鼓励您对答案进行投票。此列表不能替代其他人提供的帮助。

列表

如果您的特定令牌未在下面列出,您可能会在解析器令牌列表中找到它。


& 位运算符或参考


=&参考文献


&= 位运算符


&& 逻辑运算符


% 算术运算符


!! 逻辑运算符


@ 错误控制运算符


?: 三元运算符


双问号

?? 空合并运算符(自 PHP 7 起)


问号后跟类型声明

?string ?int ?array ?bool ?float 可空类型声明(自 PHP 7.1 起)


?-> 问号后跟对象运算符是 NullSafe 运算符(自 PHP 8.0 起)


: 控制结构、三元运算符、返回类型声明的替代语法


:: 范围解析运算符


命名空间


-> 类和对象


=> 数组


^ 位运算符


>> 位运算符


<< 位运算符


<<< Heredoc 或 Nowdoc


= 赋值运算符


== 比较运算符


=== 比较运算符


!== 比较运算符


!= 比较运算符


<>比较运算符


<=> 比较运算符(自 PHP 7.0 起)


| 位运算符


|| 逻辑运算符


~ 位运算符


+ 算术运算符、数组运算符


+=-= 赋值运算符


++-- 递增/递减运算符


.= 赋值运算符


. 字符串运算符


, 函数参数

,变量声明


$$变量变量


`执行运算符


<?= 短开放标签


[] 数组(自 PHP 5.4 起的短语法)


<? 开始和结束标签


.. 双点字符范围


... 参数解包(自 PHP 5.6 起)


** 求幂(自 PHP 5.6 起)


# 一行 shell 式注释


#[] 属性(自 PHP 8 起)



P粉893457026P粉893457026442 天前791

全部回复(2)我来回复

  • P粉298305266

    P粉2983052662023-10-11 11:48:43

    按位运算符

    什么是一点?位代表 1 或 0。基本上是 OFF(0) 和 ON(1)

    什么是字节?一个字节由 8 位组成,一个字节的最高值为 255,这意味着每个位都被设置。我们将看看为什么一个字节的最大值是 255。

    -------------------------------------------
    |      1 Byte ( 8 bits )                  |
    -------------------------------------------
    |Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
    -------------------------------------------

    这表示1个字节

    1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255(1 字节)

    一些有助于更好理解的示例

    “AND”运算符:&

    $a =  9;
    $b = 10;
    echo $a & $b;

    这将输出数字 8。为什么?好吧,让我们看看使用我们的表格示例。

    -------------------------------------------
    |      1 Byte ( 8 bits )                  |
    -------------------------------------------
    |Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
    -------------------------------------------
    |      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
    -------------------------------------------
    |      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
    ------------------------------------------- 
    |      &     |   0|  0|  0|  0| 1| 0| 0| 0|
    -------------------------------------------

    所以你可以从表中看到它们唯一共享的位是 8 位。

    第二个例子

    $a =  36;
    $b = 103;
    echo $a & $b; // This would output the number 36.
    $a = 00100100
    $b = 01100111

    两个共享位是 32 和 4,相加后返回 36。

    “或”运算符:|

    $a =  9;
    $b = 10;
    echo $a | $b;

    这将输出数字 11。为什么?

    -------------------------------------------
    |      1 Byte ( 8 bits )                  |
    -------------------------------------------
    |Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
    -------------------------------------------
    |      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
    -------------------------------------------
    |      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
    ------------------------------------------- 
    |      |     |   0|  0|  0|  0| 1| 0| 1| 1|
    -------------------------------------------

    您会注意到我们在第 8、2 和 1 列中设置了 3 个位。将这些相加:8+2+1=11。

    回复
    0
  • P粉345302753

    P粉3453027532023-10-11 00:19:04

    递增/递减运算符< /p>

    ++ 增量运算符

    --自减运算符

    Example    Name              Effect
    ---------------------------------------------------------------------
    ++$a       Pre-increment     Increments $a by one, then returns $a.
    $a++       Post-increment    Returns $a, then increments $a by one.
    --$a       Pre-decrement     Decrements $a by one, then returns $a.
    $a--       Post-decrement    Returns $a, then decrements $a by one.
    

    它们可以位于变量之前或之后。

    如果放在变量之前,则对变量进行增减操作,然后返回结果。如果放在变量后面,首先返回该变量,然后进行递增/递减操作。

    例如:

    $apples = 10;
    for ($i = 0; $i < 10; ++$i) {
        echo 'I have ' . $apples-- . " apples. I just ate one.\n";
    }

    实例

    在上面的例子中使用了++$i,因为它更快。 $i++ 会有相同的结果。

    预递增要快一点,因为它确实递增变量,然后“返回”结果。后增量创建一个特殊变量,将第一个变量的值复制到其中,并且仅在使用第一个变量后,将其值替换为第二个变量的值。

    但是,您必须使用 $apples--,因为首先您要显示当前的苹果数量,然后您要从中减去一个。

    您还可以在 PHP 中递增字母:

    $i = "a";
    while ($i < "c") {
        echo $i++;
    }

    一旦到达 z,接下来就是 aa,依此类推。


    堆栈溢出帖子:

    回复
    0
  • 取消回复