[php] define, defined

Pozdrav!

Zanima me, zakaj spodnja koda, v primeru, da je IN_PHP definiran kot false vrne 1 in v primeru da je true tudi 1. Nebi moglo za false vrnit 0?

site.php

define('IN_PHP', false); // true, false
require_once('common.php');

common.php:

echo defined('IN_PHP');

4 odgovori

ker je konstanta definirana in ima vrednost false

1

Torej samo v primeru da ni definirana bi vrnilo 0.. hvala!

heh :D zakaj le

  1. ti definiraš konstanto
  2. ti pokličeš funkcijo defined, kar pomeni ali je konstanta definirana
  3. ta funkcija ne gleda vrednost konstante temveč samo ali konstanta obstaja ali ne

torej ker konstanta IN_PHP obstaja (pa je čisto vseeno ali je true ali false) vrne vedno true oziroma 1

2

Joj.. zdaj sem komaj skapiral kaj sem jaz razmišljal:
INPHP = defined('INPHP')

Hvala za odgovore..