Onlar bir sınıf içinde bir yöntem için bir değişken kullanmaya çalışıyor çünkü durumda başkasının google tarafından buraya getirilen, aşağıda aslında çalışacak bir kod örneği. Yukarıdakilerin hiçbiri benim durum için çalıştı. Önemli fark $c = & new...
ve &$c
call_user_func
içinde geçirilen bildiriminde &
olduğunu.
Csscolor.php sınıftan renk ve iki üye yöntemleri lighten()
ve darken()
ile yapmak zorunda birinin kodunu uygularken Benim özel bir durum. Sebebi ne olursa olsun, ben aynı kod veya koyulaştırmak yerine mantığı ile bunu seçmek aramak mümkün olmasını istedik. Bu sadece bu yöntemi çağırmadan kodunu değiştirmek için if-else veya kullanmak değil benim inatlaşma sonucu olabilir.
$lightdark="lighten"; // or optionally can be darken
$color="fcc"; // a hex color
$percent=0.15;
include_once("csscolor.php");
$c = & new CSS_Color($color);
$rtn=call_user_func( array(&$c,$lightdark),$color,$percent);
Bir şey ile çalışıyor $c->{...}
işe yaramadı unutmayın. Üzerinde php.net 'in sayfanın altındaki okuyucu-katkıda içeriğini incelemeden sonra call_user_func
, ben yukarıdaki araya başardı. Ayrıca, bu $params
didn't work Benim için bir dizi olarak dikkat:
// This doesn't work:
$params=Array($color,$percent);
$rtn=call_user_func( array(&$c,$lightdark),$params);
Bu, yukarıda girişimi 2 argüman (yüzde) bekliyor yöntemi hakkında bir uyarı verecek.