php函数返回一个布尔值并在条件下使用它

时间:2014-03-20 06:09:16

标签: php function boolean conditional-statements

我不确定我将如何正确解释这一点。

我想要一个函数来验证我认为正确的字符串。

但是我希望函数返回一个布尔值。

在一个函数之外我需要创建一个条件,如果函数返回false,或者是true,它将执行某些操作。这是我的代码。

我不确定这是否正确。

<?php
$string1 = 'hi';
function validatestring($myString, $str2) {
    if(!empty($myString)) {
        if(preg_match('/^[a-zA-Z0-9]+$/', $str2)) {
            }
    }
    else {
        return false;
    }
}

if(validatestring == FALSE) {
    //put some codes here
}
else {
    //put some codes here
}
?>

编辑:现在如果函数内有多于1个条件怎么办?

<?php
$string1 = 'hi';
function validatestring($myString, $myString2) {
    if(!empty($myString)) {
        if(preg_match('/^[a-zA-Z0-9]+$/', $str2)) {
            return true;
        }
        else {
            retun false;
        }
    }
    else {
        return false;
    }
}

if(validatestring($myString, $myString2) === FALSE) {
    //put some codes here
}
else {
    //put some codes here
}
?>

4 个答案:

答案 0 :(得分:1)

<?php
$string1 = 'hi';
function validatestring($myString) {
    if(!empty($myString)) {
        return true;
    }
    else {
        return false;
    }
}

if(validatestring($string1) === FALSE) {
    //put some codes here
}
else {
    //put some codes here
}
?>

答案 1 :(得分:1)

功能需要括号和参数。你没有任何一个。

这是正确的:

if(validatestring($myString) === false) {
    //put some codes here
}

更简单,更优雅的方法是:

if(!validatestring($myString)) {
    //put some codes here
}

答案 2 :(得分:1)

旁注,由于empty()已经返回false,您可以通过以下方式进行简化:

function validateString($string){
  return !empty($string);
}

if(validateString($myString){
  // ok
}
else {
 // not ok
}

稍后进行检查和测试:

 $check = validateString($myString);

 if($check){ }

没有必要检查== false=== false,该函数已经返回一个布尔值,这将是多余的。

答案 3 :(得分:-1)

将$ string1存储到函数中的$ myString 的myString =字符串1

<?php
$string1 = 'hi';
function validatestring($myString) {
        myString=string1;
    if(!empty($myString)) {
        return true;
    }
    else {
        return false;
    }
}

if(validatestring() === FALSE) {
    //put some codes here
}
else {
    //put some codes here
}
?>