Web lists-archives.com

Re: [PHP] Syntax

On Sep 23, 2015, at 12:11 AM, Jim Lucas <lists@xxxxxxxxx> wrote:

> You should use something like this. 
> $str = "-1 save";
> if ( preg_match("/^-1 (delete|hide|save)$/", $str ) === 1 ) {
>   echo "does match";
> } else {
>   echo "does not match";
> }

Before I go any further, here is a code example so I can make helping me a little easier. Thank you for your attempt 

function Mass_Action() {
	$MassOption = isset($_POST['action_h']) && !empty($_POST['action_h']) ? $_POST['action_h'] : isset($_POST['action_f']) && !empty($_POST['action_f']) ? $_POST['action_f'] : '-1';
	switch($MassOption) {
		case preg_match("/(-1|delete|hide|save)/i", $MassOption) !== 1 :
			$message = Status_Update();
		case "-1": break;
		case "delete all": 
			$message = Delete_All_Orders();
		case "delete":
			$message = Delete_Orders();
		case "hide":
			$message = Hide_Orders();
	return $message;

With this function I check to see if $MassOption equals any of the following, -1 (negative 1), delete all, delete, hide and save is in there for future purpose.
The string can also be empty or a value other than these, like a status shipping, completed, new, etc.

So on the first one, it checks that none of the hardcoded values are present (this is what I am trying to get working)
The second fails the function silently in essence not doing anything.
The rest are self explanatory.

Currently, the $MassOption is coming out -1 but still firing the preg_match statement.

And on a side note, what is up with the default on a switch statement?
That thing always fires no matter what, I essentially never use it because of this.


Karl DeSaulniers
Design Drumm