Что лучше перед тем как сравнить 2 строки с int? - PullRequest
0 голосов
/ 24 октября 2011
$a = '1';
$b = '1';

// Method 1
if ($a == $b) { ... }

// Method 2
if ((int)$a == (int)$b) { ... }

Какое решение лучше? Я думаю о лучших методах программирования, а не о производительности.

Ответы [ 3 ]

2 голосов
/ 24 октября 2011

Вы можете просто использовать Идентичный оператор .

Редактировать : Теперь, когда я смотрю, andre matos уже утверждает, что является лучшимспособ.

0 голосов
/ 24 октября 2011
echo 1 == '1'; # true
echo 1 === '1'; # false
echo '1' === '1'; # true
echo '1' == '1'; # true
0 голосов
/ 24 октября 2011

При использовании '==' PHP будет манипулировать типами, в любом случае приводя их к типу. Поэтому я не вижу никакого преимущества в приведении их к целому числу перед их сравнением.

Если вы ищете более надежное решение, вы можете привести их к целым числам и затем использовать Identical ('==='), который соответствует как равенству, так и типу, а не Equal ('==').

...