Bloki try-catch PHP: czy są w stanie wychwycić nieprawidłowe typy arg?
Tło: Przypuśćmy, że mam następujące oczywiście niepoprawne PHP:
try{
$vtest = '';
print(array_pop($vtest));
}catch(Exception $exx){}
Aby działało z array_pop, $ vtest powinien oczywiście być tablicą, a nie łańcuchem. Niemniej jednak po uruchomieniu tego kodu wyświetlane jest Ostrzeżenie. Nie chcę tego, chcę tylko, aby kod zawiódł bezgłośnie.
Pytanie: Czy jest coś wyjątkowego w próbie catch PHP w porównaniu z innymi językami, które powodują, że nie działa?
Zrzeczenie się: Dla porównania prawdą jest, że istnieją inne sposoby radzenia sobie z tą sytuacją w PHP, ale są one niepożądane. Celem jest tutaj:
Sztuczka „na znak”:
$vtest = '';
print(@array_pop($vtest)); // <-- would like to avoid this
Casting typu:
$vtest = '';
$vtest = (array)$vtest;
print(array_pop($vtest));