Что === делает в PHP

Если вам нужно только связаться с ними, вы можете использовать str.join

trigram = (listText[0], listText[1], listText[2])
c_trigram = '_'.join(*trigram)

, вы можете увидеть пример бесстыдного самоподключения здесь

5
задан VolkerK 19 August 2009 в 07:16
поделиться

8 ответов

Он сравнивает равенство значений и типов.

 if("45" === 45) //false
 if(45 === 45) //true
 if(0 === false)//false

У него есть аналог:! == который сравнивает неравенство типов и значений

 if("45" !== 45) //true
 if(45 !== 45) //false
 if(0 !== false)//true

Это особенно полезно для таких функций, как strpos - которые могут возвращать 0

 strpos("hello world", "hello") //0 is the position of "hello"

 //now you try and test if "hello" is in the string...

 if(strpos("hello world", "hello")) 
 //evaluates to false, even though hello is in the string

 if(strpos("hello world", "hello") !== false) 
 //correctly evaluates to true: 0 is not value- and type-equal to false

Вот хорошая таблица в Википедии , в которой перечислены другие языки, которые имеют аналогию с тройным равенством.

26
ответ дан 18 December 2019 в 05:13
поделиться

Это правда, что === сравнивает и значение, и тип, но есть один случай, который еще не упоминался, и это когда вы сравниваете объекты с помощью == и ===.

Учитывая следующий код :

class TestClass {
  public $value;

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

$a = new TestClass("a");
$b = new TestClass("a");

var_dump($a == $b);  // true
var_dump($a === $b); // false

В случае объектов === сравнивает ссылку, а не тип и значение (поскольку $ a и $ b имеют одинаковый тип и значение).

12
ответ дан 18 December 2019 в 05:13
поделиться

В руководстве по PHP есть пара очень хороших таблиц («Свободные сравнения с ==» и «Строгие сравнения с ===»), которые показывают, какой результат == и === выдаст при сравнении различных типов переменных.

6
ответ дан 18 December 2019 в 05:13
поделиться

Он проверит, совпадает ли тип данных и значение

if ("21" == 21) // true
if ("21" === 21) // false
4
ответ дан 18 December 2019 в 05:13
поделиться

=== сравнивает значение и типа.

3
ответ дан 18 December 2019 в 05:13
поделиться

== не сравнивает типы, === делает.

0 == false

оценивается как истина, а

0 === false

- нет

2
ответ дан 18 December 2019 в 05:13
поделиться

Как минимум, === быстрее, чем ==, потому что не происходит автоматическое приведение / приведение на, но он настолько минимален, что вряд ли стоит упоминать.

0
ответ дан 18 December 2019 в 05:13
поделиться

Это истинное сравнение на равенство.

"" == Ложь например Истина .

"" === Ложь is false

0
ответ дан 18 December 2019 в 05:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: