Почему звездочка перед именем переменной, а не после типа?

Ничего не видно. Страница пуста и белая.

Также известна как Белая страница смерти или Белый экран смерти . Это происходит, когда отчет об ошибках отключен, и произошла фатальная ошибка (часто синтаксическая ошибка).

Если вы включили протоколирование ошибок, вы найдете конкретное сообщение об ошибке в своем журнале ошибок. Обычно это будет в файле php_errors.log, либо в центральном месте (например, /var/log/apache2 во многих средах Linux), либо в самом каталоге самого скрипта (иногда используется в среде совместного размещения).

Иногда может быть более простым временно отображать ошибки. На белой странице отобразится сообщение об ошибке. Будьте осторожны, потому что эти ошибки видны всем, кто посещает веб-сайт.

Это легко сделать, добавив в начале скрипта следующий код PHP:

ini_set('display_errors', 1); error_reporting(~0);

Код включит отображение ошибок и установит отчетность на самый высокий уровень.

Поскольку во время выполнения ini_set() он не влияет на синтаксические ошибки синтаксиса. Эти ошибки появятся в журнале. Если вы хотите также отобразить их на выходе (например, в браузере), вам необходимо установить директиву display_startup_errors на true. Сделайте это либо в php.ini, либо в .htaccess или любом другом методе, который влияет на конфигурацию перед временем выполнения .

Вы можете использовать те же методы для установки параметра log_errors и error_log , чтобы выбрать ваше собственное место в файле журнала.

Если вы посмотрите в журнале или используете дисплей, вы получите гораздо лучшее сообщение об ошибке и строка кода, где ваш скрипт останавливается.

Похожие вопросы:

Связанные ошибки:

176
задан Lundin 16 May 2017 в 14:57
поделиться

5 ответов

Они ТОЧНО эквивалентны. Однако в

int *myVariable, myVariable2;

кажется очевидным, что myVariable имеет интервал типа * , в то время как myVariable2 имеет интервал типа . В

int* myVariable, myVariable2;

может казаться очевидным, что оба имеют интервал типа * , но это не корректно, поскольку myVariable2 имеет интервал типа .

Поэтому первый стиль программирования более интуитивен.

233
ответ дан machine_1 23 November 2019 в 20:22
поделиться

Если Вы смотрите на него иначе, *myVariable имеет тип int, который имеет некоторый смысл.

115
ответ дан biozinc 23 November 2019 в 20:22
поделиться

Это - просто вопрос предпочтения.

то, Когда Вы читаете код, различая переменные и указатели, легче во втором случае, но это может привести к беспорядку при помещении и переменных и указателей общего типа в одной строке (которому самой часто препятствуют инструкции проекта, потому что удобочитаемость уменьшений).

я предпочитаю объявлять указатели с их соответствующим знаком рядом с именем типа, например,

int* pMyPointer;
11
ответ дан macbirdie 23 November 2019 в 20:22
поделиться

Поскольку * в той строке связывает более тесно с переменной, чем к типу:

int* varA, varB; // This is misleading

, Поскольку @Lundin указывает ниже, константа добавляет еще больше тонкости для размышления о. Можно полностью обойти это путем объявления одной переменной на строку, которая никогда не неоднозначна:

int* varA;
int varB;

баланс между кодом разъединения и кратким кодом тверд ударить — дюжина избыточных строк int a; не хороша также. Однако, я принимаю значение по умолчанию к одному объявлению на строку и беспокойству об объединяющемся коде позже.

40
ответ дан ojrac 23 November 2019 в 20:22
поделиться

Поскольку это имеет больше смысла, когда у Вас есть объявления как:

int *a, *b;
3
ответ дан Greg Rogers 23 November 2019 в 20:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: