我有几个变量,即$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);
对于学习建议,使用带有引用的函数对我来说似乎有点复杂。因此,我决定尽可能在给定的代码上编写这个小示例,并且没有引用,但是返回值并且没有类型转换。1
和0
是整数,不是布尔变量。因此,我们将使用===
比较运算符来避免类型杂耍:
<?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)