2015-07-07 24 views
6

sto rinfrescante qualche vecchio codice (qualcun altro ha scritto), e mi sono imbattuto in questo modo:Confondere if in php

if (empty ($role_data["role_id" == 1])) 

quali sono le ragioni (se presente) si potrebbe usare quanto sopra, invece di ?:

La leggibilità dell'IMO è peggiore ed è più codice. Le prestazioni non sono un fattore qui.

--EDIT--

Devo dire, che l'ingresso atteso ($ role_data [ "ROLE_ID"]) è un numero compreso tra 0-5 (compreso)


--Più INFO--

Ho capito male il codice la prima volta. Ma ecco cosa sta succedendo:

$role_id = htmlspecialchars (mysql_real_escape_string ($_GET["role_id"])); 
$role_data = $db->fctSelectData ("core_role" , "`role_id` = '" . $role_id . "'"); 

Questo va per ottenere i permessi per la creazione del ruolo. Ma se dato un invalido $role_id in primo luogo (tramite il parametro $ _GET), restituisce nulla, e quindi il controllo per un valore vuoto in:

if (empty ($role_data["role_id" == 1])) 

io sono ancora non del tutto chiara del motivo per cui è scritto in questo modo

+3

'if (vuoto ($ role_data [" role_id "== 1]))'! == 'if ($ role_data [" role_id "]! = 1)'. Il tuo vecchio codice è: 'if (vuoto ($ role_data [" role_id "== 1]))' -> 'if (vuoto ($ role_data [0]))' (Perché '" role_id "== 1' = FALSE e a causa del tipo giocoleria = 0) – Rizier123

+0

@ Rizier123 è corretto entrambi sono diversi. –

+2

È qualcuno che tenta di essere carino e mettersi in mostra, mentre fallisce miseramente in entrambi. Programmazione del carico totale o totale –

risposta

4

La linea

if (empty($role_data["role_id" == 1])) 

si traduce in ...

if (empty($role_data[0])) 

... dall'interprete di PHP. Questo codice potrebbe essere uno "scherzo", un hack divertente o un errore come la linea:

if (empty($role_data["role_id"]) == 1) 

..sort di senso.