| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

14-06-2011, 16:48
|
|
maxi123
Registrierter Benutzer
|
|
Registriert seit: Jun 2011
Beiträge: 4
|
|
socket class problem
hi leute,
code gerade eine socket klasse, sieht so aus
Code:
<?php
error_reporting(0);
class socket{
private $socketServerAddress;
private $socketServerPort;
private $socketSocketHandler;
public function __construct($serverAddress, $serverPort){
$this->setInternalVariable('socketServerAddress', $serverAddress);
$this->setInternalVariable('socketServerPort', $serverPort);
}
public function __destruct(){
}
public function setInternalVariable($variable, $value){
$this->$variable = $value;
}
public function errorGetLast(){
return error_get_last();
}
private function formatError($errorCode){
$errorTable = array(
'1' => 'E_ERROR',
'2' => 'E_WARNING',
'4' => 'E_PARSE',
'8' => 'E_NOTICE',
'16' => 'E_CORE_ERROR',
'32' => 'E_CORE_WARNING',
'64' => 'E_COMPILE_ERROR',
'128' => 'E_COMPILE_WARNING',
'256' => 'E_USER_ERROR',
'512' => 'E_USER_WARNING',
'1024' => 'E_USER_NOTICE',
'2048' => 'E_STRICT',
'4096' => 'E_RECOVERABLE_ERROR',
'8192' => 'E_DEPRECATED',
'16384' => 'E_USER_DEPRECATED',
'30719' => 'E_ALL',
);
return $errorTable[$errorCode];
}
public function shutdownProcess($errorArrayFormat){
printf("%s In %s on Line %d \n%s \n", $this->formatError($errorArrayFormat['type']), $errorArrayFormat['file'], $errorArrayFormat['line'], $errorArrayFormat['message']);
}
public function createSocket(){
$this->socketSocketHandler = socket_create(AF_INET, SOCK_STREAM, 0) || die ($this->shutdownProcess($this->errorGetLast()));
}
public function bindSocket(){
socket_bind($this->socketSocketHandler, $this->socketServerAddress, $this->socketServerPort) || die ($this->shutdownProcess($this->errorGetLast()));
}
}
$object= new socket('xxxxx','xxx');
$object->createSocket();
$object->bindSocket();
das Problem ist hier nur, dass
er mir sagt dass socket_bind() expects parameter 1 to be resource, boolean given
ABER die ressource wurde doch korrekt gesetzt?
danke euch!
es liegt offensichtlich an dem || DIE
|| DIE geht nicht
nur OR
wieso das denn????
Geändert von maxi123 (14-06-2011 um 16:52 Uhr)
|

14-06-2011, 16:54
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Eine Klasse sollte gar kein die() machen. die() ist böse.
Du solltest deinen Code so formatieren, dass man nicht 2 Meter nach rechts scrollen muss, um ihn zu lesen.
|

14-06-2011, 17:03
|
|
maxi123
Registrierter Benutzer
|
|
Registriert seit: Jun 2011
Beiträge: 4
|
|
sehe ich sehr anders, tut aber eigentlich auch nichts zur sache
ausserdem muss ich hier gar nicht scrollen.
|

14-06-2011, 17:06
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
h3ll sagte es schon, dass du gar nicht mit die() arbeiten solltest, aber zu deiner Frage:
|| und or sind in PHP nicht das gleiche und daher auch nicht gegenseitig austauschbar. Die beiden Operatoren besitzen eine unterschiedliche Rangfolge, was syntaktische Unterschiede mit sich bringt und haben auch unterschiedliche Rückgabewerte.
Edit: Was das Scrollen angeht: wenn dein Bildschirm groß genug ist – schön für dich. Denk aber bitte auch an die anderen. In den Forenregeln steht übrigens auch, dass eine Zeilenlänge von 100 Zeichen eingehalten werden soll.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (14-06-2011 um 17:08 Uhr)
|

14-06-2011, 17:07
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Zitat:
Zitat von maxi123
sehe ich sehr anders, tut aber eigentlich auch nichts zur sache
|
Richtig. Was du siehst, ist hier egal. Es ist jedenfalls falsch und gehört korrigiert.
Zitat:
Zitat von maxi123
ausserdem muss ich hier gar nicht scrollen.
|
Schön für dich, aber davon hab ich nichts. Wenn man sich nicht auf einen anderen Standard geeinigt hat, sollte eine Codezeile niemals länger als 80 Zeichen sein. Dies ist also in einem öffentlichen Forum, wo jeder Zugang hat, das absolut erlaubte Maximum. Willst du nicht, dass andere Leute deinen Code lesen können, dann poste nicht in einem öffentlichen Forum.
|

14-06-2011, 17:09
|
|
maxi123
Registrierter Benutzer
|
|
Registriert seit: Jun 2011
Beiträge: 4
|
|
haste mir da nen link oder ne erklärung zu?
bisher dachte ich AND => &&
or => ||
danke!
|

14-06-2011, 17:10
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von maxi123
haste mir da nen link oder ne erklärung zu?
|
http://www.php.net/manual/de/language.operators.php
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

14-06-2011, 17:42
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Brichst du jetzt bitte den Code um!?! (mit dem  -Button)
Klar, es ist beides ein logisches oder, aber:
Zitat:
PHP-Code:
// Das Ergebnis des Ausdrucks (false || true) wird $e zugewiesen // Funktioniert wie: ($e = (false || true)) $e = false || true;
// Die Konstante "false" wird $f zugewiesen und danach wird true ignoriert // Funktioniert wie: (($e = false) or true) $f = false or true;
|
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|