php advanced

Post on 14-Apr-2017

54 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PHP advancedWeb

Карнаухов Даниил

Чтение и запись файлов.$content = file_get_contents('.gitignore');echo $content;

$lines = file('.gitignore');

$fp = fopen('.gitignore', 'r');while (!feof($fp)) { echo fread($fp, 4096);}fclose($fp);

file_put_contents('test_file.txt', 'Hello world');

$fp = fopen('test_file.text', 'w');fwrite($fp, 'Hello world!');fclose($fp);

Операции с файламиfile_exists ($fileName) - проверяет, существует-ли указанный файл.

unlink ($fileName) - удаляет указанный файл.

copy ($source, $dest) - создает копию файла $source и помещает его в файл по имени $dest.

Работа с директориями$curDir = opendir('.');

while($file = readdir($curDir)) { echo $file;}

foreach (glob('*.txt') as $fileName) { echo $fileName . ' размер ' . filesize($fileName);}

Функцииfunction sum($x, $y) { return $x + $y;}

echo $sum(1, 2);$string = 'Hello user';

function printHelloWorld() { $string = 'Hello world'; echo $string;}

Передача аргументов по ссылкеfunction addCopyright(&$string) { $copyright = ' © Noveo'; $string .= $copyright;}

$text = 'Some text.';addCopyright($text);echo $text;

Значения по-умолчанию.const MODIFY_TYPE_TO_LOWWER = 0;const MODIFY_TYPE_TO_UPPER = 1;

function modifyString($string, $modifyType = MODIFY_TYPE_TO_LOWWER) { if ($modifyType == MODIFY_TYPE_TO_LOWWER) { return strtolower($string); } else if ($modifyType == MODIFY_TYPE_TO_UPPER) { return strtoupper($string); }}

echo modifyString('Hello world', MODIFY_TYPE_TO_UPPER);echo modifyString('Hello world', MODIFY_TYPE_TO_LOWWER);

Анонимные функции$array = [5, 2, 1, 7];

usort($array, function($a, $b) { if ($a > $b) { return 0; } else { return 1; }});

var_dump($array); // 7, 5, 2, 1

Классы и объектыclass BaseObject { private $greetings = 'Hello world!';

public function sayHello() { echo $this->greetings; }}

$base = new BaseObject();$base->sayHello();$base = 'BaseObject';$base = new $base(); // omg

Пространства имен// 10.phpnamespace internship\base;

class BaseObject { const GREETINGS = 'Hello world';

public function sayHello() { echo self::GREETINGS; }}

// 10_1.phpnamespace internship\advanced;

class BaseObject { const GREETINGS = 'Hello intern\'s';

public function sayHello() { echo self::GREETINGS; }}// 10.2.phprequire '10.php';require '10_1.php';

$base = new internship\base\BaseObject();$advanced = new internship\advanced\BaseObject();

$base->sayHello();$advanced->sayHello();

Наследованиеrequire '10.php';

class AdvancedObject extends internship\base\BaseObject { public function sayHi($default = true) { if ($default) { parent::sayHello(); } else { echo 'Hi peoples'; } }}

$adv = new AdvancedObject();$adv->sayHello();$adv->sayHi();

Модификаторы доступа / область видимости.class BaseObject{ public $greetings = 'Hello world'; protected $protectedGreetings = 'Hello my world!'; private $privateGreetings = 'Hello my personal world';}

$obj = new BaseObject();echo $obj->greetings;echo $obj->protectedGreetings; // errorecho $obj->privateGreetings; // error

Staticclass BaseObject{ const GREETINGS = 'Hello world';

public static $magicNumber = 10;

public static function sayHello() { echo self::GREETINGS; }}

BaseObject::sayHello();echo BaseObject::GREETINGS;echo BaseObject::$magicNumber;

Контроль типовclass BaseObject{ private $greetings = 'Hello world';

public function getGreetings() { return $this->greetings; }}

function sayHello(BaseObject $obj){ echo $obj->getGreetings();}

Интерфейсыinterface Runnable{ public function run();}

class RunnableObject implements Runnable{ public function run() { echo 'we run'; }}

Абстрактные классыabstract class Apple{ protected $name = 'apple';

abstract public function getColor();

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

class GreenApple extends Apple{ private $color = 'green';

public function getColor() { return $this->color; }

public function getName() { return $this->getColor() . ' ' . parent::getName(); }}

Исключенияtry { $age = rand(0, 200); if ($age > 150) { throw new Exception('Immortal human detected'); }} catch (Exception $e) { echo $e->getMessage() . '<br>';} finally { echo 'age is: ' . $age;}

СессииСпособ ассоциации информации с пользователям при нескольких последовательных запросах. К данным можно получить доступ через массив $_SESSION.session_start() - начинает новую или продолжает старую сессию.

session_destroy() - уничтожает все данные в сессии.

Паттерн Singletonclass Singleton{ static private $instance = null;

private function __construct(){}

public static function getInstance() { if (self::$instance == null) { self::$instance = new self(); } return self::$instance; }}

Паттерн фабричный метод

Спасибо за внимание.

top related