All streams
Search
Write a publication
Pull to refresh
20
0
alagar @alagar

User

Send message
www.php.net/manual/en/class.arrayiterator.php
AppendIterator extends IteratorIterator implements OuterIterator , Traversable , Iterator {

www.php.net/manual/en/class.arrayobject.php
ArrayObject implements IteratorAggregate , Traversable , ArrayAccess , Serializable , Countable {
Хм, что то я никак не пойму чего вы добиваетесь. en.wikipedia.org/wiki/Method_signature «In computer programming, especially object-oriented programming, a method is commonly identified by its unique method signature. This usually includes the method name, and the number, types and order of its parameters» отсюда получаем что различное число параметров, различные их типы у одноименных методов === различные методы
вполне возможно в каких-то больших библиотеках с сложной иерархией.
ну у smalltalk тоже свой взгляд на ооп
Меня опять будут минусовать, но в Java это работает без проблем. Фактически это простое наследование и так сказать en.wikipedia.org/wiki/Method_overriding
public abstract class someClass {
	abstract public void method();
}
public abstract class anotherClass extends someClass {
	abstract public void method();
}
public class main extends anotherClass {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		main main = new main();
		main.method();
	}
	@Override
	public void method() {
		System.out.println("method() was called");
	}
}
спецификацию я вряд ли найду, но отвечу вам что в любом языке программирования поддерживающем перегрузку методов, перегружаемые методы различаются числом/типом параметров, то есть сигнатурами.
Да в PHP «своя» реализация ооп, правда сильно отличающаяся от таковой в C++/Java/C#/ и так далее.
habrahabr.ru/blogs/php/116916/#comment_3808782 например можно реализовать overloading конструкторов через call_user_func_array()
да это мы знаем, поверьте я очень люблю этот язык, но вот «вещи которые работают по другому» меня очень расстраиват
конечно, просто на мой субъективный взгляд, поведение интерфейсов в php не совсем логично/отличается от ожидаемого
сигнатуры методов не совпадают, это два разным метода с точки зрения ооп. Например то же самое в Java выглядит так:
public interface someInterface {
	public void someMethod(Object object, Iterator iterator);
}
public interface anotherInterface {
	public void someMethod();
}
public class fooClass implements anotherInterface,someInterface {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		fooClass fooClass = new fooClass();
		fooClass.someMethod();

	}

	@Override
	public void someMethod() {
		System.out.println("someMethod() was called");
		
	}

	@Override
	public void someMethod(Object object, Iterator iterator) {
		System.out.println("someMethod(Object object, Iterator iterator) was called");
		
	}

}

то есть классу необходимо имплементировать оба метода. Но еще раз в PHP нет перегрузки методов. Я же говорил про методы с одинаковыми сигнатурами (кажется это так называется).
да несомненно это выход из положения, просто слегка был обескуражен тем фактом что в PHP интерфейсы работают по особому
почему тогда в Java/C# это не вызывает непредсказуемых последствий?
ну-у перегрузку конструкторов можно «симулировать» используя call_user_func_array() snippets.dzone.com/posts/show/3237
«У одноимённых методов может быть разная область видимости и разный набор входных переменных.» это перегрузка методов en.wikipedia.org/wiki/Method_overloading, в PHP не реализована. А в java интерфейсы с одинаковыми методами имплементируются без проблем.
в Java работает без проблем. Там полно интерфейсов с одинаковыми методами. А вот в PHP, почему-то всё по другому.
главное перерасти ) и вовремя остановиться
input
<?php echo $this->Html->image('cake_logo.png', array('alt' => 'CakePHP'))?>

output
<img src="/img/cake_logo.png" alt="CakePHP" />


Да во многих фреймворках есть подбные helper-ы.

а кажется facebook выпустил еще вот такое интересное дополнение www.facebook.com/notes/facebook-engineering/xhp-a-new-way-to-write-php/294003943919
В чём то вы может и правы, но всегда тяжело понять человека находящегося по ту сторону силы )
я могу вам возразить, что изготовление своего инструмента с нуля и изготовление на основе каркаса ( фреймворка) будет дороже. Но кажется это уже попахивает холиваром :)

Information

Rating
Does not participate
Location
Кишинев, Молдова, Молдова
Date of birth
Registered
Activity