我应该在这里做什么?



=& 参考

参考任务操作员在PHP, =& 什么意思是“=&”和“&="操作员在PHP? 什么意思是“&=”和“=&”操作员在PHP?

















PHP 中的奇怪打印行为?



= 任命运营商

三种不同的平等


如何区分PHP平等(==双等)和身份(===三等)比较操作员?PHP!=和 ==操作员3个不同的平等类型和(严格)较大的/较小的比较在PHP


=== 比较运营商






比特币运营商


上一篇: 逻辑运营商












[ ] Arrays (自 PHP 5.4 以来简短的合成)


PHP 短标签是否可用?


二角形字符范围




# One-line shell 风格评论


NullSafe Operator 通话(自 PHP 8.0 以来)

PHP 中有“零安全操作员”吗?



当前回答

增加 / 减少运营商

+ 增强运营商

排斥运营商

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 = "a";
while ($i < "c") {
    echo $i++;
}

一旦 z 到达 aa 是下一个,等等。

请注意,字符变量可以增加,但不能减少,即使如此,只有平坦的 ASCII 字符(a-z 和 A-Z)得到支持。


Stack Overflow 文章:

理解增加

其他回答

什么是 \ (backslash) 符号在 PHP

它用于逃避字符串类型或更改特定案例:

例子:

在这里使用 \r\n 和 \n 转到新行(如输入按钮)


echo "Hello world \n\r I am Herakl";

否则,您可以使用 PHP_EOL. 有一些例外. 首先,它只能在两个引用(")状态使用。

echo " Hello \\ I am robot";

在 stackoverflow 中,它看不见正确。

Backslashes 也使用在名称空间或使用条件名称:

namespace App\Http\Controllers;

use App\Models;

此外,您还应该参观关于 https://www.php.net/manual/en/function.addslashes.php 的漏洞

Null Coalesce 操作器 “??” (在 PHP 7 中添加)

不是一个运营商最受欢迎的名称,但PHP 7带来了相当方便的零冷却,所以我认为我会分享一个例子。

在PHP 5中,我们已经有一个特纳操作器,测试一个值,然后返回第二个元素,如果它返回真实,第三个元素,如果它没有:

echo $count ? $count : 10; // outputs 10

在PHP 7中,我们还获得了操作员,而不是指示极端的混乱,这就是我通常会使用两个问题标志相结合的方式,而不是允许我们连接一行值。

// $a is not set
$b = 16;

echo $a ?? 2; // outputs 2
echo $a ?? $b ?? 7; // outputs 16

这个结构是有用的,以优先考虑一个或多个值来自用户输入或现有配置,并安全地落后于一个特定的默认设置,如果该配置缺乏。

问题:

“&”在PHP中意味着什么?

PHP “&” 操作员

使生活更容易,一旦我们习惯了(仔细检查下面的例子)

通常会设置为 $a 和 $b 的检查比特。

你甚至注意到这些电话是如何工作的吗?

   error_reporting(E_ERROR | E_WARNING | E_PARSE);
    error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
    error_reporting(E_ALL & ~E_NOTICE);
    error_reporting(E_ALL);

因此,上面的一切背后是比特币运营商和比特币的游戏。

其中一个有用的案例是简单的配置,如下所示,这样一个完整的字段可以为您存储成千上万的组合。

大多数人已经阅读了这些文件,但并没有依赖于这些小型运营商的现实世界使用案例。

假设你会爱的

<?php

class Config {

    // our constants must be 1,2,4,8,16,32,64 ....so on
    const TYPE_CAT=1;
    const TYPE_DOG=2;
    const TYPE_LION=4;
    const TYPE_RAT=8;
    const TYPE_BIRD=16;
    const TYPE_ALL=31;

    private $config;

    public function __construct($config){
        $this->config=$config;

        if($this->is(Config::TYPE_CAT)){
            echo 'cat ';
        }
        if($this->is(Config::TYPE_DOG)){
            echo 'dog ';
        }
        if($this->is(Config::TYPE_RAT)){
            echo 'rat ';
        }
        if($this->is(Config::TYPE_LION)){
            echo 'lion ';
        }
        if($this->is(Config::TYPE_BIRD)){
            echo 'bird ';
        }
        echo "\n";
    }

    private function is($value){
        return $this->config & $value;
    }
}

new Config(Config::TYPE_ALL);
// cat dog rat lion bird
new Config(Config::TYPE_BIRD);
//bird
new Config(Config::TYPE_BIRD | Config::TYPE_DOG);
//dog bird
new Config(Config::TYPE_ALL & ~Config::TYPE_DOG & ~Config::TYPE_CAT);
//rat lion bird

NullSafe 操作员 “?>” 从 php8

在PHP8已经接受了这个新的运营商,你可以在这里找到文档。>它是NullSafe运营商,它返回零,如果你试图引用功能或从零获得值。

例子:

<?php
$obj = null;
$obj = $obj?->attr; //return null
$obj = ?->funct(); // return null
$obj = $objDrive->attr; // Error: Trying to get property 'attr' of non-object
?>

<=> 航天运营商

在 PHP 7 中添加

太空运营商 <=> 是 PHP 7 中添加的最新比较运营商。 它是一种与平等运营商相同的优先事项的非协作二进制运营商(==,!=, ===,!==)。 该运营商允许左手和右手运营商之间的简单三路比较。

运营商以一个完整的表达结果:

0 如果两位操作员均等 低于 0 如果左手操作员低于右手操作员 大于 0 如果左手操作员高于右手操作员

吉。

1 <=> 1; // 0
1 <=> 2; // -1
2 <=> 1; // 1

使用这个运营商的好实用应用将是比较类型的呼叫回归,预计将基于两个值之间的三路比较,返回零、负或积极的整体。

在PHP 7之前,你会写...

$arr = [4,2,1,3];

usort($arr, function ($a, $b) {
    if ($a < $b) {
        return -1;
    } elseif ($a > $b) {
        return 1;
    } else {
        return 0;
    }
});

因为 PHP 7 你可以写...

$arr = [4,2,1,3];

usort($arr, function ($a, $b) {
    return $a <=> $b;
    // return $b <=> $a; // for reversing order
});