Nové operátory

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

Dopsal jsem knihu

Č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: 41 (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. :-/
# 31.12.2007 01:58:06 reagovat

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.
# 31.12.2007 02:51:00 reagovat

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ů?
# 31.12.2007 03:16:13 reagovat

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....
# 31.12.2007 04:10:25 reagovat

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 :-)
# 31.12.2007 15:26:41 reagovat

Roman Pištěk:

:-)))
# 31.12.2007 15:31:41 reagovat

obluda:

-))) drsne
# 31.12.2007 20:17:21 reagovat

marek:

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

každopádně mi to přijde dost vtipný :) †();
# 31.12.2007 02:04:19 reagovat

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...
# 31.12.2007 02:07:41 reagovat

ikona dgx:

ufff...
# 31.12.2007 03:13:16 reagovat

pl4nt:

apríl? :)
# 31.12.2007 14:22:42 reagovat

Roman Pištěk:

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

škoda, že while (!∞) { ... } by nemělo v PHP valné využití...
# 31.12.2007 02:30:51 reagovat

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é :-(.
# 31.12.2007 04:44:58 reagovat

obluda:

rofl -)
# 31.12.2007 04:56:57 reagovat

jlx:

No malem jsem z toho omdlel... :-D Pak mi doslo co je za den :-D
# 31.12.2007 10:39:21 reagovat

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". :)
# 31.12.2007 11:45:09 reagovat

WTH:

What the hell is going on here?
# 31.12.2007 14:18:32 reagovat

petík:

this article is only joke
# 13.3.2009 00:01:31 reagovat

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...
# 31.12.2007 16:43:21 reagovat

paranoiq:

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

ikona Ondra:

Apríl na poslední den v roce...inu proč ne? Můj favorit je fce † ;))
# 31.12.2007 16:49:36 reagovat

ikona Dan:

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

ikona Mek:

LOOOOOL no toto bolo dost dobre :) ale nebolo by zle tam tieto operatory pridat a stare ponechat :)
# 31.12.2007 18:10:35 reagovat

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 †.
# 1.1.2008 10:14:10 reagovat

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??
# 1.1.2008 12:56:09 reagovat

Inza:

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

Tomik:

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

:)
# 1.1.2008 18:08:09 reagovat

optik:

smrtka sedla, jak ulitá :-)))
# 1.1.2008 18:31:46 reagovat

marek:

případně nožičky za goto...  (nebo radši zrušit goto? :) )
# 1.1.2008 19:57:20 reagovat

optik:

goto = smrtka s nožičkami
# 2.1.2008 19:44:48 reagovat

bohdy:

To je skoro na trestni oznameni za sireni poplasne zpravy :D
# 2.1.2008 11:40:37 reagovat

Dundee:

Hezkej joke :) nastesti jsem se nenechal nachytat.
# 2.1.2008 12:35:06 reagovat

Peane:

Myslim ze v dalsim vydani PHP se muzeme tesit na <?php ♥(); , (); a ☀(); ?> ...unika mi smysl...
# 2.1.2008 18:33:11 reagovat

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....
# 3.1.2008 21:53:56 reagovat

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 :-)
# 3.1.2008 22:01:01 reagovat

Marty:

priste budu cist KOMPLETNE cely clanek.. *TIRED*
# 3.1.2008 22:17:59 reagovat

ikona Jenik:

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

Ladis:

$a==1 ☺ echo 'ok' ☻ echo 'error' ;
# 6.1.2008 03:02:52 reagovat

Ladis:

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

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
# 7.1.2008 11:43:00 reagovat

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)
# 1.3.2008 11:47:10 reagovat

Vložit příspěvek

Používejte diakritiku. Nelze používat HTML značky, 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:

© 2005-2010 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.