Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
RealHero
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 21
1

Посоветуйте литературу по PHP

18.06.2015, 11:18. Просмотров 829. Ответов 10
Метки нет (Все метки)

Всем ку собираюсь учить PHP посоветуйте литературу!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2015, 11:18
Ответы с готовыми решениями:

Посоветуйте литературу по PHP
Здравствуйте. Просьба, не отсылайте меня в раздел литературы по PHP, а дайте...

Посоветуйте новую, хорошую литературу по php
Посоветуйте новую, хорошую литературу по php, также и по html + css. Новые...

Посоветуйте литературу
Собственно Такое дело , поверхностно знаю C++,C#,Java,Delphi , изучал в...

Посоветуйте литературу/источники
Прошу посоветовать ссылки/литературу, в которой можно было бы узнать о таких...

Посоветуйте хорошие статьи (литературу) по Службам аутентификации
Посоветуйте, пожалуйста, хорошие статьи (литературу) по Службам аутентификации,...

10
Виталюска
475 / 463 / 229
Регистрация: 26.09.2010
Сообщений: 2,360
18.06.2015, 12:08 2
Цитата Сообщение от RealHero Посмотреть сообщение
посоветуйте литературу!
тут на эту тему есть много чего
Учебники по PHP
просто надо не лениться, а воспользоваться поиском
0
tolimadokara
745 / 413 / 91
Регистрация: 24.10.2012
Сообщений: 3,025
Записей в блоге: 1
18.06.2015, 15:52 3
RealHero, рекомендую Вам скачать справочник по PHP в формате chm. Это справочный файл windows. Он рулит.

В нем много информации ни одна книга не уместит описание нескольких тысяч функций. Текстовая информация форматирована то есть она стилизованна а не простой текст. Все понятно. Вы можете читать этот справочник когда нет доступа к сети. Достаточно один раз скачать его и сохранить на компьютере. Если пользуетесь LINUX, то наверно *.chm файл не откроется. Надо поискать какой то ридер для этого файла.

http://php.net/download-docs.php

Добавлено через 4 минуты
Конечно изучения языков программирования следует изучать с чтения какой то книги по программированию. Если с программирование вообще не знаком.

Но все эти учебники по PHP надо отправить в домну. Потому что лучший справочник по функциям и синтаксису PHP это либо официальный сайт php.net либо его оффлайн версия в *.chm. Там все есть.

Но изучать язык программирования по *.chm справочнику тоже не получиться наверно. Тогда надо уметь пользоваться этим документом.
0
Sraimon
11 / 11 / 1
Регистрация: 17.10.2014
Сообщений: 91
20.06.2015, 16:27 4
Видио уроки на ютубе поищи если собираешься сам учить без знания какова либо си подобного языка это тебе поможет и будет больше профита чем с книги !
А если есть знания си подобного языка то подумай зачем тебе нужен php ? если для sql запросов общения с бд то учи сразу sql . Php походу подтянешь ! При знании си подобного языка другой язык учиться смотря на пример кода и читаю справку по нему !

Добавлено через 10 минут
Цитата Сообщение от tolimadokara Посмотреть сообщение
Конечно изучения языков программирования следует изучать с чтения какой то книги по программированию. Если с программирование вообще не знаком.
Когда то не так давно влез в программирование около года назад и друг дал учебник по с++ Бьерна Страуструпа =) мол гуд книга учи
Потом ко мне пришел друг web дизайнер web программист я его спросил а как это ? и указал на учебник я такой ненависти не когда не видел он мне прочитал 2-3 страницы учебника и спросил понял ?
Я такой нет =)
Он вот и я тоже не понял =)
P.s друг учился в универе прикладная информатика и математика
P.s.s В итоге смысл истории книги это хорошо но когда ты видишь как чел пишет код и попутно его объясняет куда все более понятно кто думает что прикладная информатика и математика не показатель посмотрите про гомологии групп =)
0
tolimadokara
745 / 413 / 91
Регистрация: 24.10.2012
Сообщений: 3,025
Записей в блоге: 1
20.06.2015, 16:50 5
Цитата Сообщение от Sramion
Цитата Сообщение от tolimadokara
Конечно изучения языков программирования следует изучать с чтения какой то книги по программированию. Если с программирование вообще не знаком.
Когда то не так давно влез в программирование около года назад и друг дал учебник по с++ Бьерна Страуструпа =) мол гуд книга учи
Да. Страустрап рулит. Я тоже одному человеку его советовал.
Цитата Сообщение от Sramion
Потом ко мне пришел друг web дизайнер web программист я его спросил а как это ? и указал на учебник я такой ненависти не когда не видел он мне прочитал 2-3 страницы учебника и спросил понял ?
Да...

Понимаете что Вам ответить, это очень сложная книга Бьерна Страустрапа - Язык программирования C++.

Её сложность это обязательный стиль изложения материала книг мирового уровня. Проще говоря не принято, мне кажеться, в таких серьезных книгах излагать свою мысль просто - надо говорить сложными философскими терминами. Ещё проще говоря... если бы Страустрап писал "сатри, переменная это как ведерко. а значение в ней это как вишенки которые в нем" то его просто бы ...

Возможно книга Страустрапа это книга для таких же как Страустрап. Пускай не Сердиться страустрап.

Понять её очень сложно. Нужно подключать воображение, абстрагироваться и смотреть параллельно в философский словарь.

Кстати ru.wikipedia.org то же самое что в книгах страустрапа.

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

Книга "Windows98 для чайников", "C++ для чайников" тоже возможно очень хороши. Очень доступно объясняют.

В общем, Ваш друг - очень прав. Не знаю даже что Вам ответить.

Цитата Сообщение от Sraimon
P.s друг учился в универе прикладная информатика и математика
Да. Это очень сложный предмет, прикладная математика.
Цитата Сообщение от Sraimon
P.s.s В итоге смысл истории книги это хорошо но когда ты видишь как чел пишет код и попутно его объясняет куда все более понятно кто думает что прикладная информатика и математика не показатель посмотрите про гомологии групп =)
Согласен.

Может быть книга Бьрена Страустрапа - Язык программирования С++ это просто крутая вещь в домашней библиотеке. Так же как дорогой портсигар к примеру.
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 865
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
20.06.2015, 16:59 6
Цитата Сообщение от Sraimon Посмотреть сообщение
Он вот и я тоже не понял
значит, такой программист.
Цитата Сообщение от tolimadokara Посмотреть сообщение
это очень сложная книга Бьерна Страустрапа - Язык программирования C++
абсолютно ничего сложного в ней нет. Возьми Кнута, например, или Макконела, там еще можно так сказать (Кнута я лично, к примеру, до сих пор не осилил - т.к. требуется хорошая математическая база, что некогда)
Цитата Сообщение от tolimadokara Посмотреть сообщение
Понять её очень сложно. Нужно подключать воображение, абстрагироваться и смотреть параллельно в философский словарь
Для чего? о_О
0
Sraimon
11 / 11 / 1
Регистрация: 17.10.2014
Сообщений: 91
20.06.2015, 17:30 7
Цитата Сообщение от KOPOJI Посмотреть сообщение
Сообщение от Sraimon
Он вот и я тоже не понял
значит, такой программист.
Уважаемый , Бьерн Струструп сложная книга. А тем более если ты не знаешь программирования ее почти не возможно понять
Просто я не понимаю зачем писать книгу так сложно у которой одно из предназначений это обучение !
И да сейчас ее открыл улыбнулся книга написана для студентов и преподавателей (как понимаю это тонкий намек не суйся сюда без преподавателя =) )
P.s KOPOJI я в разделе php сети создал тему посмотри, там я ее создал? =) и по возможности дай ответ =) заранее спс
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 865
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
20.06.2015, 17:36 8
Цитата Сообщение от Sraimon Посмотреть сообщение
А тем более если ты не знаешь программирования ее почти не возможно понять
А если ты не знаком с этим вообще - нечего браться за эту книгу. Она не рассчитана на тех, кто не понимает хотя бы простой алгоритмизации, там нет никакой воды в духе
Цитата Сообщение от tolimadokara Посмотреть сообщение
сатри, переменная это как ведерко. а значение в ней это как вишенки которые в нем
Посмотрите закрепленную тему в C++ - Литература C++. Эту книгу отнесли к подразделу "C++, Level Up!". Что уже подразумевает, что она рассчитана на тех, кто знаком с программированием в целом и с самим C++.
Для тех, кто ничего не знает в данной категории - есть другие книги.
0
tolimadokara
20.06.2015, 18:01
  #9

Не по теме:

Кликните здесь для просмотра всего текста
Цитата Сообщение от KOPOJI
Цитата Сообщение от tolimadokara
это очень сложная книга Бьерна Страустрапа - Язык программирования C++
абсолютно ничего сложного в ней нет.
Bjern_Straustrup_-_Programming_language_C++_no_understand_content.gif
Посоветуйте литературу по PHP

^ вот к примеру то что лично мне не понятно как человеку обычному.

Может мне не хватает высшего образования?

Цитата Сообщение от KOPOJI
Возьми Кнута, например, или Макконела, там еще можно так сказать (Кнута я лично, к примеру, до сих пор не осилил - т.к. требуется хорошая математическая база, что некогда)
Спасибо. Не слышал об этих книгах. Если ты рекомендуешь может быть когда то скачаю. Наверное хорошие книги.

Цитата Сообщение от KOPOJI
Цитата Сообщение от tolimadokara
Понять её очень сложно. Нужно подключать воображение, абстрагироваться и смотреть параллельно в философский словарь
Для чего? о_О
Просто много сложных слов.

KOPOJI, может я просто тупой? Серьезно. Может же такое быть? Гарацкие умнее :D.

Давайте не будем ссориться, если что.

Цитата Сообщение от Sraimon
И да сейчас ее открыл улыбнулся книга написана для студентов и преподавателей (как понимаю это тонкий намек не суйся сюда без преподавателя =) )
Цитата Сообщение от Бьерн Страуструп Язык Программирования С++.txt
Данная книга в первую очередь рассчитана на профессиональных
программистов, желающих изучить новый язык и использовать его для
нетривиальных задач. В книге дается полное описание С++, содержится много
завершенных примеров и еще больше фрагментов программ.
Цитата Сообщение от Sraimon
P.s KOPOJI я в разделе php сети создал тему посмотри, там я ее создал? =) и по возможности дай ответ =)
Можно просто сюда дать ссылку на вашу тему что бы всем было видно.

Цитата Сообщение от KOPJI
Цитата Сообщение от tolimadokara
сатри, переменная это как ведерко. а значение в ней это как вишенки которые в нем
Посмотрите закрепленную тему в C++ ...что она рассчитана на тех, кто знаком с программированием в целом и с самим C++.
Понятно. Посмотрю может быть когда-то.
Цитата Сообщение от KOPOJI
Для тех, кто ничего не знает в данной категории - есть другие книги.
Верно. Надо же начинать постепенно.

0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16756 / 6647 / 865
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
20.06.2015, 19:58 10
tolimadokara,
Кликните здесь для просмотра всего текста
Цитата Сообщение от tolimadokara Посмотреть сообщение
вот к примеру то что лично мне не понятно как человеку обычному.
"структурирование задачи" - это просто выделение конкретных задачей из общих областей. Например, обработка данных пользователей - одна часть, отображение - другая и т.п.
Хотя может кто-то и по-другому это понимает.
"Определение новых типов" - почитайте про typedef.
Хотя, возможно, что в данном случае еще имелось в виду создание структур данных (struct).
"Предметная область" - например, базы данных, или рекламная деятельность. Т.е., к примеру, для фотокаталога фотографов ты создаешь таблицу с фотографиями (т.е., выделяешь сущность, структуру данных для хранения информации о фотографиях) в соответствии с данной предметной областью, которой, в данном случае, будет являться фотография. В общем, все, что относится непосредственно к данному предмету, который нас интересует.
"Абстракция" в том смысле, что используется здесь - почти тоже самое, что и сама абстракция - по сути, есть возможность "невникания" в реализацию (т.е., в то, как устроена та или иная часть программы).
"Объекты" - это экземпляры класса А вообще, совместно со следующим выделенным (относительно ООП) - объект, это суть тоже самое, что и объект в жизни. Т.е., стол - это физический объект. Значит, можно и в программе создать объект "Стол", "Стул" и т.д.
"Стадия трансляции" - это, по сути, то самое время, когда компилятор языка переводит код из того, что вы написали, в другой (в зависимости от ЯП это могут быть и машинные коды, и байт-код для JVM и т.д.). Можете воспринимать, как перевод с иностранного для компьютера язык на его родной (или более близкий), например, из C++ в язык ассемблера.
Про Объектно-ориентированное программирование можно просто почитать в интернете - там полно информации ( у нас на форуме есть неплохой, если не сказать отличный, FAQ по ООП в PHP)
Про классы там же можно почитать.
"Тип" (имеется ввиду тип данных) - это именно тип данных. К примеру, переменная символьного типа (символ или массив символов, строка), числового типа (число) - что делится еще на всякие числа целого типа (int), число с плавающей точкой (float), число с плавающей точкой двойной точности (double) и т.д.
"Неявное преобразование типов данных" - это, например, когда вы, не указывая явно, преобразуете данные одного типа данных в данные другого типа данных. Понимаю, что объяснение не очень хорошее, поэтому покажу пример:
Кликните здесь для просмотра всего текста
PHP
1
2
3
$a = '10';
$b = $a * 10;
echo $b;

Этот код использует неявное преобразование типов - данные строкового типа преобразуются в данные целочисленного типа.
Кликните здесь для просмотра всего текста
PHP
1
2
3
$a = '10';
$b = ((int) $a) * 10;
echo $b;

Тот же самый код, только который использует явное преобразование типов.
"Динамическое создание типов" - наверное, имеется в виду использование обобщенного (шаблонного) проектирования. Нечто в духе такого, например:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <vector>
#include <typeinfo>
 
 
template<typename T>
void printVector(const std::vector<T>& vect)
{
    std::cout << std::endl << typeid(T).name() << ": " << std::endl;
    for(const auto& x: vect)
        std::cout << x << ' ';
    std::cout << std::endl;
}
 
int main(int argc, char *argv[])
{
    std::vector<int> v1{1,2,3,4,5,6,7,8,9,10};
    std::vector<double> v2{1.1,2.1,3.1,4.1,5.1,6.1,7.1,8.1,9.1,10.1};
    std::vector<char> v3{'a','b','c','d','e'};
    std::vector<std::string> v4{"foo", "bar", "lol"};
 
    printVector(v1);
    printVector(v2);
    printVector(v3);
    printVector(v4);
}
http://ideone.com/yoFlOZ


Типы данных разные, но одна функция их выводит. Конечно, в языке с динамической типизацией, как PHP, такого почти нет (хотя тоже есть возможность указать некоторые типы данных). Кроме всяких типов классов и массивов, их можно (вроде, больше ничего нельзя):
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
function printArr(array $arr)
{
    foreach($arr as $k=>$v)
        echo PHP_EOL, $k, ' => ', $v, PHP_EOL;
}
 
printArr(['foo', 'bar', 'lol']);
printArr('foo');
http://ideone.com/s4m3t2

Как видно, первый вызов отрабатывает нормально (т.к. передаем массив, как и указано), а затем получаем ошибку, т.к. передаем строку
PHP Catchable fatal error: Argument 1 passed to printArr() must be of the type array, string given, called in ....
"Средства для перегрузки операции" - имеется ввиду возможность написать свою реализацию для какой-то операции. Например, можно перегрузить оператор "+" и конкатенировать объекты. В PHP такого не позволяется, в качестве некоторой (слабенькой) аналогии можно привести пример с магическими методами PHP (__toString, __get, __call и т.п.), которые позволяют, по сути, сделать "то же самое", только при других событиях.
"Контроль типов" - это нечто наподобие того, что я выше показал кодом с ошибкой о несоответствии типа данных. Т.е., выполнение проверки, что типы данных соответствуют друг другу. Ужесточение по сравнению с Си - это, к примеру, следующее:
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    int *c = malloc(sizeof(int) * 10); //указатель на массив для 10 чисел
 
    //...какие-то действия с массивом
 
    free(c);
    return 0;
}
http://ideone.com/upcioi

В си этот код нормально отработает (не знаю насчет новых стандартов, может, там и ввели это, но вроде как нет)
В плюсах этот же код выдаст ошибку - http://ideone.com/Bk4PVQ, а чтобы заработало, надо явно привести тип данных
C++
1
int *c = (int *) malloc(sizeof(int) * 10);
или, что в плюсах считается более правильным, использовать свой "способ" кастования:
C++
1
int *c = static_cast<int *>(malloc(sizeof(int) * 10));
Хотя, конечно, там уже и не malloc обычно используется, а new/delete (new[]/delete[]).. Ну да ладно.
Модульное построение программ - считайте, что нечто наподобие того, как вы разносите PHP-код на разные файлы, а затем их собираете при помощи инклудов.
"Символические константы" - это и есть привычные вам константы в PHP. Только в си нельзя было объявить размерность статического массива при помощи такой константы, только макросом или костылом, в C++ было можно (..а теперь по новому стандарту вроде опять нельзя, разве что при помощи constexp).
Ах да, почему символические.. Число 3.14 или число 10 - это тоже константы. А константа MAX_SIZE уже является символической, т.к. используется символы в качестве названия, и вместо них уже подставляются нужные значения.
"Перегрузка имен функций" - для того, чтобы была возможность выполнять разные действия в функции с одним именем.
Например, первый пример с векторами можно переписать без использования шаблонов таким образом:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <vector>
#include <typeinfo>
 
 
void printVector(const std::vector<int>& vect)
{
    std::cout << std::endl << typeid(int).name() << ": " << std::endl;
    for(const auto& x: vect)
        std::cout << x << ' ';
    std::cout << std::endl;
}
void printVector(const std::vector<double>& vect)
{
    std::cout << std::endl << typeid(double).name() << ": " << std::endl;
    for(const auto& x: vect)
        std::cout << x << ' ';
    std::cout << std::endl;
}
void printVector(const std::vector<char>& vect)
{
    std::cout << std::endl << typeid(char).name() << ": " << std::endl;
    for(const auto& x: vect)
        std::cout << x << ' ';
    std::cout << std::endl;
}
void printVector(const std::vector<std::string>& vect)
{
    std::cout << std::endl << typeid(std::string).name() << ": " << std::endl;
    for(const auto& x: vect)
        std::cout << x << ' ';
    std::cout << std::endl;
}
 
int main(int argc, char *argv[])
{
    std::vector<int> v1{1,2,3,4,5,6,7,8,9,10};
    std::vector<double> v2{1.1,2.1,3.1,4.1,5.1,6.1,7.1,8.1,9.1,10.1};
    std::vector<char> v3{'a','b','c','d','e'};
    std::vector<std::string> v4{"foo", "bar", "lol"};
 
    printVector(v1);
    printVector(v2);
    printVector(v3);
    printVector(v4);
}
http://ideone.com/9L9QB0

Или представим, что мы хотим знать, сколько аргументов передано. Например, функция, выводящая фамилию и имя или только имя:
PHP
1
2
3
4
5
6
function output($name, $surname = NULL)
{
    echo 'Your name is ', $name, ($surname ? ', Surname is ' . $surname : ''), PHP_EOL;
}
output('Иван');
output('Иван', 'Иванов');
На данном примере не так страшно, можно написать и так. Но когда дело доходит до множества возможных аргументов, да еще и сложной логики для каждого случая, или же если выполняемые действия зависят от типа переданного аргумента (например, передали строку с именем - хорошо; передали число вместо имени - ответим, что идиот), то в таких случаях часто лучше выделить это в отдельные методы вместо кучи огромных if-else (к сожалению, PHP толком не позволяет такого полиморфизма).
"Ссылочный тип" - это уже непосредственно новый тип данных, появившийся в C++.. Думаю, лучше всего будет объяснение Vovan-VE в теме - там по PHP, но принцип ссылок несколько схож (не путать с указателями) Как работают ссылки в PHP.
"Основные объекты" и т.п. - имеется в виду, что в C++ есть возможность работать "напрямую" с памятью и т.д. - почитайте, что такое "адресная арифметика", к примеру. Да там дальше, в общем-то, в скобках написано.
"Разряды" - это обычная математика, это, вроде, еще в школе проходят. Т.е., грубо говоря, это место цифры в числе.
"Адреса" - это местонахождение блоков памяти компьютере, т.е. именно адреса Наверняка видели когда-либо ошибку в духе "Приложение обратилось по адресу 0х7с903206. Память не может быть Read" или наподобие) Хотя это все должно объясняться в адресной арифметике.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Может мне не хватает высшего образования?
Вышка тут не причем. Просто, видимо, еще рано, не все сразу
Цитата Сообщение от tolimadokara Посмотреть сообщение
Не слышал об этих книгах. Если ты рекомендуешь может быть когда то скачаю. Наверное хорошие книги.
Ну, если не понятна обсуждаемая книга, то эти две не стоит даже смотреть, особенно Кнута
Цитата Сообщение от tolimadokara Посмотреть сообщение
Верно. Надо же начинать постепенно.
Именно.


З.Ы. Возможно, я что-то неправильно понял/объяснил - тогда пусть меня поправят
1
tolimadokara
745 / 413 / 91
Регистрация: 24.10.2012
Сообщений: 3,025
Записей в блоге: 1
21.06.2015, 15:24 11
KOPOJI, спасибо огромное что столько правильного интеллектуального текста набрал. В свободное время обязательно почитаю.

Надеюсь что это правильные объяснения

Цитата Сообщение от KOPOJI
З.Ы. Возможно, я что-то неправильно понял/объяснил - тогда пусть меня поправят
Да. Возможно.
0
21.06.2015, 15:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2015, 15:24

Посоветуйте литературу по PHP
Посоветуйте, пожалуйста, литературу по PHP с нуля. заранее спасибо!

Посоветуйте литературу для изучения PHP
Посоветуйте ЛУЧШУЮ литературу для изучения PHP. Заранее спасибо.

Посоветуйте литературу по созданию сайтов, используя ООП php (mvc)
Именно создание, а не теория. Теория допускается конечно же, но все-таки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru