php - Class Inheritance Problem -


i have a.php , b.php

a.php

<?php error_reporting(e_all); ini_set("display_errors",1); class myclass {   function hello()   {     return 'hello';   }   } ?> 

b.php

<?php error_reporting(e_all); ini_set("display_errors",1); require_once('/a.php'); $a = new myclass(); testing();  function testing() {         echo $a ->hello(); } ?> 

b.php inherits a.php , if run b.php,but show "fatal error: call member function hello() on non-object."

so question simple, how can correct ,but "$a = new myclass();" not inside function, since in .net world can this, believe php possible.

and 1 more question is, modify of function in a.php ,if have not state private/public/protected?

a couple of things change here, i'll explain in moment.

a.php

<?php error_reporting(e_all); ini_set("display_errors",1);  class myclass {   // here, access modifier.   public function hello()   {     return 'hello';   }   } ?> 

b.php

<?php  error_reporting(e_all); ini_set("display_errors",1);  require_once('/a.php'); testing();  function testing() {        // here, change variable defined place in scope.     $a = new myclass();     echo $a ->hello(); } ?> 

when no access specifier given on method, defaults public. however, better declare want method have. appreciate if find actively coding in multiple languages each have different default.

right variable $a not in scope of function testing(). allow me rearrange program , shall see why. have written it, so:

b.php

<?php function testing() {            echo $a ->hello(); }      error_reporting(e_all); ini_set("display_errors",1);  require_once('/a.php'); $a = new myclass(); testing();  ?> 

you see, testing() defined, $a not exist. hasn't been defined yet. not inside testing()'s scope. you'll have either define $a inside testing() or else pass in parameter. in first pass, changed code define $a inside testing(). if need use in multiple functions, suggest changing testing() take parameter. this:

function testing(myclass $a) {     echo $a->hello(); } 

then pass in way:

$a = new myclass(); testing($a); 

Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -