0

ある関数で定義された変数を別の関数で読み取るのに問題があります。私は持っている:

global $a;
class test{
    function aa($somevar){
        switch ($myvar){
        case 'value':
            global $a;
            $a = 15;
            break;
        }
    }
    function bb(){
        global $a;
        echo $a;
    }
}

$foo = new test();
$ccc = $foo->bb();

var_dump($ccc);

ダンプ結果が NULL になります。ありがとう

4

5 に答える 5

0

ここにコードがありますこれを試してください..

<?php
 global $a;
  class test{

    function aa($somevar){
       switch ($somevar){
        case 'value':
            global $a;
            $a = 15;
            break;
        }
    }

function bb(){
    global $a;
    echo $a;
    return $a;
}
}

$foo = new test();
$foo->aa('value');
$ccc = $foo->bb();

var_dump($ccc);


?>
于 2013-03-06T15:07:44.627 に答える
0

test->aa()に値を割り当てるために実行することはありませんa

$foo = new test();
$foo->aa();
$ccc = $foo->bb();

この場合、返す代わりに$cccエコーイン$aしているため、null のままです。$foo->bb()

function bb() {
  global $a;
  return $a;
}

また、グローバルから離れて、クラスの構成で変数 $a を渡します。例えば:

class test {
    public $a;

    function __construct($a = null) {
      // pass initial var to $a if you want
      $this->a = $a;
    }

   function aa($somevar) {
      // reassign $a
      $this->a = $somevar;
   }
}

$foo = new test();
$foo->aa(5);
// or just $foo = new test(5);
var_dump($foo->a);
于 2013-03-06T14:44:56.867 に答える
0

変数はクラス内のプロパティ$aである必要があります

于 2013-03-06T14:40:47.797 に答える
0

コードのどの時点でも、 に値を代入しません$a

への唯一の割り当て$aは、test->aa一貫性のない変数を使用するメソッド内にあるため、呼び出されても に割り当てられることはありません$a

于 2013-03-06T14:41:16.470 に答える
0

これを試して :

class test
{
    public $a;
    function aa($somevar)
    {
        switch ($myvar)
        {
         case 'value':
         $this->a = 15;
         break;
        }
    }
    function bb()
    {        
        return $this->a;
    }
}

$foo = new test();
$ccc = $foo->bb();

var_dump($ccc);

更新しました:

<?php
class test
{
    var $a;
    function aa($somevar)
    {
        switch ($somevar)
        {
         case 'value':
         $this->a = 15;
         break;
        }
    }
    function bb()
    {        
        return $this->a;
    }
}

$foo = new test();
$foo->aa('value');
$ccc = $foo->bb();

var_dump($ccc);
?>
于 2013-03-06T14:45:46.140 に答える