在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);

对于学习建议,使用带有引用的函数对我来说似乎有点复杂。因此,我决定尽可能在给定的代码上编写这个小示例,并且没有引用,但是返回值并且没有类型转换。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));
?>

如果你觉得幸运的话,你也可以使用array with 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';
}
最近看过这篇文章的人


Filter_var函数可以轻松地完成此操作

var_dump(filter_var('oops', FILTER_VALIDATE_BOOLEAN)); // bool(false)
var_dump(filter_var('no', FILTER_VALIDATE_BOOLEAN)); // bool(false)
var_dump(filter_var('yes', FILTER_VALIDATE_BOOLEAN)); // bool(true)
var_dump(filter_var('1', FILTER_VALIDATE_BOOLEAN)); //bool(true)
var_dump(filter_var('0', FILTER_VALIDATE_BOOLEAN)); //bool(false)
var_dump(filter_var('2', FILTER_VALIDATE_BOOLEAN)); //bool(false)