-1

PHPの関数からの情報を含む変数を(何らかの形式で)返すことは可能ですか

例えば。

function setuplogin($email,$pwd){
    if(!$email || !$pwd){ return $error = 'not possible'; }
}

そのため、それが呼び出されたページで

<?php echo $error;?>

うまくいくだろう

編集:

この同じ関数を設定し return $success = 'congrats';てページ上で呼び出すこともできるため、単に関数をエコーすることはできません。<?php echo $success;?>

4

3 に答える 3

1

関数は(任意のタイプの)値のみを返すことができます。その値を使用して行うこと(たとえば、返される値に応じて変数または異なる変数に割り当てること)は、呼び出し元の仕事のみであり、関数はこれに影響を与えることはできません。

もちろん、関数はに割り当てることでグローバル変数を作成できます$GLOBALS['whatever']が、それは非常に醜く、別の関数から関数を呼び出すと、希望どおりに機能しません。もう1つの欠点は、常にすべての変数に何かを割り当てる必要があることです。そうしないと、関数の実行内容によっては未定義の変数になりisset()、それらの変数を使用してコードをチェックする必要があります。

ですから、あなたがやろうとしていることは、きれいな方法では不可能です。最も近いのは、配列をリトルートすることです。

function foo() {
    return array('success' => ..., 'error' => ...);
}

次に、発信者はeg$result = foo();を実行して$result['success']から、$result['error']

于 2012-08-18T16:54:51.653 に答える
0

関数が成功したか失敗したか、それに付随するメッセージなど、複数のものを返すことができるようにすることが必要なようです。これを行うには、配列を返します。

return array('success' => true, 'message' => 'well done');

発信者は次のことができます。

$result = setuplogin(...);
echo $result['message'];
于 2012-08-18T17:23:43.787 に答える
0

「変数」を使用せずに、必要な変数を吐き出すように関数を設定するだけです。

function setuplogin($email,$pwd){
if(!$email || !$pwd){ return 'not possible'; }
}


<?php echo setuplogin(); ?>


または、グローバル変数を使用して、関数の外で $error を呼び出すことができます。

$error = "";
function setuplogin($email,$pwd){
global $error;
if(!$email || !$pwd){ $error = 'not possible'; }
}

<?php echo $error; ?>


もちろん、2番目のものは、エコーの前に関数を呼び出すことを前提としています。

于 2012-08-18T16:51:16.383 に答える