Forum » Programiranje » PHP variable scope
PHP variable scope
marjan_h ::
Ali lahko kdo prosim popravi sledečo kodo, ne razumem zakaj ne vidi spremenljivke "s":
Hvala lepa.
<?php if ($rocka = opendir('./wp-content/themes/mojatema/slideshow/')) { global $s; $s = 0; while (false !== ($file = readdir($rocka))) { if (!($file == '.' || $file == '..')){ if ($s == 0){ echo "<div class='item active'>"; } else { echo "<div class='item'>"; } echo "<img src='/wordpress/wp-content/themes/mojatema/slideshow/".$file."' />"; echo "</div>"; } $s++; } closedir($rocka); $s = 0; } ?>
Hvala lepa.
Jarno ::
Poskusi deklarirati zunaj if-statementa.
Tole pogojno deklariranje zna biti nekonvencionalno.
Tole pogojno deklariranje zna biti nekonvencionalno.
#65W!
marjan_h ::
Sem poskusil, vendar ne dela. Zato sem dodal global oznako pa še vedno ne dela. Dela edino, da dam v if stavku npr.
0 == 0.
marjan_h ::
Ta pogoj je seveda brezveze, želim le da upošteva vrednost spremenljivke "s". Kaj bi še lahko šlo narobe?
marjan_h ::
Evo še nekaj, kjer ne vidim napake:
V bistvu mi ne prikaže slik v my-slideshow. Kot vidite že programiram od 12.00 naprej, tako da je vsaka pomoč dobrodošla.
Delam pa tole: https://www.w3schools.com/bootstrap/boo... Nič kaj zapletenega.
<?php $s_dir = size(scandir('./wp-content/themes/mojatema/slideshow/')); foreach (range(0, $nu) as $nu) { if ($nu == 0){ echo "<li data-target='#my-slideshow' data-slide-to='" . $nu ."'class='active'></li>"; } else { echo "<li data-target='#my-slideshow' data-slide-to='" .$nu . "'></li>"; } } ?>
V bistvu mi ne prikaže slik v my-slideshow. Kot vidite že programiram od 12.00 naprej, tako da je vsaka pomoč dobrodošla.
Delam pa tole: https://www.w3schools.com/bootstrap/boo... Nič kaj zapletenega.
blay44 ::
Zdej ne vem katero verzijo phpja uporabljaš. To je še bolj vžgano kot C
Če imaš razred pravilno določen, tarče(slike) tudi spremeni tiste pike pri nu-ju v vejice. Recimo?
Lahko pa, glede na verzijo $nu v rage funkciji šteka?
Če imaš razred pravilno določen, tarče(slike) tudi spremeni tiste pike pri nu-ju v vejice. Recimo?
Lahko pa, glede na verzijo $nu v rage funkciji šteka?
marjan_h ::
Vejice? Od kdaj ima pa php vejice za konkatenacijo? Jaz imam zadnjo verzijo Wordpressa, ne vem kero verzijo php-ja uporablja zadnji Wordpress? Je pa res, da že dolg časa nisem nič programiral, tako da če kdo vidi kakšno napako kje, ali pa mogoče kaj bi šlo narobe?...
blay44 ::
marjan_h ::
Sem poskusil z vejicami. Še vedno ne dela.
Težko bi rekel, da nimam kaj definirano saj je vsa koda v bistvu ta, ki jo vidiš. Ostalo je HTML5, slike, bannerji. Nekaj kar že deluje.
Uporabljam pa visual studio code, sicer pa nikoli nisem debugiral php kode, verjetno rabim IDE, ali lahko kar s tem?
Težko bi rekel, da nimam kaj definirano saj je vsa koda v bistvu ta, ki jo vidiš. Ostalo je HTML5, slike, bannerji. Nekaj kar že deluje.
Uporabljam pa visual studio code, sicer pa nikoli nisem debugiral php kode, verjetno rabim IDE, ali lahko kar s tem?
smacker ::
(range(0, $nu) as $nu) ... tu je napaka, ker $nu prepišeš Daj AS $nekaj_druga, pa potem seveda izpiši $nekaj_druga namesto $nu
marjan_h ::
Ne smacker, še vedno ne dela. Je pa res, da je bila tudi to napaka. Tudi ta koda ne dela:
V zakomentirani HTML kodi je primer kako mora končna koda izgledati. Če zakomentiranm php kodo, potem dela.
V zakomentirani HTML kodi je primer kako mora končna koda izgledati. Če zakomentiranm php kodo, potem dela.
<ol class="carousel-indicators"> <?php foreach (range(0, 1) as $a) { if ($a == 0){ echo "<li data-target='#my-slideshow' data-slide-to='" . 0 . "'class='active'></li>"; } else { echo "<li data-target='#my-slideshow' data-slide-to='" . 1 . "'></li>"; } } ?> <!-- <li data-target="#my-slideshow" data-slide-to="0" class="active"></li> <li data-target="#my-slideshow" data-slide-to="1"></li> <li data-target="#my-slideshow" data-slide-to="2"></li> --> </ol>
kyusss ::
<ol class="carousel-indicators"> <?php foreach (range(0, 1) as $a) { if ($a == 0){ echo '<li data-target="#my-slideshow" data-slide-to="0" class="active"></li>'; } else { echo '<li data-target="#my-slideshow" data-slide-to=""></li>'; } } ?> <!-- <li data-target="#my-slideshow" data-slide-to="0" class="active"></li> <li data-target="#my-slideshow" data-slide-to="1"></li> <li data-target="#my-slideshow" data-slide-to="2"></li> --> </ol>
marjan_h ::
@kyusss Tudi tvoja koda ne dela :/ Ne vem zakaj samo statična HTML koda dela. Sicer pa ne vem kako to debugirat.
Miha 333 ::
Koda od kyuss-a meni dela, verjetno pa je mišljeno tako:
Strogo po pravilih gledano bi moral uporabiti primerjalni operator ===, saj primerjaš identične vrednosti. O razliki med == in === si preberi v manual-u. Sicer v tem primeru ne vpliva na rezultat, a enkrat te zna boleti glava zaradi tega.
Seveda tole ne bo delovalo:
Prav je:
Lahko kar na začetku kode: http://php.net/manual/en/function.error...
echo '<li data-target="#my-slideshow" data-slide-to="' . $a . '"></li>';
Strogo po pravilih gledano bi moral uporabiti primerjalni operator ===, saj primerjaš identične vrednosti. O razliki med == in === si preberi v manual-u. Sicer v tem primeru ne vpliva na rezultat, a enkrat te zna boleti glava zaradi tega.
Seveda tole ne bo delovalo:
echo "<li data-target='#my-slideshow' data-slide-to='" . 1 . "'></li>";
Prav je:
echo "<li data-target='#my-slideshow' data-slide-to='" . '1' . "'></li>";
Kje se to nastavi? V visual studio code ali na strežniku?
Lahko kar na začetku kode: http://php.net/manual/en/function.error...
Zgodovina sprememb…
- spremenilo: Miha 333 ()
marjan_h ::
Še eno težavo imam. Ugotovil sem da podajanje poti v nizu ni najbolj primerno. Ampak ne znam pravilno sintaktično zapisati naslednjega ukaza:
Stvar je preprosta, ampak že dolgo časa nisem programiral v php.
Hvala.
echo '<img src="<?php echo get_template_directory_uri(); ?> /slideshow/"' .$file. "' />';
Stvar je preprosta, ampak že dolgo časa nisem programiral v php.
Hvala.
smacker ::
< ? php echo ... ? > rabiš v html-ju, tu si pa že v php in echo, zato preprosto zlepiš stringe z operatorjem .
echo '<img src="' . get_template_directory_uri() . '/slideshow/' . $file . '" />';
marjan_h ::
Hvala, sem ugotovil da funkcija:
ne vrne ničesar. Uporabil sem getcwd(). Ampak to verjetno ni v slogu Wordpressa? Hočem da je tema prenosljiva. Torej imam temo Mojatema in noter so posamezni php fajli ter direktoriji kot je slideshow, v katerem so slike. Torej kaj uporabit, da bo delovalo za temo? Ker getcwd() vrne celotno pot. In ne relativno. Ne vem pa zakaj get_template_directory_uri() ne vrne ničesar. Vsaj relativno bi, če že.
get_template_directory_uri()
ne vrne ničesar. Uporabil sem getcwd(). Ampak to verjetno ni v slogu Wordpressa? Hočem da je tema prenosljiva. Torej imam temo Mojatema in noter so posamezni php fajli ter direktoriji kot je slideshow, v katerem so slike. Torej kaj uporabit, da bo delovalo za temo? Ker getcwd() vrne celotno pot. In ne relativno. Ne vem pa zakaj get_template_directory_uri() ne vrne ničesar. Vsaj relativno bi, če že.
blay44 ::
Kar se konča z _uri, ti bo funkcija vrnila javni naslov. Ne pa naslova teme shranjene v serverju.
Ne vem pa kako je v WPju.
Ne vem pa kako je v WPju.