NurlanXp
NurlanXp

Reputation: 156

Php OOP does not work

I have a problem. I writed OOP in php, but it does not work. It gives me blank result. I putted screenshots of my code and result of that code above. Please analyse these codes and help me, how I can solve it. By the way my php version is 5.3. I can upgrade or downgrade it if it is important. Thanks.

index.php

<?php include('class_library.php'); ?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>OOP ilk dersim)</title>
</head>
<body>
<?php

    $phpders = new adam();
    $padisah = new adam();
    //----------

    $phpders -> set_ad('NurlanXp 1');
    $padisah -> set_ad('NurlanXp 2');

    //------------

    echo "PhpDersden gelen: ".$phpders -> get_ad;
    echo "<br>Padisahdan gelen: ".$padisah -> get_ad;

?>
</body>
</html>

class_library.php

    <?php
    class adam{
        var $ad;

        function set_ad($yeni_ad){
            $this -> ad = $yeni_ad;

        }

        function get_ad(){
            return $this -> ad;

        }

    }

?>

index.php, class_library.php and the result of the code. Screenshots. index.php

class_library.php

result

All documents in the same folder.

Upvotes: 1

Views: 1256

Answers (3)

Pinke Helga
Pinke Helga

Reputation: 6682

(After solving the issue mentioned by "num8er" - calling method with () ...)

Try to give an absolute include path

<?php include('/complete/path/to/class_library.php'); ?>

or set an appropriate include path set_include_path() before. You can use $_SERVER['DOCUMENT_ROOT'] as a base to build a path.

Upvotes: 1

merdincz
merdincz

Reputation: 448

You seems using $padisah -> get_ad but your adam class doesn't have any getter metod so you have to use like

$padisah -> get_ad();

You can find working example on https://eval.in/591811

In Turkish: get_ad kısmının sonunda parantez açıp, kapatırsan sorun çözülür. Adam class'ının içerisinde getter metodu yok. Yukarıda verdiğim linkte sonundaki parantezle sorunun çözüldüğünü görebilirsin.

Upvotes: 3

num8er
num8er

Reputation: 19372

this is Your class:

<?php
class adam {
  private $ad;

  public function get_ad() {
    return $this->ad;
  }

  public function set_ad($ad) {
    $this->ad = $ad;
    return $this;
  }
}

and inside of code:

  $phpders = new adam();
  $padishah = new adam();

  $phpders->set_ad('NurlanXP 1');
  $padishah->set_ad('NurlanXP 2');

and usage of get_ad:

echo 'phpdersden gelen: '.$phpders->get_ad().'<br/>';
echo 'padishahdan gelen: '.$padishah->get_ad().'<br/>';

Upvotes: 2

Related Questions