2017-11-27 21 views
0

メソッドと属性を使用するのは簡単だと思いますが、関数ではできません。それは私もグローバル変数を使用することはできませんので、WordPressのプラグインです。関数間で値を渡す方法

Post()関数のGET値をFunend()に渡す方法を知りたいと思います。 私の試行に失敗しました:

<?php 
//FUNCTION 1 
function Name($a) 
{ 


    return $a; 
} 

//FUNCTION 2 

function Post() 
{ 
    $city = $_GET['city']; 

    Name($city); 

} 

//FUNCTION 3 
function Funend() 
{ 

    $funend = Name(); 

     ///DEBUG 
     ob_start(); 
     var_dump($funend); 
     $data = ob_get_clean(); 
     $txt = fopen('bug.txt', 'a'); 
     fwrite($txt, $data); 
     fclose($txt); 
     //DEBUG 
} 
Post(); 
Funend(); 

答えて

1

まずは、常に小文字で機能します。

あなただけFunend()に$ _GET値を渡したい場合は、この

<?php 
    //FUNCTION 1 
    function Name($a){ 
     Funend($a);//Calling Funend()function 
    } 
    //FUNCTION 2 
    function Post(){ 
     Name($_GET['city']); //Calling Name()function 
    } 
    //FUNCTION 3 
    function Funend($city){ 
     ///DEBUG 
     ob_start(); 
     var_dump($city); 
     $data = ob_get_clean(); 
     $txt = fopen('bug.txt', 'a'); 
     fwrite($txt, $data); 
     fclose($txt); 
     //DEBUG 
    } 
    Post(); //Calling Post()function 
?> 
値( 引数または パラメータと呼ばれる)を受け入れることができ、彼らは値を返すことができ
+0

これはうまくいきませんでしたが、$ _GET ['city']関数Post()内でアクセスできるようになりました –

+0

今すぐ確認してください。 – GYaN

2

機能(のようにそれを渡すことができます単にという戻り値と呼ばれます)。

目的は、Funend()Post()から値を受け取り、あなたがこれを行うことができるようにする場合には:

function Post() { 
    return $_GET[ 'city' ]; // return value 
} 

// accepts one (explicit) argument 
function Funend($city) { 
    /* do something with $city */ 
} 

Funend(Post()); 

最後の行は、基本的に凝縮されたバージョンであること:それはdoesnのを除いて

$city = Post(); // temporarily store the return value of Post() in $city; 
Funend($city); // pass $city as an argument to Funend(); 

中間変数$cityを使用して、外側スコープを変数のクリーンで維持します。

それができる行う別の方法:今、あなたも自動的にFunend()を起動せずにもうPost()を呼び出すことはできませんので

function Post() { 
    $city = $_GET[ 'city' ]; 

    Funend($city); // call Funend() from within Post() 

    return $city; // perhaps return the city as well? 
} 

function Funend($city) { 
    /* do something with $city */ 
} 

Post(); // now we only have to call Post() 

しかし、その後Post()が、それはあまり柔軟になりますこれは、Funend()に結合されています。

+0

名前機能を使用してこれを行う方法はありますか?仲介者? –

+0

'Funend(Name(Post()));のようなものなの?それがあなたのために十分であるかどうか私に教えてください。そうでなければ、私は明日の私の答えで詳しく説明します。今すぐ睡眠を取れました。 –

関連する問題