Nové operátory

Školení, která pořádám

Článek byl psán jako Silvestrovské povyražení a není tedy myšlen vážně.

Do nejnovější vývojářské verze PHP byla přidaná funkčnost, která dovoluje používat matematické a další symboly pocházející ze znakové sady Unicode.

Nově tak lze psát např. 1 ≤ 2, 5 ≠ 6, 3 × 4 nebo 15 ÷ 5. Jednodušší je i psaní bitových operátorů, kde např. 1 « 3 dává výsledek 8. Pro přístup k vlastnostem a metodám objektů lze místo -> používat . Zjednodušuje se i zápis konstant, kde .25 lze psát jako ¼, .375 jako ⅜ a jako π. Současně dochází k přejmenování některých funkcí, takže exit se stává aliasem pro a array_sum pro . Místo funkce sqrt lze používat . Pro dopřednou kompatibilitu můžete tyto funkce emulovat:

<?php
define("½", .5);
define("¼", .25);
define("⅜", .375);
define("π", M_PI);

if (!function_exists("†")) {
    function ($status = 0) {
        exit($status);
    }
}

if (!function_exists("∑")) {
    function ($array) {
        return array_sum($array);
    }
}

if (!function_exists("√")) {
    function ($x) {
        return sqrt($x);
    }
}

(¼); // .5
cos(π); // -1
();
?>

Staré operátory zatím zůstávají v platnosti, jejich použití ale vyvolá chybu E_STRICT. V další verzi se počítá s definitivním odstraněním zastaralých operátorů.

Jakub Vrána, Ze zákulisí, 31.12.2007, diskuse: 42 (nové: 0)

Diskuse

Honzy:

Jsem jediny, komu se toto zda krok spatnym smerem?

Alespon mi prijde jednodusejsi napsat exit nez † nebo sqrt nez √. Nic proti pouzivani obou, ale zrusit ty puvodni se mi osobne nelibi. :-/

Merxes:

Ačkoliv se nepovažuji za osobu konzervativní, domnívám se že je to velmi špatný krok. Tu odmocninu bych ještě chápal ale zrušení exit mi přijde fakt padlý nahlavu.

ikona zaachi:

Osobně si myslím že zde se vývojáři opravdu sekli.
Osobně jsem zvyklí na psaní operátorů tak jak jsou doposud a to ne jenom v PHP ale i v jiných programovacích jazycích, ve kterých jsou jejich názvy dost podobné.
Takováto syntaxe bude dle mého názoru strašně nepřehledná a úplně zbytečná. Nechápu proč chtějí vývojáři vybočovat ze zajetých kolejí a směřovat k něčemu novému, horšímu.
To aby jsem měl při programování zapnutou mapu znaků?

SendiMyrkr:

Ja si myslim to stejny.... zacinam mit dojem ze php se za kazdou cenu snazi bejt originalni a vubec vyvojare nezajima ze tim zpusobi vic skody nez uzitku.... kdyz si clovek uvedomi kolik klavesovejch zkratek umi na to aby obstojne ovladal software kterej pouziva a ted bude muset pouzivat bud dalsi zkratky nebo mit, boze chran, zaplou mapu znaku a v ni neco hledat.... zajimavej napad ale myslim ze by jeste notnou dobu nemel prekrocit hranice prijemnyho rozsireni.... ale pokud hodlaji v dalsi verzi stavajici operatory a nektere fce nahradit nejakymi znaky unicode tak se opet, a tentokrat opravdu znatelne, projevi nejvetsi, alespon podle meho nazoru, neduh php... a tim jsou pomerne caste problemy se zpetnou kompatibilitou....

funtom:

Také se mi to nelíbí ale je to pochopitelný komerční tah Zendu, který plánuje prorazit i na poli hardwaru. Současně s uvolněním nové verze PHP s těmito změnami začne Zend pod svou značkou prodávat klávesnice, které budou tyto speciální znaky přímo obsahovat (nových 15 kláves vedle numerické klávesnice).

Je čas udělat místo na stole :-)

Roman Pištěk:

:-)))

obluda:

-))) drsne

marek:

ten link se mi nedaří otevřít, škoda...  :(

každopádně mi to přijde dost vtipný :) †();

Jan Tichý:

Safraporte, Jakube, tohle mi nesmíš dělat. Chvíli jsem nevěřil svým očím, než jsem zjistil, že už je vlastně zítra...

ikona dgx:

ufff...

pl4nt:

apríl? :)

Roman Pištěk:

◊() nebo ɷ() namísto __destruct() ...

škoda, že while (!∞) { ... } by nemělo v PHP valné využití...

Michal Till:

Měl jste napsat, že do standardní distribude PHP bylo přidáno rozšíření Operator a s ním možnost přetížit takřka všechny operátory. To by bylo bohužel stejně vtipné :-(.

obluda:

rofl -)

jlx:

No malem jsem z toho omdlel... :-D Pak mi doslo co je za den :-D

Michalek:

Přiznávám to nerad, ale až do přečtení komentáře od Jana Tichého jsem to "žral i s navijákem". :)

WTH:

What the hell is going on here?

petík:

this article is only joke

ikona Jakub Hejda:

Připadá mi to nepraktické a nesystémové.
Podobně jako kdysi někdo přeložil Flash 5 do češtiny a současně s tím i ActionScript. To byl maglajs šílenej.

Tohle "vylepšení" se patrně prosadilo jen proto, aby někdo dokázal, že UTF nemá hranic...

paranoiq:

Připadá mi to nepraktické a nesystémové.
Podobně jako kdysi někdo přeložil vzorce v Excelu do češtiny.. :(

ikona Ondra:

Apríl na poslední den v roce...inu proč ne? Můj favorit je fce † ;))

ikona Dan:

Pěkný fór:-) Chvíli jsem ale nad tím nevěřícně kroutil hlavou, přiznávám:-)

ikona Mek:

LOOOOOL no toto bolo dost dobre :) ale nebolo by zle tam tieto operatory pridat a stare ponechat :)

ikona v6ak:

Jako sranda dobrý, ale přiznám se, že tyto znaky moc neumím psát. Určitě bych ponechal staré operátory a fce. Jinak †.

FJ:

No to si děláte p...l!!!
<?php
 
if ("→"=="->") {
      echo "..†..vybodnu se na programování a začnu pěstovat kedlubny...";
  }
?>
PS:
Není někde k podepsání protestní petice??

Inza:

No teda, Kubo...jsem další oběť...až po přečtení komentářů mi přestalo být mdlo. Tohle se povedlo!;-)

Tomik:

Podle mě se na
<?php
exit();
?>
spíš hodí
<?php
();
?>

:)

optik:

smrtka sedla, jak ulitá :-)))

marek:

případně nožičky za goto...  (nebo radši zrušit goto? :) )

optik:

goto = smrtka s nožičkami

bohdy:

To je skoro na trestni oznameni za sireni poplasne zpravy :D

Dundee:

Hezkej joke :) nastesti jsem se nenechal nachytat.

Peane:

Myslim ze v dalsim vydani PHP se muzeme tesit na <?php ♥(); , (); a ☀(); ?> ...unika mi smysl...

Ares:

Tohle je podle mě nesmysl... Při hodinách matematiky vždycky hrozně prskám, kolik možnejch a nemožnejch klikiháků se tam používá, oproti PHPku a teď to prosakuje i do něj....

ikona Marty:

1) Také nerozumím, proč by to mělo být k užitku (nějaké usnadnění pro nováčky v PHP?)
2) Docela by me zajímal názor pana Vrány, který se zdá, že taktně mlčí a svůj názor nechce zveřejnit :-)

Marty:

priste budu cist KOMPLETNE cely clanek.. *TIRED*

ikona Jenik:

Článek byl psán jako Silvestrovské povyražení a není tedy myšlen vážně. => :))))))))

Ladis:

$a==1 ☺ echo 'ok' ☻ echo 'error' ;

Ladis:

Oops, některé znaky nám to ve výpisu nezobrazuje. Pro dešifrování zkopírovat&vložit do textového pole.

paranoiq:

pěkný :)
sice jde o operátory a ne o proměnné, ale tvoje silvestrovské php se začíná nebezpečně podobat perlu :P

1okaty:

Teda sakra... az ma zalialo studenym potom... este ze je to len sranda... a este vacsia sranda je to.. ako si kazdy precita nadpis a to co je pod nim automaticky ignoruje... (aj ja)

msx:

Toto je fakt dobrý článok. Ja som to pochopil tak, že bude pridaná nová funkčnosť a keď som si na konci prečítal, že, pôvodná skončí, vtedy mi došlo. Ale po prečítaní prvých riadkov som už pozeral, že aký je dátum článku a 1. 4. to nebolo a tak som teda čítal ďalej.

Na druhú stranu, tento článok vnímam pozitívne, pretože som po mnohých rokoch programovania v PHP zistil aká je konštanta pre PI. Dodnes som bol v tom, že PI v PHP neexistuje. Pravda je, že som PI potreboval len raz aj to len pre vlastné účely, tak som si z toho ťažkú hlavu nerobil a negúglil som, aby som to zistil.

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.