所以说我有php:
if(a === x)
{
echo "a";
}
if(b === y)
{
echo "b";
}
if(c === z)
{
echo "c";
}
如果 a = x且 b = y但 c 不 = z。有没有办法阻止 和 b 被“回应”?
,如果 a = x但 b 不 = y且 c = z 。有没有办法阻止 和 c 被“回应”?
我知道如果 不 = x,那么您不希望 b 和 c 然后你应该这样做:
if(a === x)
{
echo "a";
}else
{
die();
}
if(b === y)
{
echo "b";
}
if(c === z)
{
echo "c";
}
但我想确保如果其中一个( a,b,c )不等于相应的3(x,y,z),则不会回显任何内容。
我也不能使用:
if (a == x && b == y && c == z) {
echo "success";
}
因为每个假设条件都很大(即数据库插入并检查网址是否正常工作等)
以检查网址是否正常的示例为例:
$file_headers = @get_headers("https://www.google.co.uk/");
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
}
else {
echo "Success concerning url";
}
以及插入数据库的示例:
if($result)
{
echo "Success concerning inserting information to the database";
}
有没有办法如何做到这一点?
答案 0 :(得分:1)
这是什么背景?无论如何,只要将它们放在一起:
if($a === 'x' && $b === 'y' && $c === 'z') {
// satisfied all three conditions, then proceed
} else {
// if one of them fails, stop the process
}
答案 1 :(得分:1)
Introducing boolean operators: 和(&&
)和或(||
)。
if(a === x && b === y && c === y) {
echo "a";
echo "b";
echo "c";
} else {
die();
}
同样,如果任何条件不为真,你可以终止脚本。
if(a !== x || b !== y || c !== z) {
die();
}
echo "a";
echo "b";
echo "c";
如果您有许多布尔值(a === x
)使您的条件超长并且难以阅读,您可以随时将布尔值设置为变量:
$boolA = a === x;
$boolB = b === y;
$boolC = c === y;
$boolZ = z < 0 || z >= 100 || z === (a + b + c);
if(!$boolA || !$boolB || !$boolC || !$boolZ) {
die();
}
// success
您还可以创建一个或多个函数来清理代码:
function isValid() {
// perform lots of logic
return true;
}
if(!isValid()) die();
// success
在一天结束时......代码越复杂,您使用OOP的次数就越多。有很多PHP frameworks可以帮助初学者以这种心态开始。
由于我最近一直在使用Laravel,我将以它们为例。首先,您有一个路由文件,它将所有请求发送到您的站点,并将它们分发到某些类和&amp;方法
// Create a filter for checking if a URL is working
Route::filter('urlCheck', function()
{
$file_headers = @get_headers("https://www.google.co.uk/");
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
// return a 404 page
}
// continue with the normal response
});
// Create a route for a basic request to http://example.com/test
Route::get('test', array('before' => 'urlCheck', function() {
// create page for successful request to GET /test
}));
答案 2 :(得分:1)
但我想确保如果3(a,b,c)中的一个不等于相应的3(x,y,z),则不会回显任何内容。
由此实现:
if (a == x && b == y && c == z) {
echo "all match";
}