�Ƚ������

�Ƚ����������ͬ������������ʾ�ģ����������ֵ���бȽϡ������Բο� PHP ���ͱȽϱ�����ͬ�����໥�Ƚϵ����ӡ�

�Ƚ������
���� ���� ���
$a == $b ���� TRUE���������ת���� $a ���� $b��
$a === $b ȫ�� TRUE����� $a ���� $b���������ǵ�����Ҳ��ͬ��
$a != $b ���� TRUE���������ת���� $a ������ $b��
$a <> $b ���� TRUE���������ת���� $a ������ $b��
$a !== $b ��ȫ�� TRUE����� $a ������ $b���������ǵ����Ͳ�ͬ��
$a < $b С�� TRUE����� $a �ϸ�С�� $b��
$a > $b ���� TRUE����� $a �ϸ���� $b��
$a <= $b С�ڵ��� TRUE����� $a С�ڻ��ߵ��� $b��
$a >= $b ���ڵ��� TRUE����� $a ���ڻ��ߵ��� $b��
$a <=> $b ̫�մ����������ϱȽϷ��� ��$aС�ڡ����ڡ�����$bʱ �ֱ𷵻�һ��С�ڡ����ڡ�����0��integer ֵ�� PHP7��ʼ�ṩ.
$a ?? $b ?? $c NULL �ϲ������� �������ҵ�һ�������Ҳ�Ϊ NULL �IJ������������û�ж����Ҳ�Ϊ NULL���򷵻� NULL��PHP7��ʼ�ṩ��

����Ƚ�һ�����ֺ��ַ������߱Ƚ��漰���������ݵ��ַ��������ַ����ᱻת��Ϊ��ֵ���ұȽϰ�����ֵ�����С��˹���Ҳ������ switch ��䡣���� === �� !== ���бȽ�ʱ�򲻽�������ת������Ϊ��ʱ���ͺ���ֵ��Ҫ�ȶԡ�

<?php
var_dump
(== "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true

switch ("a") {
case 
0:
    echo 
"0";
    break;
case 
"a"// never reached because "a" is already matched with 0
    
echo "a";
    break;
}
?>
<?php  
// Integers
echo <=> 1// 0
echo <=> 2// -1
echo <=> 1// 1
 
// Floats
echo 1.5 <=> 1.5// 0
echo 1.5 <=> 2.5// -1
echo 2.5 <=> 1.5// 1
 
// Strings
echo "a" <=> "a"// 0
echo "a" <=> "b"// -1
echo "b" <=> "a"// 1
 
echo "a" <=> "aa"// -1
echo "zz" <=> "aa"// 1
 
// Arrays
echo [] <=> []; // 0
echo [123] <=> [123]; // 0
echo [123] <=> []; // 1
echo [123] <=> [121]; // 1
echo [123] <=> [124]; // -1
 
// Objects
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "b"]; 
echo 
$a <=> $b// 0
 
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "c"]; 
echo 
$a <=> $b// -1
 
$a = (object) ["a" => "c"]; 
$b = (object) ["a" => "b"]; 
echo 
$a <=> $b// 1
 
// only values are compared
$a = (object) ["a" => "b"]; 
$b = (object) ["b" => "b"]; 
echo 
$a <=> $b// 1

?>

���ڶ������ͣ��Ƚ�����������±�Ƚϣ���˳�򣩡�

�Ƚ϶�������
������ 1 ���� ������ 2 ���� ���
null �� string string �� NULL ת��Ϊ ""���������ֻ�ʻ�Ƚ�
bool �� null �κ��������� ת��Ϊ bool��FALSE < TRUE
object object ��������Զ����Լ��ıȽϣ���ͬ�಻�ܱȽϣ���ͬ�������ͬ����ʽ�Ƚ����ԣ�PHP 4 �У���PHP 5 �����Լ���˵��
string��resource �� number string��resource �� number ���ַ�������Դת�������֣�����ͨ��ѧ�Ƚ�
array array ���н��ٳ�Ա�������С����������� 1 �еļ��������������� 2 ���������޷��Ƚϣ����򰤸�ֵ�Ƚϣ���������
object �κ��������� object ���Ǹ���
array �κ��������� array ���Ǹ���

Example #1 ��׼����Ƚϴ���

<?php
// �������ñ�׼�Ƚ�����������Ƚϵ�
function standard_array_compare($op1$op2)
{
    if (
count($op1) < count($op2)) {
        return -
1// $op1 < $op2
    
} elseif (count($op1) > count($op2)) {
        return 
1// $op1 > $op2
    
}
    foreach (
$op1 as $key => $val) {
        if (!
array_key_exists($key$op2)) {
            return 
null// uncomparable
        
} elseif ($val $op2[$key]) {
            return -
1;
        } elseif (
$val $op2[$key]) {
            return 
1;
        }
    }
    return 
0// $op1 == $op2
}
?>

Example #2 Transcription of standard array comparison

<?php
// Arrays are compared like this with standard comparison operators
function standard_array_compare($op1$op2)
{
    if (
count($op1) < count($op2)) {
        return -
1// $op1 < $op2
    
} elseif (count($op1) > count($op2)) {
        return 
1// $op1 > $op2
    
}
    foreach (
$op1 as $key => $val) {
        if (!
array_key_exists($key$op2)) {
            return 
null// uncomparable
        
} elseif ($val $op2[$key]) {
            return -
1;
        } elseif (
$val $op2[$key]) {
            return 
1;
        }
    }
    return 
0// $op1 == $op2
}
?>

�μ� strcasecmp()��strcmp()������������������½ڡ�

Warning

�Ƚϸ�����

���ڸ����� float ���ڲ���﷽ʽ����Ӧ�Ƚ�����������float�Ƿ���ȡ�

������Ϣ�μ� float��

��Ԫ�����

��һ�������������"?:"������Ԫ������� ��

Example #3 ��Ĭ��ֵ

<?php
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' $_POST['action'];

// The above is identical to this if/else statement
if (empty($_POST['action'])) {
    
$action 'default';
} else {
    
$action $_POST['action'];
}

?>
���ʽ (expr1) ? (expr2) : (expr3) �� expr1 ��ֵΪ TRUE ʱ��ֵΪ expr2���� expr1 ��ֵΪ FALSE ʱ��ֵΪ expr3��

�� PHP 5.3 �𣬿���ʡ����Ԫ������м��Dz��֡����ʽ expr1 ?: expr3 �� expr1 ��ֵΪ TRUE ʱ���� expr1�����򷵻� expr3��

Note: ע����Ԫ������Ǹ���䣬�������ֵ���DZ������������Ľ���������ͨ�����÷���һ���������ͺ���Ҫ����һ��ͨ�����÷��صĺ�������� return $var == 42 ? $a : $b; ���������ã��Ժ�� PHP �汾��Ϊ�˷���һ�����档

Note:

������⽫��Ԫ������ѻ���һ��ʹ�á�����һ�������ʹ�ö����Ԫ�����ʱ����� PHP ��������������

Example #4 ����������Ԫ�������Ϊ

<?php
// է���������������� 'true'
echo (true?'true':false?'t':'f');

// Ȼ������������ʵ�������'t'����Ϊ��Ԫ������Ǵ������Ҽ����

// ������������ȼ۵���䣬��������
echo ((true 'true' 'false') ? 't' 'f');

// here, you can see that the first expression is evaluated to 'true', which
// in turn evaluates to (bool)true, thus returning the true branch of the
// second ternary expression.
?>