{"id":195,"date":"2021-03-31T02:47:31","date_gmt":"2021-03-31T02:47:31","guid":{"rendered":"http:\/\/jplatz.com.br\/syntax\/?p=195"},"modified":"2021-11-12T23:54:07","modified_gmt":"2021-11-12T23:54:07","slug":"php-utilizando-ternario-para-executar-acoes-if-else","status":"publish","type":"post","link":"https:\/\/jplatz.com.br\/syntax\/2021\/03\/31\/php-utilizando-ternario-para-executar-acoes-if-else\/","title":{"rendered":"PHP Utilizando Operador Tern\u00e1rio para Executar A\u00e7\u00f5es IF \/ ELSE"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>$high_consuming_resources = true;\n($high_consuming_resources)\n  ? set_time_limit(0)\n  : set_time_limit(30);\n\n$high_consuming_resources = false;\n($high_consuming_resources)\n  ? init_set('memory_limit', '2048M')\n  : null;<\/code><\/pre>\n\n\n\n<p>Depois que a gente come\u00e7a a trabalhar com Clean Code umas das tend\u00eancias \u00e9 tentar ao m\u00e1ximo eliminar os famigerados if \/ else com brackets.<\/p>\n\n\n\n<p>Ent\u00e3o estes dias eu estava adicionando novas features em uma classe e conforme o escopo eu poderia ou n\u00e3o executar um processo de acordo com os par\u00e2metros recebidos, mas n\u00e3o queria dar o bra\u00e7o a torcer&#8230; ent\u00e3o decidi experimentar algo diferente.<\/p>\n\n\n\n<p>Usando um operador tern\u00e1rio eu simplesmente desprezei  a vari\u00e1vel para armazenar o resultado da opera\u00e7\u00e3o. Como as minhas opera\u00e7\u00f5es eram VOID elas n\u00e3o produziam nenhum retorno mesmo.<\/p>\n\n\n\n<p>Depois foi simples, na parte TRUE \/ FALSE do tern\u00e1rio coloquei as instru\u00e7\u00f5es para executar as opera\u00e7\u00f5es desejadas. Tem que ser uma opera\u00e7\u00e3o \u00fanica, ou ent\u00e3o uma opera\u00e7\u00e3o em cadeia tipo um objeto que retorna self e permite encadear as opera\u00e7\u00f5es.<\/p>\n\n\n\n<p>Caso voc\u00ea tenha duas ou mais opera\u00e7\u00f5es voc\u00ea pode encapsul\u00e1-las em um novo m\u00e9todo e ent\u00e3o no tern\u00e1rio teria uma \u00fanica opera\u00e7\u00e3o a ser invocada.<\/p>\n\n\n\n<p>Tamb\u00e9m surgiu a situa\u00e7\u00e3o onde eu tinha uma opera\u00e7\u00e3o somente para a parte TRUE do tern\u00e1rio. Ent\u00e3o a solu\u00e7\u00e3o mais l\u00f3gica foi apenas adicionar um NULL na parte FALSE fechando o ciclo do operador.<\/p>\n\n\n\n<p>O mesmo c\u00f3digo acima poderia ser escrito desta forma com o tradicional IF \/ ELSE&#8230;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$high_consuming_resources = true;\nif ($high_consuming_resources) {\n    set_time_limit(0);\n} else {\n    set_time_limit(30);\n}\n\n$high_consuming_resources = false;\nif ($high_consuming_resources) {\n    init_set('memory_limit', '2048M');\n}<\/code><\/pre>\n\n\n\n<p>E a\u00ed? Qual destas formas voc\u00ea acha mais leg\u00edvel ou mais agrad\u00e1vel para debugar mentalmente?<\/p>\n\n\n\n<p>Confesso que acabei me acostumando com o tern\u00e1rio, na hora de ler o c\u00f3digo parece que flui melhor o racioc\u00ednio. <\/p>\n\n\n\n<p>Sei l\u00e1, pode ser s\u00f3 prefer\u00eancia pessoal mesmo!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Depois que a gente come\u00e7a a trabalhar com Clean Code umas das tend\u00eancias \u00e9 tentar ao m\u00e1ximo eliminar os famigerados if \/ else com brackets. Ent\u00e3o estes dias eu estava adicionando novas features em uma classe e conforme o escopo eu poderia ou n\u00e3o executar um processo de acordo com os par\u00e2metros recebidos, mas n\u00e3o [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26,2,3],"tags":[90,61,89,88,91],"class_list":["post-195","post","type-post","status-publish","format-standard","hentry","category-backend","category-coding","category-php","tag-brackets","tag-cleancode","tag-else","tag-if","tag-ternary"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts\/195","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/comments?post=195"}],"version-history":[{"count":5,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts\/195\/revisions"}],"predecessor-version":[{"id":369,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts\/195\/revisions\/369"}],"wp:attachment":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/media?parent=195"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/categories?post=195"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/tags?post=195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}