You can do this too, with anonymous function:
<?php
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or function() {
$errstr = socket_strerror(socket_last_error());
echo ("Failed to create socket: " . $errstr);
socket_clear_error();
};
?>
socket_clear_error
(PHP 4 >= 4.2.0, PHP 5)
socket_clear_error — Soket üzerindeki hatayı veya son hata kodunu siler
Açıklama
void socket_clear_error
([ resource
$soket
] )
Belirtildiği takdirde soket üzerindeki hata kodunu
yoksa küresel son hata kodunu siler.
Bu işlevle doğrudan bir soket üzerindeki hata kodunu silebileceğiniz gibi eklentinin küresel son hata kodunu da silebilirsiniz. Bir uygulamanın belli bir bölümünde bir hata oluşup oluşmadığını saptamak için yararlıdır.
Dönen Değerler
Hiçbir değer dönmez.
Ayrıca Bakınız
- socket_last_error() - Soket üzerindeki son hatanın kodunu döndürür
- socket_strerror() - Bir soket hatasıyla ilgili açıklamayı döndürür
raphael at engenhosweb dot com dot br
27-Jul-2011 08:45
ludvig dot ericson at gmail dot com
23-May-2006 10:08
If you want to clear your error in a small amount of code, do a similar hack as to what most people do in SQL query checking,
<?php
$result = mysql_query($sql) or die(/* Whatever code */);
?>
It could look like this:
<?php
if (!($socket = socket_create(/* Whatever code */)) {
echo ("Failed to create socket: " . socket_strerror(socket_last_error()) and socket_clear_error());
}
?>
As you can see, I use "and" here instead of "or" since the first part will always return true, thus if you use or PHP's lazy boolean checking will not execute the last part, which it will with an and if the first part is true.
