Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Require_once
цитата
13/08/20 в 19:45
 Парфюмер
Цитата:
Parse error: syntax error, unexpected ':', expecting ',' or ')' in C:\OSPanel\domains\crud\index.php on line 13



Код:

<?php

$connect = mysqli_connect(host:'localhost', user:'root', password:'', database:'crud');

?>


Update: Странно. В видео предлагается в таком формате host:'localhost', а в документации просто 'localhost' без слова host. Убрал и заработало.
цитата
14/08/20 в 18:41
 Парфюмер
Теперь кароче вот это дает ошибку
Код:
require_once 'connect.php';


index.php and connect.php лежат в одной папке

Цитата:
Warning: require_once(connect.php): failed to open stream: No such file or directory


Блин, да что ему надо то? Почему пхп такой тупой?
цитата
14/08/20 в 21:53
 Парфюмер
Вместо того, чтобы помочь начинающему программисту, кто-то минус поставил. Вот такой у нас народ. А потом у них Лукашенко во всем виноват.
цитата
15/08/20 в 09:42
 fil
Канонично, вроде, так:
require_once('connect.php');
Мне кажется, не хватает в твоём вопросе какой-то информации
Оффтопик:
Поставил тебе пару плюсиков, молодец, изучай PHP smail54.gif
цитата
15/08/20 в 15:44
 Парфюмер
fil писал:
Канонично, вроде, так:
require_once('connect.php');
Мне кажется, не хватает в твоём вопросе какой-то информации
Оффтопик:
Поставил тебе пару плюсиков, молодец, изучай PHP smail54.gif

Да че мне чуть больше $age > 50. К 60 то точно буду асом. А какой инфы не хватает? Вот два файла лежат на одном уровне. index.php and connect.php.
В индексе пишу require, надо загрузить connect.php. Какая адресация должна быть? Вроде же на одном уровне. Или танец со слешами там ../connect.php. Так разные варианты пробовал - ниче не работает. Делаю в Опен сервере. Папка crud. В документации вроде ничего нет. Я все равно докопаюсь. Просто елки палки, на ровном месте буксуешь. Уже читал и понятны всякие сложные темы, там объекты, массивы, гет пост, замыкания там, mvs rooting то сё. А тут на ровном месте засада!

Канонично тоже писал со скобками, потом убрал увидев примеры в документации
цитата
15/08/20 в 21:28
 Парфюмер
Так разбираемся..

PHP ищет подключаемые файлы в директориях прописанных в директиве include_path.

А в ошибке он пишет, что

include_path='.;c:/ospanel/modules/php/PHP-7.0-x64;

Ну и зачем он его там ищет, если у меня файлы в папке domains? Исправлять директорию что-ли? А там все-равно написано, что файл php.ini временный на опенсервере. icon_mad.gif
цитата
16/08/20 в 07:44
 fil
Мне потому кажется, что информации не хватает, что та строка, которую ты указал источником ошибки ( require_once 'connect.php'; ) должна работать, если оба файла лежат в одной директории.
В include_path у тебя '.' - это и есть текущая дир., тут всё норм.
цитата
16/08/20 в 10:36
 Парфюмер


Ну два файла же лежат в одной папке, я назвал её crud. Там я читал есть еще такие варианты типа Код:
require_once( $_SERVER['DOCUMENT_ROOT'] . '/connect.php');


Пока тоже не сработало. Копаем дальше. Одно не пойму, вижу на форумах многие с этой проблемой сталкиваются. Почему разработчикам ПХП не пойти на встречу программистам и сделать что-то, что не вызывало бы ошибок, продумать однозначный подход. По такому пути пошел Эван Вью и сделал vue.js. Очень понятный фреймворк для людей.
цитата
16/08/20 в 11:00
 fil
А попробуй
Код:
require_once(__DIR__.'/connect.php');

(Если версия твоего PHP старше 5.3)
цитата
16/08/20 в 11:05
 Парфюмер
Да вроде пробовал. Ок спасибо, еще раз попробую. Да ПХП 7
цитата
16/08/20 в 11:16
 TrueDevs
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'connect.php');
У тебя же вында, насколько я помню там в путях слеши другие.
цитата
16/08/20 в 12:48
 fil
TrueDevs писал:
У тебя же вында

Вероятно вот она, недостающая инфа icon_cool.gif
цитата
16/08/20 в 19:47
 Парфюмер
TrueDevs писал:
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'connect.php');
У тебя же вында, насколько я помню там в путях слеши другие.


Попробовал, не получилось

Цитата:
C:/OSPanel/domains/crud
Warning: require_once(C:\OSPanel\domains\crud\connect.php): failed to open stream: No such file or directory in C:\OSPanel\domains\crud\index.php on line 29

Fatal error: require_once(): Failed opening required 'C:\OSPanel\domains\crud\connect.php' (include_path='.;c:/ospanel/modules/php/PHP-7.0-x64;c:/ospanel/modules/php/PHP-7.0-x64/PEAR/pear') in C:\OSPanel\domains\crud\index.php on line 29
цитата
16/08/20 в 20:19
 TrueDevs
Парфюмер:

Значит там нет этого файла!
цитата
24/08/20 в 20:02
 Парфюмер
TrueDevs писал:
Парфюмер:

Значит там нет этого файла!


Кароче чё! Сейчас подключаемый файл переименовал - Файл подключается. Потом опять переименовал в connect.php и тоже работает. Блин а ведь все глаза сломал, файл написал вроде правильно. Да точно правильно.

А сколько времени потерял на ерунду!
Чую скоро буду программистом!!!
Ребята, Ларавель стоит учить или свой фреймворк делать?

О опять минусовщики пришли..
цитата
25/08/20 в 15:08
 freeek
Для начала выучи сам язык, его управляющие конструкции, типы и с пару дюжин часто используемых встроенных функций и т.д.

И не мешало бы в принципе понять как работает язык, его жизненный цикл при запросе и т.д.
цитата
25/08/20 в 20:53
 Парфюмер


Спасибо за советы. Я не совсем с нуля начинаю. На джава скрипте и вью джи эсе кое что скромненькое делал. Интересно, что такое жизненный цикл при запросе? Ладно посмотрим.
цитата
01/09/20 в 22:06
 Парфюмер
Всё. Урок по созданию CRUD системы выполнил. Всё понятно. smail54.gif
цитата
20/10/20 в 16:56
 Парфюмер
ну смотрите, документация по ПХП это что-то. Нихера ведь не понятно! Разве нельзя было по русски написать?

Цитата:
(PHP 5, PHP 7)

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Извлекает результирующий ряд в виде ассоциативного массива

Процедурный стиль
mysqli_fetch_assoc ( mysqli_result $result ) : array

Возвращает ассоциативный массив, соответствующий результирующей выборке или NULL, если других рядов не существует.


Я конечно примерно понял для чего он нужен, смотря пример на ютубе. Но ведь в документации ничего не понятно! Я огорчен.
Я думаю главное препятствие почему люди не могут выучить программирование - это документация.
цитата
10/11/20 в 11:12
 Парфюмер
Кто мне объяснит, зачем делать свойства приватными, а потом их можно раскупорить и достать волшебным методом __get ?

Код:


<?php
   class Test
   {
      private $prop1 = 1;
      private $prop2 = 2;
      
      public function __get($property)
      {
         return $this->$property;
      }
   }
?>

цитата
10/11/20 в 16:47
 freeek
Код:
<?php

error_reporting(E_ALL);
ini_set("display_errors", 1);

class A {

    private $foo = 1;

    public function getFoo() {
        return $this->foo;
    }

}

class B extends A {

    public function getBar() {
        return 'Bar foo(' . parent::getFoo() . ')';
    }

    public function getFoo() {
        return 'B foo';
    }

}

class C extends A {

    public function getBar() {
        return $this->foo;
    }

    public function __get($name) {
        return $this->{$name};
    }

}

$A = new A();
$B = new B();
$C = new C();

echo
'<pre>$A->getFoo() -> ', $A->getFoo(),
'<br>$B->getFoo() -> ', $B->getFoo(),
'<br>$B->getBar() -> ', $B->getBar(),
'<br>$C->getFoo() -> ', $C->getFoo(),
'<br>$C->getBar() -> ', $C->getBar(),
'<br>$C->foo -> ', $C->foo;

/*
print_r($A->getFoo());
print_r($B->getFoo());
print_r($B->getBar());
print_r($C->getFoo());
print_r($C->getBar());
print_r($C->foo);
*/



Result:
Код:
$A->getFoo() -> 1

$B->getFoo() -> B foo
$B->getBar() -> Bar foo(1)

$C->getFoo() -> 1
$C->getBar() -> Notice:  Undefined property: C::$foo
$C->foo      -> Notice:  Undefined property: C::$foo







При желании можно раскупорить всё. Но по правилам хорошего тона, делать этого не надо.


Эта страница в полной версии