[ sjaker @ 22.06.2015. 19:10 ] @
Imam funkcije koje vracaju true ili false pa onda to obradjujem na stranici. Jel mogu da naprasvim funkcije koje ce vracati poruke. Mozda neka ideja...?
recimo:

Code (php):


$errors = array();

function proveras_passworda() {
...
$errors[] = 'Popunite polje za lozinku';

}

echo provera_passworda();

 


Jel moze to da radi? Hocu da mi na stranicama gde je html kod bude sto manje php-a
[ plus_minus @ 22.06.2015. 21:24 ] @
Može. Ali moraš da `provučeš` promenjivu kroz funkciju. Ne možeš global scope ($errors) da uvučeš u local scope (funkcija) bez referenciranja, direktnog prosleđivanja promenjivih kao argument funkcije ili global keyworda unutar funkcije. Ima još načina, kao što je korišćenje objekata pa kroz statična svojstva izbacuješ šta ti treba ili definisanje konstanti koje se vide svugde pa i unutar funkcija.

Evo ti konkretan prost primer sa konstantom ako želiš da ti funkcija nema argumente, a ni global $variable;

Code (php):


<?php

define('ARRAY_ERRORS', base64_encode(serialize(
     array(
          'err0' => 'Popunite polje za lozinku',
          'err1' => 'Desila se greška tu i tu, zbog toga i toga',
          'err2' => 'Desila se greška tamo i onde, zbog ovoga i onoga',
          'err3' => 'E, ova greška se desila - samo zato!',
          'err4' => 'Ovo je neočekivana greška',
          'err5' => 'Molimo vas, pročitajte pravilnik..',
     ))));


function provera_passworda() {

     if(!defined('ARRAY_ERRORS')) die('We need error mssgs source!');
     else
     {
          $errors = unserialize(base64_decode(ARRAY_ERRORS));
                // $errors['err0'] === 'Popunite polje za lozinku';
     }
}

echo provera_passworda();

 


Inače, ako hoćeš da nastaviš da radiš sa php-om, učini sebi uslugu i čitaj šta piše ovde .. http://php.net/manual/en/language.variables.scope.php