Web lists-archives.com

Re: [PHP] Re: PHP Functions

While PHP lets you write anonymous functions like that, and they let you do some very cool things, it should not be your first go-to. Unless you're inlining a bit of functionality into an array_map() call or similar, or you're trying to capture some context with use(), you probably should just use a named function:

function vehiclesOutput($newVhcls=array(), $header=true) {

I'm going to venture a guess that you're coming from Javascript, where named functions are legal but convention says to never use them. PHP is the other way around. :-) Most of your code will be normal named functions, or better yet defined classes. (Unless you're taking a purely-functional approach, which in PHP is a fairly advanced and still-fringe style that is still working its way into vogue.)

A few other notes:

- Don't use abbreviated variable names. That offers no value other than making the code harder to read. Ie, $newVehicles.

- Type as much code as you can. That is, if $newVehicles is an array, specify that in the function signature:

function vehiclesOutput(array $newVhcls=array(), $header=true) { ... }

You can type any class, interface, or "array". In PHP 7 (due out next month, we expect) you can also type on primitives (string, bool, int, float). You should use those, too.

- If you're new to PHP but not to programming (as seems to be your situation), take the time to read this site:


Most PHP tutorials online that is older than 5 years is harmfully wrong. Start there for a well-curated set of leading practices for good modern PHP code.


--Larry Garfield

On 10/31/2015 03:43 AM, Karl DeSaulniers wrote:
Sorry for the spam people. Looks like I was echoing $vehicleOutput() instead of $vehiclesOutput() with an "s".

Still, if this is the incorrect way of doing this please let me know.
I want to plan my code so others can work with it with "some" ease.



Karl DeSaulniers
Design Drumm

On Oct 31, 2015, at 3:08 AM, Karl DeSaulniers <karl@xxxxxxxxxxxxxxx> wrote:

Hello all,
Given the following function writing technique.

$vehiclesOutput = function($newVhcls=array(), $header=true) {

Everything was ok till I put another function in below it in a similar fashion.
(Assigning the function to a variable like so)

Then I got this error.

Function name must be a string

but only on the second function and not all the time. It's weird.

My first question is obvious. Am I doing this wrong?
I got this way of writing functions from another coder online in my researching.
So this is not my creation per se. I know about declaring function before the name way as well, just liked this style better I guess.
If it is the correct way, what is happening?

Sorry if this is a newbie question, but I haven't fully molted yet.
If there is a doc I should be looking at, please provide gently if you could.



Karl DeSaulniers
Design Drumm

PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php