将 php 中的 1/0 值转换为 YES/NO

convert 1/0 values to YES/NO in php

我有几个变量,即 $tv、$car、$refrigerator、$laptop 和 $desktop,它们取值 0/1 来表示存在或不存在 YES/NO。

有没有一种简单的方法可以将这些从 1/0 转换为 YES/NO?

让下面的事情变得更简单的东西

<?php
 $tv = 1;
 $car = 0;
 $refrigerator = 1;
 $laptop = 1;
 $desktop = 0;

 if($tv == 1)
  $tv = "YES";
 else
  $tv = "NO";
 print($tv);


 if($car == 1)
  $car = "YES";
 else
  $car= "NO";
 print($car);

 //Repeat so on for refrigerator, laptop , desktop
?>

您可以编写一个函数,这样您就不会一遍又一遍地重复您的代码。

function yesNo(&$value){
    $value = $value == true ? 'Yes' : 'No';
}

yesNo($car);
yesNo($tv);

对于学习建议,使用带引用的函数对我来说似乎有点复杂。所以我决定在给定的代码上尽可能接近地编写这个小示例并且没有引用,但是 return 值并且没有类型转换。 10 是整数而不是布尔变量。所以我们将使用 === 比较运算符来避免类型转换:

<?php

/**
 * Convert number to 1 to'YES' or everything else to 'NO'.
 * @param $n the number to convert.
 * @return string YES|NO
 */
function numberToString($n)
{
    return $n === 1 ? 'YES' : 'NO';
}

$tv = 1;
$car = 0;
$refrigerator = 1;
$laptop = 1;
$desktop = 0;

// Call numberToString function for $tv and print return value
print(numberToString($tv));

// Call numberToString function for $car and print return value
print(numberToString($car));

// Call numberToString function for $refrigerator and print return value
print(numberToString($refrigerator));

// Call numberToString function for $laptop and print return value
print(numberToString($laptop));

// Call numberToString function for $desktop and print return value
print(numberToString($desktop));

?>

如果你觉得幸运的话,你也可以将数组与 foreach 一起使用:

<?php

/**
 * Convert number to 1 to'YES' or everything else to 'NO'.
 * @param $n the number to convert.
 * @return string YES|NO
 */
function numberToString($n)
{
    return $n === 1 ? 'YES' : 'NO';
}

// For php >= 5.4 you can also use the new array syntax:
// $devices = [
//     'tv' => 1,
//     'car' => 0,
//     'refrigerator' => 1,
//     'laptop' => 1,
//     'desktop' => 0,
// ];

$devices = array(
    'tv' => 1,
    'car' => 0,
    'refrigerator' => 1,
    'laptop' => 1,
    'desktop' => 0,
);

foreach ($devices as $device) {
    // Call numberToString function for $tv and print return value
    print(numberToString($device));
}

?>

编码愉快。

skroczek 的方法在数组中对我有用,但我必须更新到以下内容才能工作:

function numberToString($n)
{
    return $n == 1 ? 'YES' : 'NO';
}