я люблю php

AmdY

Пью пиво
Команда форума
У laravel в аутентификации этот баг был.
 

Adelf

Administrator
Команда форума
PHP:
var_dump('test' == 0);
Имхо, давнишняя "фича"
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Adelf, не соглашусь вот тут. Имхо у тебя в примере явное приведение типов, без их четкой проверки, а вот то, что в in_array() есть третий параметр знают не все =(
 

WMix

герр M:)ller
Партнер клуба
PHP:
    private function append( $obj, $idx = null ){
            if (is_null($idx)) {
                $this->keys[] = (string)$this->next; // <<<<<
                $this->next++;
            }
            else {
                $idx = (string) $idx; // <<<<<
                if(!in_array($idx, $this->keys, true)){
                    $this->keys[] = $idx;
                }
            }
    }
пришлось кастить
 

WMix

герр M:)ller
Партнер клуба
PHP:
$a=[];
$a['a'] = 1;
var_dump(in_array('test', array_keys($a)));

$b=[];
$b[] = 1;
var_dump(in_array('test', array_keys($b)));

$c=[];
$c[0] = 1;
var_dump(in_array('0', array_keys($c), true)); // для фаната
зависит от первого вхождения
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
вот c (int) не совсем верно
PHP:
$x = '0';
$c=[];
$c[] = 1;
$c[$x] = 3;
var_dump(in_array($x, array_keys($c), true));
 

WMix

герр M:)ller
Партнер клуба
Мне возвращает false, поскольку '0' !== 0
//в далекой галактике
$c=[];
$c[] = 1; // проэкмерементируй $c['x'] = 1;
...
// мы тут
$x = '0';
$c[$x] = 3;
var_dump(in_array($x, array_keys($c), true));

я проверяю то что вставил $x === $x или?

Что я делаю не так?
да все так, я же говорю люблю php
 

WMix

герр M:)ller
Партнер клуба
говорю же зависит от того какого типа был первый элемент ключем массива
 

brevis

Новичок
А еще такие вещи подогревают любовные чувства к php:
PHP:
var_dump( md5('240610708') == md5('QNKCDZO') );
 
Сверху