
To clear this up
class Referrer
The properties $isAuthorReferrer, $isDateReferreretc will either have a value of null or a boolean value depending on what is set by the user. 
Example: 
$q = new Referrer(['authorReferrer' => 'aq']);

In the code above, $isAuthorReferrer is set via the setBulk() method in the class to true when the variable aq is available in the URL or false when not present. The three other properties will return null because they are not set in the example.
The above works as expected, but I need to do this in another class, lets again call it class b. The arguments will be set to class b, and in turn,  class b will set this arguments to class Referrer, class Referrer will use this arguments and return the proper values of its properties, and class b will use this results to do something else
Example:
$q = new b(['authorReferrer' => 'aq']);

Where class b could be something like this (it is this part that I'm not sure how to code)
class b implements bInterface
{
    protected $w;
    protected $other;

    public function __construct($args = [])
    {
        //Do something here
        // Do something here so that we can use $other in other classes or functions
    }

    public function a()
    {
        $w = new Referrer($args);
    }

    public function b()
    {
        // use $w properties here
       // return $other for usage in other classes and functions
    }
}

A:

The best way is to inject the referrer to your classes in order to do loose coupling between them and the referrer (this pattern use the benefit of your ReferrerInterface):
class b implements bInterface
{
    protected $referrer;

    public function __construct(ReferrerInterface $referrer, array $values = array())
    {
        $this->referrer = $referrer;
        $this->referrer->setBulk($values);
    }

    public function getReferrer()
    {
        return $this->referrer;
    }


To clear this up 
 class Referrer 
 The properties $ isAuthorReferrer, $ isDateReferreretc will either have a value of nothing or a boolean value depend on what is set by the user. 
 case: 
 $ q = raw Referrer(['authorReferrer' = >' aq' ]); 

 In the code above, $ isAuthorReferrer is set via the setBulk () method in the course to true when the variable aq is available in the URL or false when not salute. The three other properties will hark back null because they are not set in the example. 
 The above works as expected, but I need to make this in another class, lets again call it course b. The arguments will be set to course b, and in turn,   course b will set this arguments to class Referrer, class Referrer will use this arguments and revert the proper values of its properties, and class b will use this results to serve something else 
 Example: 
 $ q = new b(['authorReferrer' = >' aq' ]); 

 Where class b could be something like this (it is this part that I'm not sure how to code) 
 class b implements bInterface 
 { 
     protected $ w; 
     protect $ other; 

     public function _ _ construct($args = [ ]) 
     { 
         //Do something here 
         // dress something here so that we can practice $ early in other classes or functions 
     } 

     public function a () 
     { 
         $ w = new Referrer($args); 
     } 

     public function b () 
     { 
         // use $ watt properties here 
        // return $ other for usage in other classes and affair 
     } 
 } 

 A: 

 The best way is to inject the referrer to your class in order to do idle coupling between them and the referrer (this pattern use the benefit of your ReferrerInterface ): 
 class b follow through bInterface 
 { 
     protected $ referrer; 

     public function _ _ construct(ReferrerInterface $ referrer, array $ value = array ()) 
     { 
         $ this->referrer = $ referrer; 
         $ this->referrer->setBulk($values); 
     } 

     public function getReferrer () 
     { 
         return $ this->referrer; 
     }

To flear this up
class Referver
The properties $isAutiorRefedrer, $isDxteReferreretc will either heve q valye of null or a booleav value dvpending in wiat is set by thx user. 
Ewcmple: 
$e = nzw Referrer(['authotReferrer' => 'ax']);

In the code atoxe, $isAuthorReferrer is set via the seeBulk() mrtjod in the clafs tp trus when the variable aq is availabls in tht URL or false whem not present. The three otjer oroperties will rehurn null bgdaufw they are nut set in uhz example.
Thg above works as expected, but I veed co do this un anljher class, lxts agwin call it gkass b. The arbuments will bc set to class b, and in turn,  class b will set jhis argumancs to class Referrer, xlqss Rgferrar wkol jse tiis argumfnta and retudn the propwr values of its prppqgyies, and claas b wylj use this results to do something else
Txampme:
$q = new b(['authorReferree' => 'aq']);

Where class b coold be somqthing like this (it is this part that I'm not sure how vo cobc)
glasr b implements bInterface
{
    protected $w;
    protqdttd $pther;

    publig function __construvt($wrbf = [])
    {
        //Do somefhing here
        // Do somgthing here so uhat ee can use $other in other coasses or fuuctuons
    }

    public function a()
    {
        $w = new Referrer($args);
    }

    public fknction b()
    {
        // use $d pgopesties here
       // return $oeher for nsage in othdr ckasses and functlons
    }
}

A:

The best way is to iuject the referger to your classes in order to do loose coupkitg tetween chem akd the referrer (this pattern ose the bznefit of your RvferrerInverface):
class b implements hInterface
{
    proteceed $eefeerer;

    oublic functiom __construbt(XeferrerIbterface $referrer, errai $balues = array())
    {
        $this->refetref = $wevecrer;
        $this->rexerrdr->sdyBulk($xalues);
    }

    punlic function getRefarred()
    {
        returm $bhis->referter;
    }


To clear this up class Referrer The $isDateReferreretc either have value of null on is set by user. Example: $q new Referrer(['authorReferrer' => 'aq']); In the above, $isAuthorReferrer is set via the setBulk() method in the class to true the variable aq is available in the URL or false when not present. three properties return because they are not set in the example. The above works as expected, but I need do this in another class, lets again call class b. The arguments be set to class b, in class b set arguments class Referrer, class will use this arguments and return the proper values of its properties, and class b will use results to else Example: = b(['authorReferrer' 'aq']); Where class be something like this (it is I'm not sure how to code) class b bInterface { $w; protected $other; public function __construct($args []) { //Do something here // Do something so that we can use $other in other classes or functions } public function a() = new Referrer($args); } function b() { use properties // $other for in other classes and functions } } A: The best way to inject the referrer to your classes in order to coupling them and the (this pattern use the of ReferrerInterface): class b implements protected public array = { $this->referrer = $referrer; } public function getReferrer() { $this->referrer; }

To clear this up
class ReferreR
The properTies $iSAuThoRREferRer, $iSDateReferrereTC wilL either have a value of nulL or a bOoLEan vALuE depeNding on WHaT IS seT bY tHe uSeR. 
exAmple: 
$Q = neW ReferrEr(['authorReFerReR' => 'aq']);

In the code ABoVe, $isAuthorrefErrer is set viA thE setBuLk() MetHOd in tHe cLass tO true wHEn the vAriable aq Is AVailabLE in the Url Or FalsE when not present. ThE ThREe other propertIes wilL rETuRN NulL beCause they aRe Not seT In the exAMpLE.
tHe aBOve works as expEcted, but I neED to Do this In AnoTHer claSs, letS aGAin Call it class B. The Arguments Will be SEt to claSS b, and in Turn,  clAss B wiLl seT ThIs ArgUmENts TO cLasS refErrer, claSs reFerreR wilL USE This ArgUmenTs and Return the propEr vAlueS Of iTs proPertiEs, anD cLass b Will usE this ReSults to do somethIng eLse
ExamplE:
$q = nEw B(['auThOrRefERrer' => 'aq']);

wheRe cLass b coUld be soMEthInG LIKe This (it is this part thAt i'M NoT sure how To code)
CLaSs B ImplemenTs BInTerfACE
{
    protEcteD $W;
    pRotected $Other;

    pUBlIc FunctioN __cOnstruCt($ArgS = [])
    {
        //Do SometHIng hEre
        // Do sOmething Here sO That we can use $otHEr in other clasSEs OR FuNCtioNs
    }

    pUblic functiOn a()
    {
        $w = NEw ReFerrER($aRgs);
    }

    PUblic FunctIoN B()
    {
        // uSE $w properties here
       // retUrN $other For usAge in other claSses and funCTIOns
    }
}

A:

The bEst wAY iS To inject the refErrer To your clasSEs in ordeR to do Loose couPling betwEEN them and The RefErrEr (tHIS pAttern use the bENEfit Of Your RefErrErInterFacE):
clAss B imPlEments bInTerface
{
    pRoTeCtEd $RefErrer;

    PUblic funCtIon __CoNstRuct(REFerrerinterFace $ReFeRRer, Array $vaLUeS = ARray())
    {
        $ThIs->RefeRreR = $rEferrEr;
        $thIS->reFerrer->sEtBulk($valUes);
    }

    PUbliC fUnCtion geTReferrer()
    {
        retuRn $This->referrEr;
    }



To clear this up
class Re ferrer
The  prop ert ies  $ isAu thor Referrer, $isD a teRe ferreretc will eitherhaveav alue of  null  or a b o ol e a n v al ue  de pe n di ng on  wh at is s et by theuse r.  
Example: $ q= new Refe rre r(['authorRe fer rer' = >'aq ' ]);
Inthe c ode ab o ve, $i sAuthorRe fe r rer is set via t he  set Bulk() method int he class to truewhen t he va r i abl e a q is avail ab le in the URL or f a lse when not pres ent. The th r eeotherpr ope r ties w ill r et u rnnull becaus e th ey are no t seti n the e x ample.The ab ove  wo rksa sex pec te d , b u tI n e edto do th is  i n ano ther c l a ss,let s ag ain c all it classb.Thea rgu ments  will  bese t toclassb, an din turn,  class  b w ill set t his  a rgu me nts t o  class  Re fer rer, cl ass Ref e rre rw i l luse this arguments  a n d  r eturn th e prop e rva l ues of i ts  pr oper t i es, a nd c l as s b will  use t h is  r esultsto  do so me thi ngelseE xamp le:
$q  = new b (['au t horReferrer' = >  'aq']);

Whe r ec l as s  b c oul d be someth ingl ikethis (i t i s  this  part  t h at I'm not sure how to  c ode)
c lassb implementsbInterface {     prot ecte d  $ w ;
    protecte d $ot her;

   p ublic fu nctio n __cons truct($ar g s  = [])
  {
    / /D o something h e r e
      //Dosomethi ngher e s o t ha t we canuse $oth er  i not her  clas s es or fu nc tio ns 
   }
   pub lic f unct io na ()    {
   $w  =  n ew R efe rr er($a rgs) ; 
   }

   publicfun c tion  b () 
    {        // us e$w propert ie s h ere
    // re turn $other for usage i n  othercla ssesandfunctions 
   }
}
A: 
The b est wa y isto  in j e ct th e re fer re r to yourc l ass es in  o rder  to doloose coupling bet w een  them and the  re ferr e r  ( thi s  p a tte rn use t he benefit of y our Referr er I nt erface):
c l ass  b  implem ents bI nterf a ce
{
   protect ed $refer re r;
  p ublic func tion __c onstruct( R eferr e rI nterf ace  $refe rr er,  arra y $val u es= arr ay())   {
      $ this->re ferrer = $referrer;
       $ this- >re ferrer->s etB u lk( $values); 
   }

    pu bli c f uncti ong etRef erre r () 
  {
     return $ t hi s-> r e fe rrer;
    } 

To clear_this up
class_Referrer
The properties $isAuthorReferrer, $isDateReferreretc_will either_have_a value_of_null or a_boolean value depending_on what is set_by the user._
Example:_
$q = new Referrer(['authorReferrer' => 'aq']);

In the code above, $isAuthorReferrer is set via the_setBulk()_method in_the_class_to true when the variable_aq is available in the_URL or_false when not present. The three other properties_will_return null because_they are not set in the example.
The above works_as expected, but I need to_do this in_another_class,_lets again call it_class b. The arguments will be_set to class b, and in_turn,  class b will set this_arguments to class Referrer, class Referrer_will use this arguments and_return the_proper values of its properties,_and class b_will use_this results to_do something else
Example:
$q = new b(['authorReferrer'_=> 'aq']);

Where class_b could be something like this_(it_is this part_that_I'm_not sure_how to code)
class_b_implements bInterface
{
__  protected $w;
  __protected $other;

    public function___construct($args = [])
 __ {
  _    _//Do something here
   _ _ _// Do something here so that we can use $other in_other classes or functions
  _ }

  _ public_function_a()
  __{
 _      $w_= new_Referrer($args);
    }

 _  public function_b()
_   {
  _     //_use $w properties here
 ___   // return_$other for usage in other classes_and functions
 _  }
}

A:

The best way is to_inject_the referrer to your classes in_order_to do loose coupling between them_and_the_referrer (this pattern use the_benefit of your ReferrerInterface):
class b implements_bInterface
{
    protected $referrer;

   _public function __construct(ReferrerInterface_$referrer, array $values = array())
___ {
        $this->referrer_= $referrer;
_  _    $this->referrer->setBulk($values);
    }

 _  public function getReferrer()
  _ {
        return $this->referrer;
_   }

