Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP variables in classes

Tags:

variables

oop

php

I have the following code (I'm a Dot Net developers and I thought if I can bring my OOP knowledge to PHP)

class user {
    var $_un;
    function user($un) {
     $_un = $un;
    }
    function adduser() {
    }
    function checkuser() {
    }
    function printuser () {
        echo $_un;
    }
}

$newuser = new user('Omar Abid');
$newuser->printuser();

So the problem is simple "$_un" is empty!! I want it to be filled, when the class is created using the constructor and then saved.

I used to do that in C# .net, but here it doesn't work for some reasons. Thanks!

like image 258
Omar Abid Avatar asked Aug 18 '09 09:08

Omar Abid


2 Answers

Rather than user() you should use __construct(), it's the preferred way to add a Constructor in PHP5. Also consider to add visibility to your methods and members (public / protected / private)

public function __construct($un) {
    $this->_un = $un;
}
like image 66
Benjamin Cremer Avatar answered Nov 02 '22 08:11

Benjamin Cremer


In order to access class members in PHP you need to use $this-> .

So what you're currently doing is declaring a local variable called $_un, rather than assigned to the member variable $this->_un .

Try changing your code to:

function user($un) {
 $this->_un = $un;
}

function printuser () {
    echo $this->_un;
}

And it should work.

like image 28
John Carter Avatar answered Nov 02 '22 09:11

John Carter