Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Larry Garfield:
PHP: Use associative arrays basically never
Jul 02, 2018 @ 10:50:59

In a new post Larry Garfield suggests and interesting approach to arrays in PHP: stop using associative arrays (or at least "basically never").

The other day I was working on some sample code to test out an idea that involved an object with an internal nested array. This is a pretty common pattern in PHP: You have some simple one-off internal data structure so you make an informal struct using PHP associative arrays. Maybe you document it in a docblock, or maybe you're a lazy jerk and you don't. (Fight me!) But really, who bothers with defining a class for something that simple?

But that got me wondering, is that common pattern really, you know, good? Are objects actually more expensive or harder to work with than arrays? Or, more to the point, is that true today on PHP 7 given all the optimizations that have happened over the years compared with the bad old days of PHP 4?

So like any good scientist I decided to test it: What I found will shock you!

He starts by describing his test environment (a local environment, not a cloud one) and the code for his baseline tests. The code generates an array of one million items where each item is an associative array of an integer/string combo. He wants to see what kind of memory consumption is involved in the creation and processing of this data set via sorting. His second test evaluated the serialization size (again, code provided) again checking the memory consumption. He shares the results of these tests and then moves on to similar tests on:

  • stdClass instances
  • objects with public properties
  • objects with private properties
  • anonymous classes

The post ends with a summary showing the results of all tests side-by-side with some interesting results (but you'll have to check out the post for yourself if you want to see those).

tagged: associative array never benchmark object class anonymous results statistics

Link: https://steemit.com/php/@crell/php-use-associative-arrays-basically-never

Scott Keck-Warren:
Making dataProviders More Maintainable
Sep 30, 2015 @ 09:44:18

Scott Keck-Warren has a quick post to his site sharing a method for keeping data providers maintainable in your unit tests. Data providers are a quick way to retest the same logic with several different types of data and not have an individual test for each.

I’m a big fan of using PHPUnit’s data providers feature because it allows you to easily run a lot of data through the same kinds of tests over and over again without having a bunch of duplicate code sitting around. But they aren’t always the easiest thing to come back to an understand.

He briefly introduces how data providers are used in PHPUnit testing, including a brief code example. The errors that can come up with this common setup can be cryptic to debug. He recommends a slight alteration to the data provider return structure to use an associative array instead of a single-level array. This way, if there's an error the resulting message refers to the index, not just a number making a bit more sense and aids in debugging.

tagged: dataprovider maintainable phpunit tip associative array

Link: http://www.thisprogrammingthing.com/2015/making-dataproviders-more-maintainable/

Theo Kouzelis:
Improving Readability of PHPUnit Data Providers
Apr 10, 2015 @ 12:01:28

Theo Kouzelis has a recent tutorial posted showing you how to make your PHPUnit tests a bit cleaner with the help of data providers, a built-in tool for PHPUnit that allows for easier validation of larger datasets.

When writing tests I try to describe the test in the function name. I use the format testDoesSomethingWhenPassedSomething to first describe the assertion and then the context. [...] When I have many data sets running against the same test I will use the frameworks data providers to make the code less verbose.

He includes code examples to show both the difference between the single data tests and one using a set of email addresses to validate their correctness. He notes that the error message using data providers can be confusing (and maybe hide the real problem) so he offers a solution to make it more readable: associative arrays. The trick is that PHPUnit uses the key to display the error and by making this unique you can make the error output more informative.

tagged: dataprovider tutorial readability phpunit unittest associative array

Link: http://theo.codes/php/improving-readability-of-phpunit-data-providers.html

PHPBuilder.com:
10 PHP Tricks for Associative Array Manipulation
Dec 13, 2010 @ 11:54:34

On PHPBuilder.com there's a new tutorial with ten handy tips you can use to work with associative arrays in your PHP applications.

The associative array -- an indispensable data type used to describe a collection of unique keys and associated values -- is a mainstay of all programming languages, PHP included. [...] Such extensive support can be a bit overwhelming to developers seeking the most effective way to manipulate arrays within their applications. In this article, I'll offer 10 tips that can help you shred, slice and dice your data in countless ways.

His tips include working with the arrays by:

  • Adding Array Elements
  • Swapping Keys and Values
  • Editing Array Values
  • Randomizing Array Order
  • Searching the Array
tagged: associative array manipulation tutorial

Link:

DevShed:
The Switch Statement and Arrays
Jan 07, 2008 @ 12:50:00

DevShed continues their series looking at some of the fundamentals of working with PHP in this new tutorial posted today. It looks at one of the flow control statements the language has to offer and a very useful data structure - the switch statement and arrays.

In our last exciting adventure (back in early November), we braved crocodiles, ravenous editors, most of the PHP statements, and beginning loops. In this edition we'll cover the final statement, the Switch, and discuss arrays. So sit back, order your R2D2 robot to bring you a cold, frosty Jolt Cola, and let's get cracking.

They start with a simple example of a switch statement (to echo out strings) and follow it with a detailed description of the different sorts of arrays - numeric indexed, associative and multidimensional versions.

tagged: tutorial switch flow control array numeric associative multidimensional tutorial switch flow control array numeric associative multidimensional

Link:

DevShed:
The Switch Statement and Arrays
Jan 07, 2008 @ 12:50:00

DevShed continues their series looking at some of the fundamentals of working with PHP in this new tutorial posted today. It looks at one of the flow control statements the language has to offer and a very useful data structure - the switch statement and arrays.

In our last exciting adventure (back in early November), we braved crocodiles, ravenous editors, most of the PHP statements, and beginning loops. In this edition we'll cover the final statement, the Switch, and discuss arrays. So sit back, order your R2D2 robot to bring you a cold, frosty Jolt Cola, and let's get cracking.

They start with a simple example of a switch statement (to echo out strings) and follow it with a detailed description of the different sorts of arrays - numeric indexed, associative and multidimensional versions.

tagged: tutorial switch flow control array numeric associative multidimensional tutorial switch flow control array numeric associative multidimensional

Link:

DevShed:
The Basics of Using the Factory Pattern in PHP 5
Jun 26, 2007 @ 11:07:00

DevShed revisits its series on using design patterns in PHP applications with this new tutorial, a look at implementing the Factory pattern in PHP 5.

Summarizing, the factory pattern can be really useful when it comes to creating multiple objects that belong to the same family. In this three-part series I'm going to take a close look at it, and also demonstrate its remarkable functionality by showing you a decent variety of code samples, so you can start quickly including this pattern into your own PHP applications.

They lay the foundation by creating some basic factory classes for working with numeric and associative arrays. On top of this, they create the processing classes to create things like uppercase numeric arrays and lowercase associative arrays. Finally, they give examples of how to put it to use making several different sorts of arrays, including their output.

tagged: factory designpattern php5 tutorial array associative numeric factory designpattern php5 tutorial array associative numeric

Link:

DevShed:
The Basics of Using the Factory Pattern in PHP 5
Jun 26, 2007 @ 11:07:00

DevShed revisits its series on using design patterns in PHP applications with this new tutorial, a look at implementing the Factory pattern in PHP 5.

Summarizing, the factory pattern can be really useful when it comes to creating multiple objects that belong to the same family. In this three-part series I'm going to take a close look at it, and also demonstrate its remarkable functionality by showing you a decent variety of code samples, so you can start quickly including this pattern into your own PHP applications.

They lay the foundation by creating some basic factory classes for working with numeric and associative arrays. On top of this, they create the processing classes to create things like uppercase numeric arrays and lowercase associative arrays. Finally, they give examples of how to put it to use making several different sorts of arrays, including their output.

tagged: factory designpattern php5 tutorial array associative numeric factory designpattern php5 tutorial array associative numeric

Link:

PHPit.net:
Back to basics - PHP & Arrays
Jan 11, 2006 @ 06:55:49

PHPit.net goes "back to the basics" today with this new post - a look at the basics of how PHP handles arrays and how to use them effectively.

Lately the internet has been on a real fast track, and there have been many new developments, like Ajax, Web 2.0, Tags, and other interesting (and often hyped up) things. But this tutorial won't go there at all, and goes back to the beginning with the basics: using arrays in PHP.

If you're a seasoned PHP developer, who knows arrays like the back of his hand, this might be an article you'd want to skip. But if you're still unsure how arrays work, or if you're just curious about a few things, read on and learn more about arrays in PHP.

This is a very basic article, and doesn't give much in the way of any "array tricks" either. Array functions aren't even covered (mostly) - just how to create and update arrays in your code. But for a beginner, that's all you need...

tagged: arrays back to basics create update associative arrays back to basics create update associative

Link:

PHPit.net:
Back to basics - PHP & Arrays
Jan 11, 2006 @ 06:55:49

PHPit.net goes "back to the basics" today with this new post - a look at the basics of how PHP handles arrays and how to use them effectively.

Lately the internet has been on a real fast track, and there have been many new developments, like Ajax, Web 2.0, Tags, and other interesting (and often hyped up) things. But this tutorial won't go there at all, and goes back to the beginning with the basics: using arrays in PHP.

If you're a seasoned PHP developer, who knows arrays like the back of his hand, this might be an article you'd want to skip. But if you're still unsure how arrays work, or if you're just curious about a few things, read on and learn more about arrays in PHP.

This is a very basic article, and doesn't give much in the way of any "array tricks" either. Array functions aren't even covered (mostly) - just how to create and update arrays in your code. But for a beginner, that's all you need...

tagged: arrays back to basics create update associative arrays back to basics create update associative

Link: