All streams
Search
Write a publication
Pull to refresh
19
0
Сергей Колесников @win0err

Разработчик программного обеспечения

Send message
Лучше делать так, чтобы потом было легко отловить исключение:
<?php
class BalanceException extends \Exception { } // Ну или BankAccountException, зависит уже от конкретной ситуации

class BankAccount {
...
    public function withdrawBalance($amount) {
        if ($amount > $this->balance) {
            throw new BalanceException('Amount greater than available balance.');
        }
        $this->balance -= $amount;
    }
...
}
Внутри функции другая область видимости.

Можно захватить переменную извне тремя способами, в статье не используется ни один из них:
1. Лямбда с use, как описал выше;
2. Вариант nokimaro с global внутри функции;
3. Использовать $GLOBALS, но это дичь какая-то:
<?php
$name = 'Ryan McDermott';
function splitIntoFirstAndLastName() {
$GLOBALS['name'] = preg_split('/ /', $GLOBALS['name']);
}
splitIntoFirstAndLastName();
var_dump($name); // ['Ryan', 'McDermott'];


Чтобы не соврать, проверил все варианты (и вариант из статьи) в PHP 5.6 и 7.0, а также прочёл документацию, вдруг забыл что.
php.net/manual/en/language.variables.scope.php
Прошу прощения, нечаянно отправил комментарий, не могу изменить его уже.

Хотя вот так прокатит:
$name = 'Ryan McDermott';
$splitIntoFirstAndLastName = function () use (&$name) {
$name = preg_split('/ /', $name);
};
$splitIntoFirstAndLastName();

var_dump($name); // ['Ryan', 'McDermott'];

Но такой код ещё нужно додуматься написать

Тут чушь написана. Такое просто не захватит переменную $name.
`
$name = 'Ryan McDermott';


function splitIntoFirstAndLastName() {
$name = preg_split('/ /', $name);
}


splitIntoFirstAndLastName();


var_dump($name); // ['Ryan', 'McDermott'];
// Не ['Ryan', 'McDermott'], а string(14) 'Ryan McDermott'
`


Хотя вот так прокатит:

Естественно, многоагентные системы

Подскажите что-нибудь интересное про МАС. Желательно, чтобы ещё и примеры клёвые были

Напомнило: Работать надо не 12 часов, а головой
Интересно, сколько такая железяка будет стоить через лет 20?
Как по мне, интерфейс хороший, но я бы сделал всё светлое, так приятнее воспринимается. Но в целом хорошо.
Те, что из Google Play — будут оттуда и обновляться. Установленные вручную — вручную соответственно. Все нормально ведь
Представил этого клоуна на собрании акционеров. Брр
Ключевая ошибка в созданиE интернет-бизнеса
Вот ключевая ошибка.
Excalibur Almaz похож на бутылку шампанского, простите
А каково лицо Баллмера :) Однако 8S получится неплохим.
Сегодня прям день «Яндекс забивает...»
Geany, он мне нравится.
Мне действительно нравится новый Gmail. Тем более он лучше старого, Вы просто не привыкли. Просто пользуйтесь им и он Вам понравится даже больше чем старый.
ИМХО.
schemer.com/invite/b4g9g4io978ds
Простите, ссылка не прошла =(

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity