Static class properties are initialized at compile time. You cannot use a constant TABLE_PREFIX
to concatenate with a string literal when initializing a static class property, since the constant’s value is not known until runtime. Instead, initialize it in the constructor:
public static $user_table;
// Initialize it in the constructor
public function __construct() {
self::$user_table = TABLE_PREFIX . 'users';
}
// If you only plan to use it in static context rather than instance context
// (won't call a constructor) initialize it in a static function instead
public static function init() {
self::$user_table = TABLE_PREFIX . 'users';
}
http://us2.php.net/manual/en/language.oop5.static.php
Like any other PHP static variable, static properties may only be initialized using a literal or constant; expressions are not allowed. So while you may initialize a static property to an integer or array (for instance), you may not initialize it to another variable, to a function return value, or to an object.
Update for PHP >= 5.6
PHP 5.6 brought limited support for expressions:
In PHP 5.6 and later, the same rules apply as const expressions: some limited expressions are possible, provided they can be evaluated at compile time.
I am recieveing the following parse error:
Parse error: syntax error, unexpected ‘(‘, expecting ‘,’ or ‘;’ in
H:ProgramsUSBWebserver
v8.58.5rootoopforumfuncregister.class.php on line 7
which relates to the following line of code in my class:
private $random_name = rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999);
I can not see why this line of code would cause a parse error?
Here is some surrounding code:
class register{
public $post_data = array();
private $dbh;
private $allowed_type = array('image/jpeg','image/png','image/gif');
private $random_name = rand(1000,9999).rand(1000,9999).rand(1000,9999).rand(1000,9999);
private $path = 'img/thumb_/'.$random_name. $_FILES['file']['name'];
private $max_width = 4040;
private $max_height = 4040;
private $max_size = 5242880;
private $temp_dir = $_FILES['file']['tmp_name'];
private $image_type = $_FILES['file']['type'];
private $image_size = $_FILES['file']['size'];
private $image_name = $_FILES['file']['name'];
private $image_dimensions = getimagesize($temp_dir);
private $image_width = $image_dimensions[0]; // Image width
private $image_height = $image_dimensions[1]; // Image height
private $error = array();
public function __construct($post_data, PDO $dbh){
$this->post_data = array_map('trim', $post_data);
$this->dbh = $dbh;
}
}
What is causing the parse error?
За последние 24 часа нас посетили 11696 программистов и 709 роботов. Сейчас ищут 290 программистов …
-
- С нами с:
- 23 окт 2020
- Сообщения:
- 14
- Симпатии:
- 0
Подскажите как исправить
<?php
require_once ‘db.php’;
$Login = $_POST[‘login’];
$Group = $_POST[‘Group’];
$FIO = $_POST[‘FIO’];mysqli_query($connect, query: «INSERT INTO `users` (`Login`, `Group`, `FIO`) VALUES (‘$Login’, ‘$Group’, ‘$FIO’)»);
?>Parse error: syntax error, unexpected ‘:’, expecting ‘,’ or ‘)’ in W:domainsPhptestcsscreate.php on line 9
-
Команда форума
Модератор- С нами с:
- 20 июн 2012
- Сообщения:
- 8.522
- Симпатии:
- 1.744
А откуда такой синтаксис взялся, с query:? То, что новые штормы так автоматом показывают бледным шрифтом, не означает, что это так писать надо.
— Добавлено —
Так можно, вроде, будет писать в 8 версии php, но она пока только RC, выйдет через месяц -
перевести трудно? гугл транслейт хотя бы?
посмотреть описание функции?: — замените на ,
-
- С нами с:
- 23 окт 2020
- Сообщения:
- 14
- Симпатии:
- 0
заменил и и вот опять ошибка «Warning: mysqli_query() expects parameter 1 to be mysqli, null given in W:domainsPhptestcsscreate.php on line 9»
-
- С нами с:
- 23 окт 2020
- Сообщения:
- 14
- Симпатии:
- 0
-
Команда форума
Модератор- С нами с:
- 20 июн 2012
- Сообщения:
- 8.522
- Симпатии:
- 1.744
Ошибка изменилась, значит проблема другая. Скорее всего, подключения к базе не произошло, судя по тексту. Или переменная не так называется. Всё написано нормальным английским языком.Не понятен вопрос. Напишите в соответствии с синтаксисом php. Если не знаете синтаксис — какого фига лезете программировать?
-
- С нами с:
- 26 фев 2012
- Сообщения:
- 2.198
- Симпатии:
- 184
Начни с линухи и ангийского, без этих знаний будут постоянные проблемы, на решения которых ты будешь тратить целые дни.
PHP тащит за собой сервер, сервер тащит за собой линукс, линукс тащит за собой английский, php ничего не знает про mysql.
PHP это язык программирования, программирование это инженерия, инжеру надо знать очень много.
Taktreba и mkramer нравится это.
-
Команда форума
Модератор- С нами с:
- 20 июн 2012
- Сообщения:
- 8.522
- Симпатии:
- 1.744
@Dimon2x Только я бы сказал, php — это программирование, программирование тащит за собой английский
-
- С нами с:
- 23 окт 2020
- Сообщения:
- 14
- Симпатии:
- 0
я не понимаю почему не произошло подключения
этот код мне выводит дание из бд
<? include_once(‘db.php’) ?>
<? $sql = $db->query(«SELECT * FROM `Users`»); /* запрос сам*/
$db-> close;
while ($result = $sql ->fetch_assoc()):?>
<div class=»login»><h3><?=$result[‘login’] ?></h3> </div>
<div class=»FIO»> <?=$result[‘FIO’] ?> </div>
<? endwhile ?>а вот:
не хочет вносить но подключаю к db.php
<?phprequire_once ‘db.php’;
$Login = $_POST[‘login’];
$Group = $_POST[‘Group’];
$FIO = $_POST[‘FIO’];mysqli_query($connect, query, «INSERT INTO `users` (`Login`, `Group`, `FIO`) VALUES (‘$Login’, ‘$Group’, ‘$FIO’)»);
?> -
Команда форума
Модератор- С нами с:
- 20 июн 2012
- Сообщения:
- 8.522
- Симпатии:
- 1.744
А что в db.php? И прочитайте в подписи, как оформлять код
Это бред сивой кобылы, прочитайте документацию по mysqli.
И судя по коду, вы в основах путаетесь, что такое переменная, что такое параметры.
-
- С нами с:
- 23 окт 2020
- Сообщения:
- 14
- Симпатии:
- 0
В db.php:
<?php
$db = new mysqli(‘localhost’,’root’,’root’,’Users’);?>
-
acho
Активный пользовательИ не надо смешивать процедурный и ООП стили.
-
Команда форума
Модератор- С нами с:
- 20 июн 2012
- Сообщения:
- 8.522
- Симпатии:
- 1.744
@nevidomo, ну я же говорю, переменные не понимаете. В одном месте она у вас $db называется, а в другом месте должна как-то преобразоваться в $connect сама собой?
-
- С нами с:
- 26 фев 2012
- Сообщения:
- 2.198
- Симпатии:
- 184
‘Users’ — это строка
$users — это переменная -
- С нами с:
- 23 окт 2020
- Сообщения:
- 14
- Симпатии:
- 0
зделал
db.php:
<?php
$connect = new mysqli(‘localhost’,’root’,’root’,’Users’); /* connect db */?>
create.php:<?php
require_once ‘db.php’;
$Login = $_POST[‘Login’];
$Group = $_POST[‘Group’];
$FIO = $_POST[‘FIO’];mysqli_query($connect, query, «INSERT INTO `users` (`Login`, `Group`, `FIO`) VALUES (‘$Login’, ‘$Group’, ‘$FIO’)»);
?>
но ошибка: Warning: mysqli_query() expects parameter 3 to be integer, string given in W:domainsPhptestcsscreate.php on line 9 -
Команда форума
Модератор- С нами с:
- 20 июн 2012
- Сообщения:
- 8.522
- Симпатии:
- 1.744
Ну уже изменилось. Но документацию по mysqli_query так и не поискал. И код оформляешь как попало. Как правильно — у меня в подписи.
https://www.php.net/manual/ru/mysqli.query.php — читаем здесь, как правильно. Вообще не понимаю, откуда у тебя слово query в параметрах. Это неосознанное программирование, бич молодых программистов, судя по тем, что к нам на собеседования приходят. Код через сознание не проходит, спрашиваешь: «с какой целью написал именно так, а не иначе» — ответить не могут. Не приучайте себя к такому. Правило очень простое, чтоб программирование было осознанным — читать про каждую функцию, которая вызывается, документацию. Читать, как работает язык на котором пишешь. Читать, читать и ещё раз читать.
-
- С нами с:
- 23 окт 2020
- Сообщения:
- 14
- Симпатии:
- 0
большое спасибо
уже понял где проблема -
- С нами с:
- 1 апр 2013
- Сообщения:
- 7.604
- Симпатии:
- 1.292
- Адрес:
- Лень
@nevidomo, самое начало, от чего нужно начинать отталкиваться, это
Пи3дец — даже подсветку текстаАрены нахрен продуплить
какое б… программирование ??
Читаем Parse error — что за херня ? Транслятор нельзя было врубить и перевести ??? «Ошибка синтаксического анализа»
Что такое СИНТАКСИС ? Снова гуглим — узнаем.. Это тоже 6лядь как русский язык ГРА МА ТИ КА
С таким же успехом дальше переводим, думаем, покурим и снова думаем, можешь даже поужинать если до такого дошло.
Line ? строка
Что — то в строке 9 Синтаксис долбаный сломан в PHPВедь пхп интерпретатор ругается
Смотрим и дуплим, что там за 9 строка-
mysqli_query($connect, query: «INSERT INTO `users` (`Login`, `Group`, `FIO`) VALUES (‘$Login‘, ‘$Group‘, ‘$FIO‘)»);
Идем, смотрим ОФФ документацию — гуглим mysqli_query
Читаем и просвещаемся. Cмотрим на ПРИМЕРЫ ЗАПОЛНЕНИЯ АТРИБУТОВ, у данной функции.Оказывается, какого }{Yя у тебя бичь в виде «query: » скопирована из помойной документации в интернете.
На будущее, юзай редактор с ПОДСВЕТКОЙ PHP
— Добавлено —
Даже тут херня эта подсвечивается
Same issue here.
Have the following cron job: cd /home/user/www && php ./artisan schedule:run
This executes /usr/local/php56/bin/php artisan queue-process-listener
I’m getting the following error:
Parse error: syntax error, unexpected ‘.’, expecting ‘&’ or variable (T_VARIABLE) in /home/user/www/vendor/laravel/framework/src/Illuminate/Foundatio n/helpers.php on line 477
PHP returns:
% php -v
PHP 5.6.29 (cli) (built: Dec 9 2016 23:39:41)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
% /usr/local/php56/bin/php -v
PHP 5.6.29 (cli) (built: Dec 9 2016 23:39:41)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
KorniloFF 0 / 0 / 0 Регистрация: 14.07.2012 Сообщений: 46 |
||||||||
1 |
||||||||
19.08.2012, 15:37. Показов 7147. Ответов 40 Метки нет (Все метки)
Здравствуйте!
Сам класс:
Результат:
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
19.08.2012, 15:37 |
Ответы с готовыми решениями:
public $serik="Сека молодец"; function test1(){ echo $this->serik; } Изучаю ООП и возникают ошибки «unexpected ‘(‘, expecting ‘,’ or ‘;'» 40 |
Vovan-VE 13207 / 6595 / 1041 Регистрация: 10.01.2008 Сообщений: 15,069 |
||||
19.08.2012, 15:50 |
2 |
|||
В значениях по умолчанию нельзя указывать выражения. Только константные единицы.
0 |
weboman 210 / 195 / 63 Регистрация: 13.08.2010 Сообщений: 1,531 Записей в блоге: 6 |
|
19.08.2012, 15:51 |
3 |
какая версия php у вас??? Команда phpinfo(); вам подскажет!
0 |
198 / 166 / 23 Регистрация: 20.04.2011 Сообщений: 750 Записей в блоге: 1 |
|
19.08.2012, 16:16 |
4 |
сделайте конструктор класса, в нём и присвойте всем переменным начальные данные
0 |
KorniloFF 0 / 0 / 0 Регистрация: 14.07.2012 Сообщений: 46 |
||||||||
19.08.2012, 16:39 [ТС] |
5 |
|||||||
Всем спасибо за ответы!
Класс:
Ввел функцию, инициализирующую значения переменных по умолчанию — function init() Добавлено через 15 минут
какая версия php у вас??? PHP Версия: 5.2.14
0 |
Schtrich weboman 210 / 195 / 63 Регистрация: 13.08.2010 Сообщений: 1,531 Записей в блоге: 6 |
||||||||
20.08.2012, 09:01 |
6 |
|||||||
все плохо. Во 1-ых версия php… Есть поновее, во 2-ых как вам уже сказали если хотите упростить аж совсем, то дей-но лучше использовать конструктор.
0 |
KOPOJI Почетный модератор 16842 / 6720 / 880 Регистрация: 12.06.2012 Сообщений: 19,967 |
||||||||
20.08.2012, 09:46 |
7 |
|||||||
Schtrich, и что здесь получится..? что на экран ничего не выведется (если E_NOTICE включены, вылезет нотайс).. тогда уж хотя бы так..
Добавлено через 34 минуты
0 |
KorniloFF 0 / 0 / 0 Регистрация: 14.07.2012 Сообщений: 46 |
||||
20.08.2012, 09:47 [ТС] |
8 |
|||
Schtrich, спасибо за подсказку.
Разве имя конструктора не должно совпадать с классом?
0 |
Почетный модератор 16842 / 6720 / 880 Регистрация: 12.06.2012 Сообщений: 19,967 |
|
20.08.2012, 09:53 |
9 |
Разве имя конструктора не должно совпадать с классом? это было до 5 версии PHP, в PHP5 появился специальный магический метод __construct(), который вызывается при создании объекта. Но можно и название класса писать.. Добавлено через 2 минуты
1 |
0 / 0 / 0 Регистрация: 14.07.2012 Сообщений: 46 |
|
20.08.2012, 09:54 [ТС] |
10 |
это было до 5 версии PHP, в PHP5 появился специальный магический метод __construct(), который вызывается при создании объекта. Но можно и название класса писать.. Спасибо, не знал. После мучения Гугла натыкался лишь на старый синтаксис, как оказалось =) Добавлено через 58 секунд
а значения по умолчанию — в объявлении обычно прописывают.. А не затруднитесь примером, хоть самым примитивным?
0 |
KOPOJI Почетный модератор 16842 / 6720 / 880 Регистрация: 12.06.2012 Сообщений: 19,967 |
||||
20.08.2012, 09:58 |
11 |
|||
Спасибо, не знал. После мучения Гугла натыкался лишь на старый синтаксис, как оказалось =) http://webphp.ru/2008/04/24/ra… p4-i-php5/ http://www.php.net/manual/ru/migration5.php Добавлено через 1 минуту
В значениях по умолчанию нельзя указывать выражения. можно также в конструкторе указывать значения
0 |
KorniloFF 0 / 0 / 0 Регистрация: 14.07.2012 Сообщений: 46 |
||||||||
20.08.2012, 10:05 [ТС] |
12 |
|||||||
можно также в конструкторе указывать значения Спасибо. Вот это мне уже ближе.
То вызывать, переназначая первую и третью переменную мне нужно будет так?
0 |
KOPOJI Почетный модератор 16842 / 6720 / 880 Регистрация: 12.06.2012 Сообщений: 19,967 |
||||
20.08.2012, 10:11 |
13 |
|||
нет, так выдаст ошибку. там только по порядку возможно
0 |
KorniloFF 0 / 0 / 0 Регистрация: 14.07.2012 Сообщений: 46 |
||||
20.08.2012, 10:12 [ТС] |
14 |
|||
И будет ли это эквивалентно записи:
Просто мне было бы проще на примерах разобраться. Поправьте, пожалуйста, если я не прав в этом коде.
0 |
Почетный модератор 16842 / 6720 / 880 Регистрация: 12.06.2012 Сообщений: 19,967 |
|
20.08.2012, 10:14 |
15 |
вывести должен first Добавлено через 2 минуты
0 |
0 / 0 / 0 Регистрация: 14.07.2012 Сообщений: 46 |
|
20.08.2012, 10:15 [ТС] |
16 |
Мне нужен пример для вывода
0 |
Почетный модератор 16842 / 6720 / 880 Регистрация: 12.06.2012 Сообщений: 19,967 |
|
20.08.2012, 10:16 |
17 |
и в конструктор вы не можете подать свойства этого объекта — объект же еще не создался
0 |
KorniloFF 0 / 0 / 0 Регистрация: 14.07.2012 Сообщений: 46 |
||||
20.08.2012, 10:21 [ТС] |
18 |
|||
Вопрос — зачем так!? Ну, к примеру, я создаю класс, в котором все неназначенные значения должны присутствовать в дефолтном варианте при создании объекта… Добавлено через 3 минуты
То тут последовательно я создаю объект,потом присваиваю ему свойства. Логика есть, вопрос в синтаксисе, ну и не знаю, можно ли в конструкторе так задавать переменные?…
0 |
KOPOJI Почетный модератор 16842 / 6720 / 880 Регистрация: 12.06.2012 Сообщений: 19,967 |
||||||||
20.08.2012, 10:25 |
19 |
|||||||
Добавлено через 26 секунд
Логика есть, вопрос в синтаксисе, ну и не знаю, можно ли в конструкторе так задавать переменные? а вы запустите его Добавлено через 55 секунд Добавлено через 1 минуту
0 |
KorniloFF 0 / 0 / 0 Регистрация: 14.07.2012 Сообщений: 46 |
||||
20.08.2012, 10:30 [ТС] |
20 |
|||
а вы запустите его Уф, конечно попробую, просто всю ночь не спалось, гонял другую проблему, а тут эта всплыла в результате попыток добиться рабочего кода.. =( Добавлено через 4 минуты
Это решение мне сразу из ЯС в голову пришло, но мне оно не нравится. Даже если свитчем обрабатывать…
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
20.08.2012, 10:30 |
Помогаю со студенческими работами здесь Второй день бьюсь над ошибкой «Parse error: syntax error, unexpected ‘(‘, expecting ‘,’ or ‘;’ « Ошибка Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING <?php … ошибка Parse error: syntax error, unexpected ‘function_toString’ (T_STRING), expecting variable (T_VARIABLE) Parse error: syntax error, unexpected ‘text’ (T_STRING), expecting ‘]’ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 20 |