参考 - 这个符号在PHP中意味着什么? PHP中的运算符

问题描述 投票:4154回答:18

What is this?

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

Why is this?

过去很难找到关于运算符和其他语法标记的问题.¹ 主要思想是链接到Stack Overflow上的现有问题,因此我们更容易引用它们,而不是复制PHP手册中的内容。

注意:自2013年1月起,Stack Overflow does support special characters。只需用引号括住搜索字词,例如: [php] "==" vs "==="

What should I do here?

如果您因为提出这样的问题而被某人指向此处,请在下面找到具体的语法。 PHP manual的链接页面以及链接的问题可能会回答您的问题。如果是这样,我们鼓励您提出答案。此列表并不代替其他人提供的帮助。

列表

如果您的特定令牌未在下面列出,您可以在List of Parser Tokens中找到它。


& Bitwise OperatorsReferences


=& References


&= Bitwise Operators


&& Logical Operators


% Arithmetic Operators


!! Logical Operators


@ Error Control Operators


?: Ternary Operator


?? Null Coalesce Operator(自PHP 7起)


?string ?int ?array ?bool ?float Nullable return type declaration(自PHP 7.1起)


: Alternative syntax for control structuresTernary Operator


:: Scope Resolution Operator


\ Namespaces


-> Classes And Objects


=> Arrays


^ Bitwise Operators


>> Bitwise Operators


<< Bitwise Operators


<<< Heredoc or Nowdoc


= Assignment Operators


== Comparison Operators


=== Comparison Operators


!== Comparison Operators


!= Comparison Operators


<> Comparison Operators


<=> Comparison Operators(自PHP 7.0起)


| Bitwise Operators


|| Logical Operators


~ Bitwise Operators


+ Arithmetic OperatorsArray Operators


+=-= Assignment Operators


++-- Incrementing/Decrementing Operators


.= Assignment Operators


. String Operators


, Function Arguments

, Variable Declarations


$$ Variable Variables


` Execution Operator


<?= Short Open Tags


[] Arrays(PHP 5.4以来的短语法)


<? Opening and Closing tags


... Argument unpacking(自PHP 5.6起)


** Exponentiation(自PHP 5.6起)


# One-line shell-style comment


:? Nullable return types


php operators symbols php-5.3
18个回答
1073
投票

Incrementing / Decrementing Operators

++增量运算符

--减少运营商

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";
}

Live example

在上面的情况下使用++$i,因为它更快。 $i++会有相同的结果。

预增量稍微快一些,因为它确实增加了变量,然后'返回'结果。后增量创建一个特殊变量,在那里复制第一个变量的值,并且只有在使用第一个变量之后,才用第二个变量替换它的值。

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

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

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

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

请注意,字符变量可以递增但不递减,即使只支持纯ASCII字符(a-z和A-Z)。


Stack Overflow帖子:


64
投票

{}卷曲的大括号

关于最后一篇文章的一些话

$x[4] = 'd'; // it works
$x{4} = 'd'; // it works

$echo $x[4]; // it works
$echo $x{4}; // it works

$x[] = 'e'; // it works
$x{} = 'e'; // does not work

$x = [1, 2]; // it works
$x = {1, 2}; // does not work

echo "${x[4]}"; // it works
echo "${x{4}}"; // does not work

echo "{$x[4]}"; // it works
echo "{$x{4}}"; // it works

57
投票

空结合运算符(??)

在PHP 7.0中添加了此运算符,用于需要将三元运算符与isset()结合使用的常见情况。它返回第一个操作数(如果存在)并且不是NULL;否则返回第二个操作数。

<?php
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>

56
投票

PHP字符串:PHP字符串可以通过四种方式指定,而不仅仅是两种方式:

1)单引号字符串:

$string = 'This is my string'; // print This is my string

2)双引号字符串:

$str = 'string';

$string = "This is my $str"; // print This is my string

3)Heredoc:

$string = <<<EOD
This is my string
EOD; // print This is my string

4)Nowdoc(自PHP 5.3.0起):

$string = <<<'END_OF_STRING'
    This is my string 
END_OF_STRING; // print This is my string

40
投票

题:

=>是什么意思?


回答:

=>是我们人类决定用来在联想阵列中分离"Key" => "Value"对的符号。

阐述:

要理解这一点,我们必须知道关联数组是什么。当传统程序员想到一个数组(在PHP中)时出现的第一件事就是类似于:

$myArray1 = array(2016, "hello", 33);//option 1

$myArray2 = [2016, "hello", 33];//option 2

$myArray3 = [];//option 3
$myArray3[] = 2016; 
$myArray3[] = "hello"; 
$myArray3[] = 33;

如果我们想在代码的后面部分调用数组,我们可以这样做:

echo $myArray1[1];// output: hello
echo $myArray2[1];// output: hello
echo $myArray3[1];// output: hello

到现在为止还挺好。然而,作为人类,我们可能会发现很难记住数组的索引[0]是2016年的值,数组的索引[1]是一个问候,而数组的索引[2]是一个简单的整数值。我们将拥有的另一种选择是使用所谓的关联数组。关联数组与顺序数组有一些差异(这是之前的情况,因为它们增加了预定序列中使用的索引,通过对每个后续值递增1)。

差异(顺序和关联数组之间):

  • 继承一个关联数组的声明,你不仅要包含你想要放在数组中的value,还要在后面的部分中调用你想要使用的索引值(称为key)的代码。在声明期间使用以下语法:"key" => "value"
  • 当使用关联数组时,key值将被放置在数组的索引内以检索所需的value

例如:

    $myArray1 = array( 
        "Year" => 2016, 
        "Greetings" => "hello", 
        "Integer_value" => 33);//option 1

    $myArray2 = [ 
        "Year" =>  2016, 
        "Greetings" => "hello", 
        "Integer_value" => 33];//option 2

    $myArray3 = [];//option 3
    $myArray3["Year"] = 2016; 
    $myArray3["Greetings"] = "hello"; 
    $myArray3["Integer_value"] = 33;

现在,要获得与以前相同的输出,key值将用于数组索引:

echo $myArray1["Greetings"];// output: hello
echo $myArray2["Greetings"];// output: hello
echo $myArray3["Greetings"];// output: hello

最后一点:

因此,从上面的例子中,很容易看出=>符号用于表示阵列中值的启动期间阵列中每个keyvalue对之间的关​​联数组的关系。


30
投票

题:

PHP中的“&”是什么意思?

PHP "&" operator

一旦我们习惯了,生活会变得更轻松..(仔细查看下面的例子)

&通常检查设置在$ 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);

所以上面的所有内容都是按位运算符和位的游戏。

其中一个有用的例子是简单的配置,如下面给出的,所以一个整数字段可以为你存储数千个组合。

大多数人已经阅读过这些文档,但没有说明这些按位运算符的实际用例。

Example That you 'll love

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

24
投票

==用于检查相等性而不考虑可变数据类型

===用于检查变量值*和**数据类型的相等性

Example

$a = 5

  1. if ($a == 5) - 将评估为真
  2. if ($a == '5') - 将评估为true,因为在比较这两个值时,php会在内部将该字符串值转换为整数,然后比较这两个值
  3. if ($a === 5) - 将评估为真
  4. if ($a === '5') - 将评估为false,因为值为5,但此值5不是整数。

23
投票

Null Coalesce Operator php

对于需要与isset()一起使用三元数的常见情况,已将空合并运算符(??)添加到PHP7中。它返回第一个操作数(如果存在)并且不为NULL,否则返回其第二个操作数,如下例所示:

$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; 

21
投票

Null Coalesce运算符“??” (在PHP 7中添加)

不是运营商最糟糕的名字,但PHP 7引入了相当方便的空合并,所以我想我会分享一个例子。

在PHP 5中,我们已经有一个三元运算符,它测试一个值,然后返回第二个元素,如果返回true,则返回第三个元素,如果不是:

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

还有一个简写,它允许你跳过第二个元素,如果它与第一个元素相同:echo $ count?:10; //也输出10

在PHP 7中我们另外得到??运算符,而不是表示极端混乱,而不是我通常会一起使用两个问号,而是允许我们将一串值链接在一起。从左到右读取,存在且不为null的第一个值是将返回的值。

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

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

此构造对于为来自用户输入或现有配置的一个或多个值赋予优先级非常有用,并且如果缺少该配置,则安全地回退到给定的默认值。这是一个小功能,但我知道,只要我的应用程序升级到PHP 7,我就会使用它。


7
投票

可空的返回类型声明

PHP 7增加了对返回类型声明的支持。与参数类型声明类似,返回类型声明指定将从函数返回的值的类型。返回类型声明可以使用相同的类型,可用于参数类型声明。

严格键入也会对返回类型声明产生影响。在默认的弱模式下,如果返回的值不是那种类型,则它们将被强制转换为正确的类型。在强模式下,返回的值必须是正确的类型,否则将引发TypeError。

从PHP 7.1.0开始,通过在类型名称前加上问号(?),可以将返回值标记为可为空。这表示该函数返回指定的类型或NULL。

<?php
function get_item(): ?string {
    if (isset($_GET['item'])) {
        return $_GET['item'];
    } else {
        return null;
    }
}
?>

Source


408
投票

Bitwise Operator

有点什么?位是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字节)

A few examples for better understanding

“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。

“Or”运算符:|

$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。


257
投票

_ Alias for gettext()

_()中的下划线字符'_'是gettext()函数的别名。


248
投票
Syntax    Name             Description

x == y    Equality         True if x and y have the same key/value pairs
x != y    Inequality       True if x is not equal to y
x === y   Identity         True if x and y have the same key/value pairs
                            in the same order and of the same types
x !== y   Non-identity     True if x is not identical to y
++ x      Pre-increment    Increments x by one, then returns x
x ++      Post-increment   Returns x, then increments x by one
-- x      Pre-decrement    Decrements x by one, then returns x
x --      Post-decrement   Returns x, then decrements x by one
x and y   And              True if both x and y are true x=6 y=3
                           (x < 10 and y > 1) returns true 
x && y    And              True if both x and y are true x=6 y=3
                           (x < 10 && y > 1) returns true
a . b     Concatenation    Concatenate two strings: "Hi" . "Ha"

237
投票

<=> Spaceship Operator

Added in PHP 7

spaceship operator <=>是PHP 7中添加的最新比较运算符。它是一个非关联二元运算符,具有与相等运算符相同的优先级(==!====!==)。该运算符允许在左手操作数和右手操作数之间进行更简单的三向比较。

运算符导致整数表达式为:

  • 当两个操作数相等时,0
  • 当左侧操作数小于右侧操作数时,小于0
  • 当左侧操作数大于右侧操作数时,大于0

EG

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

使用此运算符的一个很好的实际应用是比较类型的回调,预期基于两个值之间的三向比较返回零,负或正整数。传递给usort的比较函数就是这样一个例子。

Before PHP 7 you would write...

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

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

Since PHP 7 you can write...

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

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

217
投票

魔术常数:虽然这些不仅仅是符号,而是这个象征家族的重要组成部分。有八个魔法常数会根据它们的使用位置而改变。

__LINE__:文件的当前行号。

__FILE__:文件的完整路径和文件名。如果在include中使用,则返回包含文件的名称。从PHP 4.0.2开始,__FILE__总是包含已解析符号链接的绝对路径,而在旧版本中,它包含在某些情况下的相对路径。

__DIR__:文件的目录。如果在include中使用,则返回包含文件的目录。这相当于dirname(__FILE__)。除非它是根目录,否则此目录名称没有尾部斜杠。 (在PHP 5.3.0中添加。)

__FUNCTION__:函数名称。 (在PHP 4.3.0中添加)从PHP 5开始,此常量返回声明的函数名称(区分大小写)。在PHP 4中,它的值总是小写的。

__CLASS__:班级名称。 (在PHP 4.3.0中添加)从PHP 5开始,此常量返回声明的类名(区分大小写)。在PHP 4中,它的值总是小写的。类名包括声明它的名称空间(例如Foo\Bar)。请注意,从PHP 5.4开始,__CLASS__也适用于特征。当在特征方法中使用时,__CLASS__是使用特征的类的名称。

__TRAIT__:特征名称。 (在PHP 5.4.0中添加)从PHP 5.4开始,此常量返回声明的特征(区分大小写)。特征名称包括声明它的名称空间(例如Foo\Bar)。

__METHOD__:类方法名称。 (在PHP 5.0.0中添加)方法名称在声明时返回(区分大小写)。

__NAMESPACE__:当前命名空间的名称(区分大小写)。此常量在编译时定义(在PHP 5.3.0中添加)。

Source


136
投票

Type Operators

instanceof用于确定PHP变量是否是某个类的实例化对象。

<?php
class mclass { }
class sclass { }
$a = new mclass;
var_dump($a instanceof mclass);
var_dump($a instanceof sclass);

上面的例子将输出:

bool(true)
bool(false)

原因:上面的例子$amclass的一个对象所以只使用mclass数据而不是sclass的实例

继承示例

<?php 
class pclass { } 
class childclass extends pclass { } 
$a = new childclass; 
var_dump($a instanceof childclass); 
var_dump($a instanceof pclass);

上面的例子将输出:

bool(true)
bool(true)

克隆示例

<?php 
class cloneable { } 
$a = new cloneable;
$b = clone $a; 
var_dump($a instanceof cloneable); 
var_dump($b instanceof cloneable);

上面的例子将输出:

bool(true)
bool(true)

119
投票

An overview of operators in PHP:


Logical Operators:

  • $ a && $ b:如果$ a和$ b都为TRUE,则为TRUE。
  • $ a || $ b:如果$ a或$ b为TRUE,则为TRUE。
  • $ a xor $ b:如果$ a或$ b为TRUE,则为TRUE,但不是两者都是。
  • ! $ a:如果$ a不为TRUE,则为TRUE。
  • $ a和$ b:如果$ a和$ b都为TRUE,则为TRUE。
  • $ a或$ b:如果$ a或$ b为TRUE,则为TRUE。

Comparison operators:

  • $ a == $ b:如果$ j在类型杂耍后等于$ b,则为TRUE。
  • $ a === $ b:如果$ a等于$ b,则为TRUE,它们属于同一类型。
  • $ a!= $ b:如果在类型杂耍后$ a不等于$ b,则为TRUE。
  • $ a <> $ b:如果$ j在类型杂耍后不等于$ b,则为TRUE。
  • $ a!== $ b:如果$ a不等于$ b,则为TRUE,或者它们的类型不同。
  • $ a <$ b:如果$ a严格小于$ b,则为TRUE。
  • $ a> $ b:如果$ a严格大于$ b,则为TRUE。
  • $ a <= $ b:如果$ a小于或等于$ b,则为TRUE。
  • $ a> = $ b:如果$ a大于或等于$ b,则为TRUE。
  • $ a <=> $ b:当$ a分别小于,等于或大于$ b时,小于,等于或大于零的整数。从PHP 7开始提供。
  • $ a? $ b:$ c:如果$ a返回$ b,则返回$ c(ternary operator
  • $ a ?? $ c:与$ a相同? $ a:$ c(null coalescing operator - 要求PHP> = 7)

Arithmetic Operators:

  • - $ a:相反$ a。
  • $ a + $ b:$ a和$ b的总和。
  • $ a - $ b:$ a和$ b的差异。
  • $ a * $ b:$ a和$ b的乘积。
  • $ a / $ b:$ a和$ b的商数。
  • $ a%$ b:$ a的剩余除以$ b。
  • $ a ** $ b:将$ a筹集到$ b'th权限的结果(在PHP 5.6中引入)

Incrementing/Decrementing Operators:

  • ++ $ a:将$ a递增1,然后返回$ a。
  • $ a ++:返回$ a,然后将$ a递增1。
  • - $ a:将$ a减1,然后返回$ a。
  • $ a--:返回$ a,然后将$ a减1。

Bitwise Operators:

  • $ a和$ b:设置$ a和$ b中设置的位。
  • $ a | $ b:设置在$ a或$ b中设置的位。
  • $ a ^ $ b:设置$ a或$ b但不是两者都设置的位。
  • 〜$ a:未设置$ a中设置的位,反之亦然。
  • $ a << $ b:将$ a $ b步的位移到左边(每一步意味着“乘以2”)
  • $ a >> $ b:向右移动$ a $ b步的位(每一步意味着“除以2”)

String Operators:

  • $ a。 $ b:$ a和$ b的连接。

Array Operators:

  • $ a + $ b:$ a和$ b的联盟。
  • $ a == $ b:如果$ a和$ b具有相同的键/值对,则为TRUE。
  • $ a === $ b:如果$ a和$ b在相同的顺序和相同类型中具有相同的键/值对,则为TRUE。
  • $ a!= $ b:如果$ a不等于$ b,则为TRUE。
  • $ a <> $ b:如果$ a不等于$ b,则为TRUE。
  • $ a!== $ b:如果$ a与$ b不同,则为TRUE。

Assignment Operators:

  • $ a = $ b:$ b的值分配给$ a
  • $ a + = $ b:与$ a = $ a + $ b相同
  • $ a - = $ b:与$ a = $ a - $ b相同
  • $ a * = $ b:与$ a = $ a * $ b相同
  • $ a / = $ b:与$ a = $ a / $ b相同
  • $ a%= $ b:与$ a = $ a%$ b相同
  • $ a ** = $ b:与$ a = $ a ** $ b相同
  • $ a。= $ b:与$ a = $ a相同。 $ b
  • $ a&= $ b:与$ a = $ a和$ b相同
  • $ a | = $ b:与$ a = $ a |相同$ b
  • $ a ^ = $ b:与$ a = $ a ^ $ b相同
  • $ a << = $ b:与$ a = $ a << $ b相同
  • $ a >> = $ b:与$ a = $ a >> $ b相同

Note

and运算符和or运算符的优先级低于赋值运算符=

这意味着$a = true and false;相当于($a = true) and false

在大多数情况下,您可能希望使用&&||,它们以C,Java或JavaScript等语言的方式运行。


93
投票

Spaceship Operator <=> (Added in PHP 7)

Examples for <=> Spaceship operator (PHP 7, Source: PHP Manual):

整数,浮点数,字符串,数组和对象用于变量的三向比较。

// Integers
echo 10 <=> 10; // 0
echo 10 <=> 20; // -1
echo 20 <=> 10; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
// Comparison is case-sensitive
echo "B" <=> "a"; // -1

echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1

// Arrays
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1

// Objects
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 0

$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "c"]; 
echo $a <=> $b; // -1

$a = (object) ["a" => "c"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 1

// only values are compared
$a = (object) ["a" => "b"]; 
$b = (object) ["b" => "b"]; 
echo $a <=> $b; // 1
© www.soinside.com 2019 - 2024. All rights reserved.