I przy analizie kodu napotkałem na błąd
Kod
Parse error: syntax error, unexpected T_FUNCTION in C:\Program Files (x86)\WebServ\httpd-users\test\listing04.18.php on line 7
Kod closures.php
class Product { public $name; public $price; function __construct( $name, $price ) { $this->name = $name; $this->price = $price; } } class ProcessSale { private $callbacks; function registerCallback( $callback ) { if ( ! is_callable( $callback ) ) { throw new Exception( "niepoprawne wywoĹ_anie zwrotne" ); } $this->callbacks[] = $callback; } function sale( $product ) { foreach ( $this->callbacks as $callback ) { call_user_func( $callback, $product ); } } }
i listing04.18.php
require_once( "closures.php" ); class Totalizer { $count=0; return function( $product ) use ( $amt, &$count ) { $count += $product->price; if ( $count > $amt ) { } } } } $processor = new ProcessSale(); $processor->registerCallback( Totalizer::warnAmount( 8) ); $processor->sale( new Product( "buty", 6 ) ); $processor->sale( new Product( "kawa", 6 ) );
Proszę o pomoc jak to naprawić oraz proszę o wytłumaczenie co znaczy taki zapis kodu
i co oznacza to use ponieważ pierwszy raz spotykam się z takim zapisem.
return function( $product ) use ( $amt, &$count )