Related Links : Search Engine Optimization | | Search Engine Marketing | Online Marketing | Freelance Programmer| SEO Thailand | SEO Expert | SEO services | PHP Programmer Thailand | SEO Tutorial | What is SEO |

  Home Our SEO Services SEO Expert Consultant Php Programmer Scripts| Email : sachin {at} jainsachin {dot} com

PHP | Visibility | Manual | Tutorial | Help

SEO Services



Website Programming in PHP / MYSQL



Friends


    Visibility

    Visibility

    The visibility of a property or method can be defined by prefixing the declaration with the keywords: public, protected or private. Public declared items can be accessed everywhere. Protected limits access to inherited and parent classes (and to the class that defines the item). Private limits visibility only to the class that defines the item.

    Members Visibility

    Class members must be defined with public, private, or protected.

    Example #1 Member declaration

    <?php
    /**
     * Define MyClass
     */
    class MyClass
    {
        public 
    $public 'Public';
        protected 
    $protected 'Protected';
        private 
    $private 'Private';

        function 
    printHello()
        {
            echo 
    $this->public;
            echo 
    $this->protected;
            echo 
    $this->private;
        }
    }

    $obj = new MyClass();
    echo 
    $obj->public// Works
    echo $obj->protected// Fatal Error
    echo $obj->private// Fatal Error
    $obj->printHello(); // Shows Public, Protected and Private


    /**
     * Define MyClass2
     */
    class MyClass2 extends MyClass
    {
        
    // We can redeclare the public and protected method, but not private
        
    protected $protected 'Protected2';

        function 
    printHello()
        {
            echo 
    $this->public;
            echo 
    $this->protected;
            echo 
    $this->private;
        }
    }

    $obj2 = new MyClass2();
    echo 
    $obj2->public// Works
    echo $obj2->private// Undefined
    echo $obj2->protected// Fatal Error
    $obj2->printHello(); // Shows Public, Protected2, Undefined

    ?>

    Note: The PHP 4 method of declaring a variable with the var keyword is still supported for compatibility reasons (as a synonym for the public keyword). In PHP 5 before 5.1.3, its usage would generate an E_STRICT warning.

    Method Visibility

    Class methods must be defined with public, private, or protected. Methods without any declaration are defined as public.

    Example #2 Method Declaration

    <?php
    /**
     * Define MyClass
     */
    class MyClass
    {
        
    // Declare a public constructor
        
    public function __construct() { }

        
    // Declare a public method
        
    public function MyPublic() { }

        
    // Declare a protected method
        
    protected function MyProtected() { }

        
    // Declare a private method
        
    private function MyPrivate() { }

        
    // This is public
        
    function Foo()
        {
            
    $this->MyPublic();
            
    $this->MyProtected();
            
    $this->MyPrivate();
        }
    }

    $myclass = new MyClass;
    $myclass->MyPublic(); // Works
    $myclass->MyProtected(); // Fatal Error
    $myclass->MyPrivate(); // Fatal Error
    $myclass->Foo(); // Public, Protected and Private work


    /**
     * Define MyClass2
     */
    class MyClass2 extends MyClass
    {
        
    // This is public
        
    function Foo2()
        {
            
    $this->MyPublic();
            
    $this->MyProtected();
            
    $this->MyPrivate(); // Fatal Error
        
    }
    }

    $myclass2 = new MyClass2;
    $myclass2->MyPublic(); // Works
    $myclass2->Foo2(); // Public and Protected work, not Private

    class Bar 
    {
        public function 
    test() {
            
    $this->testPrivate();
            
    $this->testPublic();
        }

        public function 
    testPublic() {
            echo 
    "Bar::testPublic\n";
        }
        
        private function 
    testPrivate() {
            echo 
    "Bar::testPrivate\n";
        }
    }

    class 
    Foo extends Bar 
    {
        public function 
    testPublic() {
            echo 
    "Foo::testPublic\n";
        }
        
        private function 
    testPrivate() {
            echo 
    "Foo::testPrivate\n";
        }
    }

    $myFoo = new foo();
    $myFoo->test(); // Bar::testPrivate 
                    // Foo::testPublic
    ?>


    SEO Tutorial / Articles





    Php / Mysql Tutorial



    Articles



      Portfolio


      SEO by Jainsachin