PHP waddo enna

bornunlucky

Well-known member
  • Oct 31, 2018
    550
    552
    93
    මචං මේක ෆන්ක්ෂන් එකක්. මේක මම යූස් කරන ලයිබ්රරි එකක තියෙන එකක්. මට මේකේ ඔප්ෂන් එකක් ඕන වෙලා. ඔව්තර් කාරයට කිව්වම මිනිහ කිව්ව මිනිහට කරන්න බෑ මේ දවස්වල ගොඩක් බිසීලු. පුලුවන්නම් මට හදල එවන්නලු එයා බලල ඒකේ ඊලඟ වර්ෂන් එකේදි ඒ වෙනස්කම් එක්ක එවන්නම්ලු.

    මචං මම මට ඕන වෙන විදියට ඒ ෆන්ෂන් එක මොඩිෆයි කරා. සරල වෙනස්කම් ටිකක් විතරයි කරේ.

    ඒත් මචං මම මොඩිෆයි කරපු ටික රී ෆැක්ටර් කරගන්න ඕන professional විදියට.

    බලන්න පහත රූප දෙකේ මම රතුපාට බෝඩර් එකකින් හයිලයිට් කරපු කොටස් දෙක.

    bQiqRgp.png


    gHJsnpB.png


    මට මචං ඕනේ ඔය මම වෙනස් කරපු තැන් දෙක හෙනම ප්‍රොෆෙෂනල් විදියට ලියාගන්න.

    බලන්න ඔය තැන් දෙකේ මම කරල තියෙන්නේ සරල if else block දෙකක් දාල එකම වගේ කොඩ් දෙකක් රිපීට් කරපු එක. ඒක නිකන් අවුල් වගේ නේ?

    නැද්ද වෙන හොද ක්‍රමයක් මේකට. අනවශ්‍ය විදියට කම්ප්ලෙක්ස් වෙන්නෙත් නැතුව වැඩේ කරගන්න ක්‍රමයක්.

    මම ඇටෑච්මන්ට් එකක් විදියට කෝඩ් එක දාන්නම්.

    මට මේක කරල දෙන්න ලොකු උදව්වක්. :yes:
     

    Attachments

    • _like_func.zip
      862 bytes · Views: 25

    Lokka Baba

    Well-known member
  • May 11, 2014
    3,366
    888
    113
    මගේ කාමරේ
    PHP:
            if ($clause == 'where') {
    
                $prefix = (count($this->qb_where) === 0 && count($this->qb_cache_where) === 0)
                ? $this->_group_get_type('') : $this->_group_get_type($type);
                
                $qb_where = array('condition' => "{$prefix} {$k} {$not} LIKE {$v}", 'value' => NULL, 'escape' => $escape);
                $this->qb_where[] = $qb_where;
                if ($this->qb_caching === TRUE)
                {
                    $this->qb_cache_where[] = $qb_where;
                    $this->qb_cache_exists[] = 'where';
                }
    
            } else {
    
                $prefix = (count($this->qb_having) === 0 && count($this->qb_cache_having) === 0)
                ? $this->_group_get_type('') : $this->_group_get_type($type);
                
                $qb_having = array('condition' => "{$prefix} {$k} {$not} LIKE {$v}", 'value' => NULL, 'escape' => $escape);
                $this->qb_having[] = $qb_having;
                if ($this->qb_caching === TRUE)
                {
                    $this->qb_cache_having[] = $qb_having;
                    $this->qb_cache_exists[] = 'having';
                }
    
            }
     

    bornunlucky

    Well-known member
  • Oct 31, 2018
    550
    552
    93
    PHP:
            if ($clause == 'where') {
    
                $prefix = (count($this->qb_where) === 0 && count($this->qb_cache_where) === 0)
                ? $this->_group_get_type('') : $this->_group_get_type($type);
                
                $qb_where = array('condition' => "{$prefix} {$k} {$not} LIKE {$v}", 'value' => NULL, 'escape' => $escape);
                $this->qb_where[] = $qb_where;
                if ($this->qb_caching === TRUE)
                {
                    $this->qb_cache_where[] = $qb_where;
                    $this->qb_cache_exists[] = 'where';
                }
    
            } else {
    
                $prefix = (count($this->qb_having) === 0 && count($this->qb_cache_having) === 0)
                ? $this->_group_get_type('') : $this->_group_get_type($type);
                
                $qb_having = array('condition' => "{$prefix} {$k} {$not} LIKE {$v}", 'value' => NULL, 'escape' => $escape);
                $this->qb_having[] = $qb_having;
                if ($this->qb_caching === TRUE)
                {
                    $this->qb_cache_having[] = $qb_having;
                    $this->qb_cache_exists[] = 'having';
                }
    
            }

    මේ විදියෙන් එක if else block එකක් අයින් වෙනව. පට්ට මචං. තව මේක ඔප්ටිමයිස් කරන්න බැරිද? :D
     

    thilina91

    Member
    May 28, 2008
    18,560
    858
    0
    New World, Grand Line
    PHP:
    if ($this->qb_caching === TRUE) 
                { 
                    $this->qb_cache_having[] = $qb_having; 
                    $this->qb_cache_exists[] = 'having'; 
                }
    You probably can move this repeating code to 1 block of code by changing the code a little bit.