Obecnie pracujesz z potrójnego operatora:
$friendid = (!isset($_GET['friendid'])) ? $_GET['friendid'] : 'empty';
rozbicie go na rachunku if-else
i wygląda to tak:
if(!isset($_GET['friendid']))
$friendid = $_GET['friendid'];
else
$friendid = 'empty';
Spójrz na to, co naprawdę dzieje się w rachunku if
:
!isset($_GET['friendid'])
Uwaga wykrzyknik (!) przed funkcją isset
. To inny sposób na powiedzenie "przeciwieństwo". To, co tu robisz, polega na sprawdzeniu, czy nie ma wartości ustawionej w $_GET['friendid']
. A jeśli tak, to $friendid
powinna przyjąć tę wartość.
Ale tak naprawdę, pękłoby, ponieważ $_GET['friendid']
nawet nie istnieje. I nie możesz wziąć wartości czegoś, czego tam nie ma.
Biorąc to od początku, ustawiono wartość dla $_GET['friendid']
, więc pierwszy warunek if
jest teraz fałszywy i przekazuje go do opcji else
. W takim przypadku ustaw wartość zmiennej $friendid
na empty
.
Należy usunąć wykrzyknik, a następnie wartość $friendid
przyjmie wartość $_GET['friendid']
, jeśli została wcześniej ustawiona.
Należy echo „pusty”, bo trzeba wyrażenia w trójskładnikowego operator do tyłu. –