Articles of spl

Использование foreach с SplFixedArray

Похоже, я не могу перебирать по ссылке над значениями в SplFixedArray: $spl = new SplFixedArray(10); foreach ($spl as &$value) { $value = "string"; } var_dump($spl); Выходы: Fatal error: Uncaught exception 'RuntimeException' with message 'An iterator cannot be used with foreach by reference' Любое обходное решение?

PHP – Инициализация элементов объекта с параметром массива

Возможно ли инициализировать объекты частными или защищенными членами в php с помощью ассоциативного массива. например: class TestClass { public $_name; public $_age; public function __construct(array $params) { ?????? } } $testClass = new TestClass( array( 'name' => 'Bob', 'age' => '29', ) ); Мне было интересно, есть ли элегантное решение – возможно, реализовав один интерфейс […]

PHP array_walk_recursive () для объектов SimpleXML?

Я хотел бы применить функцию к каждому узлу объекта SimpleXML. <api> <stuff>ABC</stuff> <things> <thing>DEF</thing> <thing>GHI</thing> <thing>JKL</thing> </things> </api> // function reverseText ($ str) {}; <api> <stuff>CBA</stuff> <things> <thing>FED</thing> <thing>IHG</thing> <thing>LKJ</thing> </things> </api> Как я применил бы reverseText () для каждого узла, чтобы получить второй фрагмент XML?

php получить полный путь к файлу в папке

У меня есть папка с именем data . В этой папке данных есть файлы и папки. В этих папках есть файлы и папки … Продолжается вот так … Мне нужно получить файлы всех файлов (включая файлы подкаталогов). У меня есть php-код: function dirToArray($dir) { $contents = array(); foreach (scandir($dir) as $node) { if ($node == […]

В чем преимущества использования SPL ArrayObject, ArrayIterator, RecursiveArrayIterator вместо обычных массивов?

Я начал изучать PHP SPL из ArrayIterators, и я хотел бы знать, какие преимущества могут использовать SPL ArrayObject, ArrayIterator, RecursiveArrayIterator вместо обычных массивов? a) Я слышал, что циклы, использующие итераторы SPL, уменьшат использование памяти (но почему?). Я действительно не знаю, верить этому или нет, потому что я не понимаю, как это может уменьшить использование памяти. […]

Лучший способ для автозагрузки классов в PHP

Я работаю над проектом, в котором у меня есть следующая файловая структура: index.php |—lib |–|lib|type|class_name.php |–|lib|size|example_class.php Я хотел бы автоматически загружать классы, class_name и example_class (именованные так же, как и классы PHP), так что в index.php классы уже были бы созданы таким образом, чтобы я мог: $class_name->getPrivateParam('name'); Я посмотрел в сети, но не могу найти […]

Зачем мне перематывать IteratorIterator

$arrayIter = new ArrayIterator( array(1, 2) ); $iterIter = new IteratorIterator($arrayIter); var_dump($iterIter->valid()); //false var_dump($arrayIter->valid()); //true Если я сначала вызову $ iterIter-> rewind () , то $ iterIter-> valid () будет true. Мне любопытно, почему это требует вызова перемотки (). Я предполагаю, что для этого есть веская причина, но я ожидал, что он просто начнет итерацию […]

Как я могу сортировать массивы и данные в PHP?

Из-за огромного и постоянно повторяющегося количества «Как мне сортировать мою уникальную снежинку из массива?» вопросов, это справочная коллекция базовых методов сортировки в PHP. Пожалуйста, закройте любой вопрос, который не сильно отличается как дубликат этого. Как отсортировать массив в PHP? Как отсортировать сложный массив в PHP? Как отсортировать массив объектов в PHP? Основные одномерные массивы; Включительно […]

Как работает RecursiveIteratorIterator в PHP?

Как работает RecursiveIteratorIterator ? Руководство PHP не имеет ничего документированного или объясненного. В чем разница между IteratorIterator и RecursiveIteratorIterator ?

Что такое автозагрузка; Как вы используете spl_autoload, __autoload и spl_autoload_register?

Я изучаю передовые стандарты PHP и пытаюсь внедрить новые и полезные методы. Раньше я использовал __autoload только для того, чтобы избежать включения нескольких файлов на каждую страницу, но в последнее время я видел подсказку в __autoload manual Функция spl_autoload_register () предоставляет более гибкую альтернативу для автозагрузки классов. По этой причине использование __autoload () не рекомендуется […]

Intereting Posts