Hàm strcmp trả về giá trị không đúng

Mình có đoạn code sau đây:

<?php
$var1="Hello";
$var2="hello";
if (!strcasecmp($var1, $var2))
    echo "$var1 = $var2 in a case-insensitive\n";
if (strcmp($var1, $var2) > 0)
    echo "$var1>$var2\n";
if (strcmp($var1, $var2) == 0)
    echo "$var1=$var2\n";
if (strcmp($var1, $var2) < 0)
    echo "$var1<$var2\n";
?>

Sau khi chạy nó trả về kết quả như sau:

Hello = hello in a case-insensitive Hello

Tuy nhiên đọc tài liệu thì nó nói lẽ ra phải hiển thị như sau mới đúng:

Hello = hello in a case-insensitive
Hello<hello

Ai biết lỗi ở đâu không?

PHP
Được hỏi 1 năm trước
Bình chọn bởi: Nguyễn Duy Tuấn, Huynh An, Khuê Vũ, Trung Võ, Tân Late

Nếu bạn sử dụng trình duyệt để hiển thị kết quả thì bạn cần thoát các ký tự đặc biệt HTML. Ở đoạn mã bạn sử dụng các ký tự < cần được chuyển thành &lt;, > chuyển thành &gt;

<?php
$var1="Hello";
$var2="hello";
if (!strcasecmp($var1, $var2))
    echo "$var1 = $var2 in a case-insensitive\n";
if (strcmp($var1, $var2) > 0)
    echo "$var1 &gt; $var2\n";
if (strcmp($var1, $var2) == 0)
    echo "$var1 = $var2\n";
if (strcmp($var1, $var2) < 0)
    echo "$var1 &lt; $var2\n";
?>

Nếu chạy trực tiếp sử dụng terminal (hay console) thì không cần thiết:

Trả lời 1 năm trước

Thêm Trả Lời