Защо обектно ориентираното програмиране не работи

cHuBakA

Registered
Здравейте.
Обектно-ориентираното програмиране е въведено от PHP 5.0.
Аз съм с 5.6
обаче при мен не работи. Въпроса ми е трябва ли нещо от някъде да се активира за да тръгне?
 
Кое точно не работи, дай малко код ?
 
Всеки код в който има -> изважда бяла страница. Без значение. Сега взимам от нета всякакви готови примери и нито един не работи.
След кода в който има -> php спира по натък и не обработва и следващите.

Ето пример

Код:
<?php
// Define a class
class Myclass
 {
// Declaring three protected varaibles protected $font_size;
 protected $font_color;
 protected $string_value;
// Declarte construct method which accepts three parameters and the method customize_print()
 function __construct($font_size,$font_color,$string_value)
 {
 $this->font_size = $font_size;
 $this->font_color = $font_color;
 $this->string_value = $string_value;
 $this->customize_print();
 }
// Declare a method for customize print
 public function customize_print()
 {
 echo "<p style=font-size:".$this->font_size.";color:".$this->font_color.";>".$this->string_value."</p>";
 }
 }
// Define a subclass
class Mysubclass extends Myclass
 {
 // Call the method customize print() and add the text decoration attribute within echo statement
 public function customize_print()
 {
 echo "<p style=font-size:".$this->font_size.";color:".$this->font_color.";text-decoration:underline;>".$this->string_value."</p>";
 }
 }
// Create objects and passes parameters
 $p = new Myclass('20px','red','Object Oriented Programming');
 $s = new Mysubclass('15px','green','Object Oriented Programming');
?>

След него е

Код:
<?php
echo 'Иван';
?>

резултата е бяла страница.
ехо иван също не го вади. Значи обработката на кода спира преди него

Според мен е нещо в настройката на php но не знам кое отговаря за oop
 
При мен кода, който даде вади това:

Ако това е била целта ти - работи кода.

Аз съм под Windows 10 с XAMPP и PHP 8.1. (5.6 е стара версия вече)

Не знам какъв съвет да ти дам, освен да смениш версията на PHP с по-нова и да се опиташ да пишеш код според новите версии на PHP.
Не знам къде може да е проблема, но имай в предвид, че ако е нещо сериозно, трябва да се съсредоточиш към новите версии на PHP.
 
ООП има 4 основни принципа, които го отличават като такова:

- Абстракция
- Капсулиране
- Полиморфизъм
- Наследяване

Кое от тези не е Ок при теб? Сетъпни си една сървърна среда, ще ти е по Ок, както предложи и @Pok4 .
 
На хост съм. До сега тествах. Оказва се че наличието на този знак "->" прави проблема. Странно.

Когато премахна -> тръгва

Не е заради версията. 5.6 се подържа, а и няма промяна в ядрото. Нещо друго е.
 
Освен да направиш 1 празен php файл с:
Код:
<?php echo phpinfo(); ?>
и да направиш снимки. Ще го сравня с моята версия и ще видим кое е вкл. и кое изкл....

PS: Виж дали нямаш и някъде error log...
 
Ако искаш, аз съм направил файл с такова съдържание на един от сървърите на jump.bg, можеш да сравниш и сам: https://argos.pw/readme/php.php

Но дай за всеки случай да видиме за какво иде реч при теб.
 
За начало сложи най-отгоре (след <?php) да видим дали реве относно нещо.

PHP:
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);

// тука твоя код
 
ООП (ОбектноОриентирано Програмиране) е вид модел за писане на езика, който разполага с принципите които @Blinky ти изброи и се борави по-лесно с класове и обекти най-общо казано .. та няма как да не работи. Все едно да кажеш, че парапета на стълбището не ти работи.
По-скоро имаш някъде проблем със xampp, php версията, конфигурацията на php.ini или в самия .php файл нещо е сгафено.

Както казаха и другите, версия 5.6 е много стара вече.. работи със 7.2++ (7.4, 8.0). Виж дали правилно си дефинираш класовете, обектите и правилно ли ги инициализираш, боравиш с тях. Случвало ми се е да гърми " -> " при допусната грешка в инициализацията. Прегледай обстойно. Използвай var_dump() за да си дебъгваш кода.
 

Back
Горе