Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ошибка
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Ошибка

Страниц (2): [1] 2 »
 

1. zheev - 27 Октября, 2015 - 18:48:21 - перейти к сообщению
Ребят, помогите пожалуйста решить проблемку( Не могу понять в чем проблема.

Fatal error: Call to a member function set_data() on a non-object in /home/p335602/www/xn--43-jlcauan 2aim2fwe.xn--p1ai/handlers/novos troiki.php on line 15

Вот я вызываю функцию

PHP:
скопировать код в буфер обмена
  1. echo $view->set_data('title', $row['title']);


Вот класс:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. include_once("function/db.php");
  4.  
  5. class view{
  6.        
  7.         private $pr = array();
  8.        
  9.         const catalog = "new_kv";
  10.         const page = "pages";
  11.        
  12. static public function get_url(){
  13.         $url = explode("/", $_GET['page']);
  14.         $count = count($url)-1;
  15.         return $url[$count];   
  16. }
  17.  
  18. static public function get_null_url(){
  19.         $url = explode("/", $_GET['page']);
  20.         return $url[0];
  21. }
  22.  
  23. static public function get_amount_url(){
  24.         if($_GET['page']==''){$_GET['page']='';}
  25.         $url = explode("/", $_GET['page']);
  26.         $count = count($url)-1;
  27.         return $count;
  28. }
  29.  
  30. public function set_data($cont, $name){
  31.         $this->pr[$cont]=$name;
  32. }
  33.  
  34.  
  35.  
  36. public function get_data($cont){
  37.         global $perfix,$db;
  38.                
  39.                         $content = $db->prepare("select * from `".$perfix.self::page."` where `url`=?");
  40.                         $content->execute(array(self::get_url()));
  41.                         $row = $content->fetch();      
  42.                        
  43.                         if($row[$cont]!=''){
  44.                                 $this->pr[$cont]=$row[$cont];
  45.                         }
  46.                        
  47.                         return $this->pr[$cont];
  48. }
  49.  
  50.        
  51. static public function get_handlers(){
  52.         global $perfix,$db;
  53.                 if($_GET['page']==""){$_GET['page']=" ";}
  54.                 $handlers = $db->prepare("select * from `".$perfix.self::page."` where `url`=?");
  55.                 $handlers->execute(array(view::get_null_url()));
  56.                 $row = $handlers->fetch();
  57.                         if($row['handlers']!=''){
  58.                                 $path = $_SERVER['DOCUMENT_ROOT']."/handlers/".$row['handlers'].".php";
  59.                                 if(file_exists($path)){
  60.                                         include_once($path);
  61.                                 }      
  62.                         }
  63. }
  64.  
  65. static public function get_breadcrumbs(){
  66.         global $perfix,$db;
  67.                
  68.                
  69.                 $urls = explode("/",$_SERVER['REQUEST_URI']);
  70.                 $return[] = '<a href="'.$sitehost.'/">Главная</a>';
  71.                 $curls = count($urls);
  72.                                
  73.                 for($i=0;$i++<=$curls-1;){
  74.                                 $select = $db->prepare("select * from `".$perfix.self::page."` where `url`=?");
  75.                                 $select->execute(array($urls[$i]));
  76.                                 $row = $select-> fetch();
  77.                         if($row['url']!=''){                   
  78.                                 $url.= ''.$row['url'];
  79.                                 $return[] = '<a href="'.$url.'">'.$row['title'].'</a>';
  80.                         }
  81.                                
  82.                 return implode(' / ', $return);
  83.                
  84.                 }
  85. }      
  86.  
  87.  
  88. }
  89.  
  90. $view = new view;
  91.  
  92. ?>
  93.  


Заранее спасибо
2. andrewkard - 27 Октября, 2015 - 18:53:29 - перейти к сообщению
zheev
PHP:
скопировать код в буфер обмена
  1. class View{};
  2.  
  3. $view = new View();
  4.  
  5. var_dump($view);
3. zheev - 27 Октября, 2015 - 19:29:09 - перейти к сообщению
andrewkard пишет:
zheev
PHP:
скопировать код в буфер обмена
  1. class View{};
  2.  
  3. $view = new View();
  4.  
  5. var_dump($view);


Выдает это - object(view)#2 (1) { ["pr":"view":private]=> array(0) { } }
(Добавление)
andrewkard пишет:
zheev
PHP:
скопировать код в буфер обмена
  1. class View{};
  2.  
  3. $view = new View();
  4.  
  5. var_dump($view);


А в файле обработчике, где вызываю функцию, пишет NULL
4. Viper - 27 Октября, 2015 - 20:29:22 - перейти к сообщению
zheev я так и не понял, у вас статический или динамический класс? Вы уж определитесь.
5. zheev - 27 Октября, 2015 - 20:33:37 - перейти к сообщению
Viper пишет:
zheev я так и не понял, у вас статический или динамический класс? Вы уж определитесь.


Динамический
(Добавление)
Viper пишет:
zheev я так и не понял, у вас статический или динамический класс? Вы уж определитесь.


А если можно помогите навести в коде "порядок" так как я ООП не давно начал изучать
6. Viper - 27 Октября, 2015 - 20:36:13 - перейти к сообщению
zheev пишет:
Динамический
так и делайте его динамическим. А то у вас фарш из мух и котлет.
7. zheev - 27 Октября, 2015 - 20:39:26 - перейти к сообщению
Viper пишет:
zheev пишет:
Динамический
так и делайте его динамическим. А то у вас фарш из мух и котлет.


Не поможете?
8. Viper - 27 Октября, 2015 - 23:13:13 - перейти к сообщению
https://gist[dot]github[dot]com/Globulop[dot][dot][dot]b5f8d8c775084a2b мог что-то упустить(поздно уже, залипаю).
9. zheev - 28 Октября, 2015 - 09:04:03 - перейти к сообщению
Viper пишет:
https://gist[dot]github[dot]com/Globulop[dot][dot][dot]b5f8d8c775084a2b мог что-то упустить(поздно уже, залипаю).


Спасибо большое)) но ошибка не пропала((
10. andrewkard - 28 Октября, 2015 - 11:11:27 - перейти к сообщению
zheev
Ошибка означает, что в момент вызова функции set_data $view не является объектом:
zheev пишет:
$view->set_data('title', $row['title']);

что подтверждает
zheev пишет:
где вызываю функцию, пишет NULL

(Добавление)
Уберите все методы, добавляйте по одному и проверяйте на создание.
11. zheev - 28 Октября, 2015 - 15:04:39 - перейти к сообщению
И как быть(
andrewkard пишет:
zheev
Ошибка означает, что в момент вызова функции set_data $view не является объектом:
zheev пишет:
$view->set_data('title', $row['title']);

что подтверждает
zheev пишет:
где вызываю функцию, пишет NULL

(Добавление)
Уберите все методы, добавляйте по одному и проверяйте на создание.
12. andrewkard - 28 Октября, 2015 - 17:18:14 - перейти к сообщению
Уберите все методы (функции), добавляйте по одному(одной) и проверяйте на создание.
13. zheev - 28 Октября, 2015 - 18:11:30 - перейти к сообщению
Вот что выдает object(view)#2 (3) { ["pr":"view":private]=> array(0) { } ["page"]=> string(5) "pages" ["catalog"]=> string(6) "new_kv" }

andrewkard пишет:
Уберите все методы (функции), добавляйте по одному(одной) и проверяйте на создание.
14. andrewkard - 28 Октября, 2015 - 18:15:33 - перейти к сообщению
zheev
Ошибки нет? Вызывайте этот:
PHP:
скопировать код в буфер обмена
  1.  
  2. $view->set_data('title', $row['title']);
  3.  


без echo
15. zheev - 28 Октября, 2015 - 18:25:17 - перейти к сообщению
Все равно ошибка(

andrewkard пишет:
zheev
Ошибки нет? Вызывайте этот:
PHP:
скопировать код в буфер обмена
  1.  
  2. $view->set_data('title', $row['title']);
  3.  


без echo

 

Powered by ExBB FM 1.0 RC1