PHP: Switch() If{} 其他控制结构
PHP: Switch() If{} other control structures
如何在不使用 Switch 或 If 的情况下执行逻辑?
例如check_id_switch($id)
function check_id_switch($id){
switch($id){
case '1':
$HW = 'Hello, World!';
break;
default:
$HW = 'Goodbye, World!';
break;
}
return $HW;
}
或实例check_id_if($id)
function check_id_if($id){
if($id == 1){
$HW = 'Hello, World!';
}
else{
$HW = 'Goodbye, World!';
}
return $HW;
}
这两个函数 check_id_switch($id) 和 check_id_if($id) 都会检查其引用的 ID。
如何在不使用 php 中的 if/switch 语句的情况下创建与上述相同的逻辑?我也想避免 forloops。
关于 switch/if 的性能有很多争论,但是如果有另一个控制结构,它是否低于或超过上述控制结构?
添加登录脚本作为 if 语句的示例。我删除了登录脚本的 backbone 。如果 true:false,则不需要查看已完成的操作。我只是觉得下面是笨拙和不干净的。
if(!empty($_POST))
{
$errors = array();
$username = trim($_POST["username"]);
$password = trim($_POST["password"]);
$remember_choice = trim($_POST["remember_me"]);
if($username == "")
{
$errors[] = "";
}
if($password == "")
{
$errors[] = "";
}
if(count($errors) == 0)
{
if(!usernameExists($username))
{
$errors[] = "";
}
else
{
$userdetails = fetchUserDetails($username);
if($userdetails["active"]==0)
{
$errors[] = "";
}
else
{
$entered_pass = generateHash($password,$userdetails["password"]);
if($entered_pass != $userdetails["password"])
{
$errors[] = "";
}
else
{
// LOG USER IN
}
}
}
}
}
您可以使用 ternary
运算符与
相同
function check_id_switch($id){
return $HW = ($id == 1) ? 'Hello, World!' : 'Goodbye, World!';
}
或者您可以简单地使用 他评论为
的答案
function check_id_switch($id = '2'){
$arr = [1 => "Hello, World!", 2 => "Goodbye, World!"];
return $arr[$id];
}
如何在不使用 Switch 或 If 的情况下执行逻辑?
例如check_id_switch($id)
function check_id_switch($id){
switch($id){
case '1':
$HW = 'Hello, World!';
break;
default:
$HW = 'Goodbye, World!';
break;
}
return $HW;
}
或实例check_id_if($id)
function check_id_if($id){
if($id == 1){
$HW = 'Hello, World!';
}
else{
$HW = 'Goodbye, World!';
}
return $HW;
}
这两个函数 check_id_switch($id) 和 check_id_if($id) 都会检查其引用的 ID。
如何在不使用 php 中的 if/switch 语句的情况下创建与上述相同的逻辑?我也想避免 forloops。
关于 switch/if 的性能有很多争论,但是如果有另一个控制结构,它是否低于或超过上述控制结构?
添加登录脚本作为 if 语句的示例。我删除了登录脚本的 backbone 。如果 true:false,则不需要查看已完成的操作。我只是觉得下面是笨拙和不干净的。
if(!empty($_POST))
{
$errors = array();
$username = trim($_POST["username"]);
$password = trim($_POST["password"]);
$remember_choice = trim($_POST["remember_me"]);
if($username == "")
{
$errors[] = "";
}
if($password == "")
{
$errors[] = "";
}
if(count($errors) == 0)
{
if(!usernameExists($username))
{
$errors[] = "";
}
else
{
$userdetails = fetchUserDetails($username);
if($userdetails["active"]==0)
{
$errors[] = "";
}
else
{
$entered_pass = generateHash($password,$userdetails["password"]);
if($entered_pass != $userdetails["password"])
{
$errors[] = "";
}
else
{
// LOG USER IN
}
}
}
}
}
您可以使用 ternary
运算符与
function check_id_switch($id){
return $HW = ($id == 1) ? 'Hello, World!' : 'Goodbye, World!';
}
或者您可以简单地使用
function check_id_switch($id = '2'){
$arr = [1 => "Hello, World!", 2 => "Goodbye, World!"];
return $arr[$id];
}