Jump to content
php.lv forumi

elseif algoritms


Pieduriens

Recommended Posts

  • Replies 30
  • Created
  • Last Reply

Top Posters In This Topic

Es nedomāju, ka ir prātīgi izmantot tādas mazpazīstamas un tikai dažās programmēšanas valodās atbalstītas fīčas.

 

Līdz 5.3 versija PHP nebija null coalescing operator, tagad ir. Dažreiz noder, jā jāpaņem pirmā ne-null vērtība no diviem vai vairākiem mainīgajiem.

Citās valodās tādi operatori arī ir, piemēram JS šādiem mērķiem izmanto "||", C# izmanto "??"

$a = $b ?: $c ?: $d; //PHP
a = b || c; //JS
a = b ?? c; //C#

Tad tu iesaki arī citās valodās nelietot šādas fīčas? Cik zinu, JS to izmanto ļoti bieži.

Link to comment
Share on other sites

> Cik daudzi programmētāji, tavuprāt, zin par tādu brīnumu?

 

Par elementāru sintaksi būtu jāzin jebkuram programmētājam. Pietam, šis te nav nekāds jaunums un ir citās valodās. ;)

 

> "pasauksim ielasmeitas un novilksim bikses, bet nesāksim taču drāzties"

 

Lolko.

Edited by daGrevis
Link to comment
Share on other sites

"Idejas pasviestas, bet nesāksim taču flame war par php" == "pasauksim ielasmeitas un novilksim bikses, bet nesāksim taču drāzties"

 

"Idejas pasviestas, bet nesāksim taču flame war par php" == "pasauksim ielasmeitas un novilksim bikses, bet nesāksim taču drāzties"

Link to comment
Share on other sites

@e-remit -

"$a = $b ?: $c ?: $d;"

Srsly? Come on, nepietiek, ka nested conditionals tā jau ir slikti lasāmi (nerunājot nemaz par PHP conditional problēmām, ja tos neliek iekavās), vajag taču vēl šitādus brīnumus izdomāt...

Turklāt vienkārši rakstot "$a = ($b ? : $c)", ja $b nav uzsetots, tad PHP versija vienalga metīs/logos undefined variable warningus,

savukārt rakstot "$a = (isset($b) ? : $c)", ja $b ir uzsetots, tad $a būs "bool true", nevis $b vērtība.

Jebkurā gadījumā, nesmuks risinājums. Īss, bet zūd readability; ilgāk laika nepieciešams, lai saprastu, ko kods dara, jo tas nav rakstīts, tev tas ir galvā jāuzbur/jāizprot. Jāņem tomēr vērā, ka pēc dažiem gadiem tavu kodu iespējams pārņems citi programmētāji un tiem būs jāzīlējās tam sviestam cauri.

 

@daGrevis - es arī slepeni heitoju PHP, man patīk strictly typed valodas, lai gan PHP universālais array() jeb "maiss" gan ir ļoti parocīgs.

Edited by jurchiks
Link to comment
Share on other sites

Turklāt vienkārši rakstot "$a = ($b ? : $c)", ja $b nav uzsetots, tad PHP versija vienalga metīs/logos undefined variable warningus,

Vienmēr meklē problēmas, kur to nav? Pēc tavas loģikas arī "echo $a;" lietot nav labi, jo, nefinēta mainīgā gadījumā, metīs warningus.

Ja nesaprati, "echo $b ?: $c ?: $d;" izvadīs to mainīgo, kurš pirmais, kastojot uz boolean, neatgriezīs false, vai arī pēdējo. Par PHP kastošanu, lasi dokumentācijā, tas nav nekāds jaunums PHP pasaulē.

Vienīgais, kam piekrītu, man arī patīk strongly typed valodas.

Link to comment
Share on other sites

Man no PHP grūti atteikties deļ pieejamajām bibliotēkām. Pēdējam projektam sāku izmantot super-sexīgo RedBean ORM. 

 

Par strong type valodu plusu piekrītu, saviem non-server darbiem izmantoju Haxe, bet servera aplikācijām pagaidām turpinu izmantot PHP. 

 

Palaist eksotiskākas valodas uz servera arī nav liela problēma mūsdienās, jo VPS ir pieejams pa lēto (vismaz ārzemēs).

Link to comment
Share on other sites

Vai sakot stronglly typed, jūs tiešām domājat stronglly typed, nevis statically typed?

http://stackoverflow.com/questions/2690544/what-is-the-difference-between-a-strongly-typed-language-and-a-statically-typed

 

P.S.

 

Pēdējā laikā kopš servera pusē izmantoju statically typed valodu, arvien vairāk sāk nepatikt rakstīt klienta puses javascriptu.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...