2016-05-08 16 views
0

私は直接呼び出されたときに動作する無名関数を持っています。私は別の無名関数からそれを呼び出すしようとすると、しかし、私はエラーを取得別のものから無名関数を呼び出す

致命的なエラー:関数名がで...(fileNameに)ここで

文字列が完全なコードでなければなりません。それがなぜ失敗したのかを考えてみてください。

あなたはあなたの第二の機能に $svgCircleを利用できるようにするのを忘れ
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<?php 
$ringW = 16; $ringCx = 8; 
$ringH = 16; $ringCy = 8; $ringR = 7; 
$penWidth = 2; 

$svgCircle = function ($fillColor, $ringColor) 
       use ($ringW, $ringH, $ringR, $ringCx, $ringCy, $penWidth) { 
     echo "<svg width=\"$ringW\" height=\"$ringH\">"; 
     echo "<circle cx=\"$ringCx\" cy=\"$ringCy\" r=\"$ringR\" " . 
     "stroke=\"$ringColor\" stroke-width=\"$penWidth\" fill=\"$fillColor\" />\n"; 
     echo "</svg>\n"; 
}; 


$pac = function ($condition) { 
     if ($condition) 
       // echo "Hello world\n";  // pass 
       $svgCircle("yellow", "green"); // fails 
}; 

?> 

<head> 
    <title>LVCC Algorithm</title> 
</head> 
<body> 
<?php 
     $pac(1); 
     $svgCircle("yellow", "green"); // pass 
     $svgCircle("yellow", "green"); 
?> 
</body> 
</html> 
+0

$のpac' '関数のスコープとは何ですか? –

+0

svgCircleと同じにする必要があります。それ以外は何も指定しませんでした。私はここで何かをする必要があるかどうかわからないので、質問: –

答えて

1

$pac = function ($condition) use ($svgCircle) {...}; 
          ^^^^^^^^^^^^^^^^ 
+0

ありがとう、それは問題を解決した! –

関連する問題