Endija Lisovska pieraksti

Par Web 2.0, programmēšanu, Google, Linux, kā arī blogošanu

Daži pārbaudes jautājumi PHP iesācējiem

Izdomāju, ka varētu uzdot dažus pārbaudes jautājumus tiem, kas vēl nav profesionāļi PHP. Protams, arī profesionāļi var atrisināt viņus, bet viņiem šie jautājumi varētu šķist pārāk elementāri. Taču tādam, kas ar PHP tikai sāk strādāt, saprašana kā strādā tālāk dotie piemēri, var palīdzēt tālākās gaitās.

No sākuma būs doti jautājumi (uzdevumi) un paņemot lasīt rakstu tālāk būs pieejamas atbildes. Ja gadījumā kādai atbildei nepiekrītat vai arī nesaprotat kāpēc ir tieši tā kā es saku, droši jautājiet. Un jā - atbildes skatieties tikai tad, kad būsiet izdomājuši savas atbildes, jo pretējā gadījumā uzdevumiem nebūs tāds efekts, kādam vajadzētu būt.

1) Kura darbība strādā ātrāk: $i--; vai --$i;?

2) $a = false;
$b = true;
$x = $b and $a;
$y = $b && $a;

Kādas ir $x un $y vērtības?

3) $a = array('34');
foreach($a as $key => $value)
{
$value = $key * 2 * $value;
}

Kāda ir $a[0]; vērtība?

4) $i = 5;
$x = 0;
while($i > 0)
{
$x += --$i;
}

Kāda ir $x vērtība?

Atbildes:

1) --$i strādā ātrāk par $i--;

2) $x == true; $y == false;

3) 34

4) 10

Padalies ar citiem:
  • Digg
  • del.icio.us
  • Google
  • Reddit
  • TwitThis
  • blogmarks
  • E-mail this story to a friend!
  • Pownce
  • Print this article!

8 komentāri ierakstam “Daži pārbaudes jautājumi PHP iesācējiem”

  1. koko

    Par ātrdarbību nezinu, bet –$i dekrementējas pirms darbības, taču $i– pēc darbības.
    Pamēģini:
    $i = 5;
    echo “tagad skatamies: “.$i–;
    echo “tagad skatamies: “.–$i;

  2. Endijs Lisovskis

    Tieši tā arī ir kā tu saki - viens strādā pirms, bet otrs pēc. Tāpēc jāskatās, ko kurā gadījumā var lietot.
    Par to ka atņemšana –$i ir ātrāks biju lasījis un arī pats testējis. Protams, ātrdarbības starpība nav liela, taču ir.

  3. artisare

    $x = $b and $a; - true
    $x = ($b and $a); - false

  4. bubu

    Būtu jau jaukāk, ja tu nevis tikai iedotu pareizās atbildes, bet paskaidrotu kāpēc tās ir tieši tādas. Mani, piemēram, pārsteidza atbilde uz otro jautājumu. Es būtu teicis, ka abi mainīgie būtu bijuši false. Izrādās, ka vainīga ir operatoru prioritāte…

  5. Endijs Lisovskis

    Man bija doma par to, ka varētu uzreiz rakstīt atbildes. Bet tad es pārdomāju. Iemesls tam ir pavisam vienkāršs - es gribēju redzēt vai tas kādam interesē. Un ja kāds būtu pajautājis (tagad vai pēc mēneša) es būtu komentāros paskaidrojis kāpēc ir tā kā ir. Sākumā jau rakstīju, ka var droši jautāt. :)

    Un jā - otrajā gadījumā tieši operatoru prioritāte ir pie vainas. Un var smalki iekrist. Jo it kā && un “and” dara vienu un to pašu, taču ir nelielas neianses, kuras reizēm var būt ļoti grūti pamanāmas, kad tiek meklētas kādas skriptu kļūdas.

  6. andrisp

    Tie pirmie divi jautājumi kaut kā nesader kopā ar pēdējiem diviem. Pirmos, lai atbildētu, ir jāpārzina valodas nianses (tātad jau pat vairs neattiecas uz iesācējiem), bet trešais un ceturtais vairāk ir kā atjautības jautājumi. Tie gan iesācējiem būtu pa spēkam.

  7. Endijs Lisovskis

    Vispār andrisp tev ir taisnība. Ja taisīšu nākamo jautājumu rakstu, tad mēģināšu nedaudz vairāk piedomāt pie tā, kas tiešām ir jau nianses un kas it kā vienkāršas lietas.

  8. Toms

    Es, tāpat kā bubu, nepareizi atbildēju uz otro jautājumu.

Atstājiet komentāru

Meklēšana: