�Ƚ����������ͬ������������ʾ�ģ����������ֵ���бȽϡ������Բο� 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(0 == "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 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 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 [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -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()������������������½ڡ�
��һ�������������"?:"������Ԫ������� ��
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'];
}
?>
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.
?>