0

グローバルでその変数を割り当てずに、ローカルスコープで作成された変数を使用しようとしています。私が何を意味するか見てください:

<?
function foo(){
    $bar = inside;
}
foo();
echo $bar; // It will give an error that $bar is not assigned
?>

今、あなたは私が何をしようとしているのか理解しているかもしれません。はい、グローバルスコープに割り当てずにその$barをエコーし​​たいと思います。

いくつかのコーディング例はよく知られています。

前もって感謝します

4

3 に答える 3

2

戻り値を使用します。

<?php
function foo(){
    $bar = "inside";
    return $bar;
}
$bar = foo();
echo $bar;
?>
于 2012-04-24T13:34:07.057 に答える
1

唯一の可能性のある方法は、$GLOBALSスーパーグローバルを使用することです(少なくともそれを返さずに):

function foo(){
  $GLOBALS['bar'] = 'baz';
}

foo();
echo $bar;

それ以外の場合は、最初にグローバルスコープで定義し、次にglobal:を使用してアクセスする必要があることを指定します。

$bar = null;

function foo(){
  global $bar;

  $bar = 'baz';
}

foo();
echo $bar;

より良い代替策は、スコープがオブジェクト内に残り、コードの構造と整合性を維持できるオブジェクトを使用することです。

class Foo
{
  var $bar = null;

  function Bar()
  {
    $this->bar = 'baz';
  }
}

$foo = new Foo();
$foo->Bar();
echo $foo->bar;
于 2012-04-24T13:34:59.977 に答える
0

ローカル変数のコンテンツにそのコンテンツの外部からアクセスする場合は、次の3つのオプションがあります。

グローバル変数の使用:通常は推奨されておらず、探しているものでもありません。

その変数の値を返します。

<?
function foo(){
    $bar = inside;
}
$outisde_bar = foo();
echo $outside_bar;
?>

関数の属性として参照される変数を使用する:

<?
function foo(&$bar){
    $bar = inside;
}
foo($bar);
echo $bar;
?>

それは役に立ちますか?

于 2012-04-24T13:36:48.643 に答える