Мне интересно, как оператор космического корабля php сравнивает строки, объекты и массивы. Например, приведенный ниже код.
echo "Its Me at SO" <=> "Its Me at SO";
вернет 0, так как я знаю, что все символы одинаковы, счетчик такой же. Но если у меня есть код, как показано ниже:
echo "Its me at SO" <=> "its Me at so";
Он вернет 1, это означает, что левая сторона больше правой, но как? Это сравнение значений ASCII?
Теперь перейдем к массивам. Приведенный ниже код вернет 0, поскольку оба массива равны по количеству, значениям и значениям в каждом индексе.
echo [1,2,3] <=> [1,2,3];
Но приведенный ниже код возвращает -1.
echo [1,2,3] <=> [3,2,1];
И я не понимаю почему? Как этот оператор сравнивает массивы и как он вычисляет, что массив слева меньше, чем массив справа? То же самое и с объектами.
Кто-нибудь может дать подробный ответ о том, как это работает со строками, массивами и объектами?
Спасибо
echo "Its Me at SO" <=> "its Me at SO";
вернет 0. Не для меня это не так: он возвращает 1, чего я и ожидал, поскольку i больше I. Вы действительно получаете за это 0? - person Adam Cameron   schedule 15.01.2016