ben dahil veya bir hata almadan sınıfları veya fonksiyonları defalarca gerektirecek herhangi bir şekilde bulamadık bakın. Bir yapının içinde işlevlerini yerine gerekiyorsa
Neyse, bunu geri dönecektir dizi içe olduğun zaman (javascript nesneler gibi) bir dizi/DiziNesnesiait lamdas/inline fonksiyonlar
yapmalıdır orijinal hal.
$Animal = array(
'eat' => function($food) {/*...*/},
'run' => function($to_place) {/*...*/}
);
$Animal['eat'] = function($food) {/* new way to eat */}
Ben de
Yansımalar kullanarak statik özelliklerin durumunu sıfırlamak başardı. Bu yaklaşım için, her türün varsayılan değeri için bir kural özniteliği adı kullanmanız gerekir.
class MyStaticHolder {
public static $x_array = array();
public static $x_num = 0;
public static $x_str = '';
}
//change values
MyStaticHolder::$x_array = array(1,2,4);
MyStaticHolder::$x_num = -1.4;
MyStaticHolder::$x_str = 'sample-text';
function reset_static($class_name) {
$z = new ReflectionClass($class_name);
$properties = $z->getDefaultProperties();
print_r($properties);
foreach ($properties as $property_name => $value) {
$sufix = end(explode('_',$property_name));
switch ($sufix) {
case 'array':
$class_name::$$property_name = array();
break;
case 'num':
$class_name::$$property_name = 0;
break;
case 'str':
$class_name::$$property_name = '';
break;
default:
$class_name::$$property_name = null;
break;
}
}
}
reset_static('MyStaticHolder');
PHPUnit gibi bir test çerçevesi kullanıyor musunuz? Bu, bir test modülü için kurulum/devrilme rutinlerinde dikkate alınacaktır. – Bueller