2013-05-13 4 views
-1

Что мне нужно сделать, чтобы я мог использовать стандартные функции php без создания экземпляра класса Math_functions?Почему функции не определены? PHP

<?php 

    class Math_functions { 

     public static function evenNumber($number) { 
      return !($number & 1); 
     } 

     public static function natual_sum($n) { 
      while ($n) { 
       if (evenNumber($n)) { 
        $sum = $sum + $n; 
       } 
       $n--; 
      } 
      return $sum; 
     } 

    } 

    echo natual_sum(4); 
?> 
+0

эхо 'Math_functions :: natural_sum (4);' – Ohgodwhy

ответ

3

Это статическая функция. Вы должны получить к нему доступ, используя имя класса. Используйте как это

Math_functions::natual_sum(4); 
+0

Он спросил, как использовать их без использования класса. – Ryan

+3

@ God, он не спрашивает, как использовать их, не создавая экземпляр класса. – cgTag

+2

@God: Конкретно, без * экземпляров * класс. Вышеупомянутое не создает его; он просто вызывает функцию-член. – NotMe

-3

Просто поместите функции в файл PHP.

Вы не НЕОБХОДИМОСТЬ класс

Пример:

<?php 
     function evenNumber($number) { 
      return !($number & 1); 
     } 

     function natual_sum($n) { 
      while ($n) { 
       if (evenNumber($n)) { 
        $sum = $sum + $n; 
       } 
       $n--; 
      } 
      return $sum; 
     } 

    echo natual_sum(4); 
?> 
+2

Вы никогда не __need__ OO, но это все равно стоит изучать, поскольку это облегчает написание хорошего чистого кода ... когда кто-то прилагает усилия, чтобы учиться, не пытайтесь сказать им, что им не следует –

+0

@MarkBaker - Я согласен, я использую только OO, однако я думал, что OP спрашивает, как он может уйти, не имея класса. – Ryan

+0

Он спрашивал о ссылках на статические функции (т. Е. Не нужно было __instantiate__ a class) –