<?php
class ThisClass {
public static
$arguments = array();
public static function make_f($arg) {
ThisClass::$arguments[$variable_name] = $arg; // Replace ThisClass with the name of the actual class
$callback = create_function('$my_var', 'return $my_var * ThisClass::$arguments[\'' . $variable_name . '\'];');
return $callback;
}
}
$double = ThisClass::make_f(2);
$triple = ThisClass::make_f(3);
echo "The double of 16 is " . $double(16) . "\n";
echo "The triple of 20 is " . $triple(20) . "\n";
?>
PD9waHAKY2xhc3MgVGhpc0NsYXNzIHsKICAgIHB1YmxpYyBzdGF0aWMgJGFyZ3VtZW50cyA9IGFycmF5KCk7CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBtYWtlX2YoJGFyZykgewogICAgICAgICR2YXJpYWJsZV9uYW1lID0gdW5pcWlkKCk7CgogICAgICAgIFRoaXNDbGFzczo6JGFyZ3VtZW50c1skdmFyaWFibGVfbmFtZV0gPSAkYXJnOyAvLyBSZXBsYWNlIFRoaXNDbGFzcyB3aXRoIHRoZSBuYW1lIG9mIHRoZSBhY3R1YWwgY2xhc3MKCiAgICAgICAgJGNhbGxiYWNrID0gY3JlYXRlX2Z1bmN0aW9uKCckbXlfdmFyJywgJ3JldHVybiAkbXlfdmFyICogVGhpc0NsYXNzOjokYXJndW1lbnRzW1wnJyAuICR2YXJpYWJsZV9uYW1lIC4gJ1wnXTsnKTsKCiAgICAgICAgcmV0dXJuICRjYWxsYmFjazsKICAgIH0KfQoKJGRvdWJsZSA9IFRoaXNDbGFzczo6bWFrZV9mKDIpOwokdHJpcGxlID0gVGhpc0NsYXNzOjptYWtlX2YoMyk7CgplY2hvICJUaGUgZG91YmxlIG9mIDE2IGlzICIgLiAkZG91YmxlKDE2KSAuICJcbiI7CmVjaG8gIlRoZSB0cmlwbGUgb2YgMjAgaXMgIiAuICR0cmlwbGUoMjApIC4gIlxuIjsKPz4=