I'm getting an "Illegal offset type" for this array:
public static $CATS_AND_TYPES = array(
// Statement Administration
array( self::CAT_STATEMENT_ADMIN => "Document Administration" ) => array(
self::TYPE_STATEMENTS_LOADED => "Documents Loaded",
self::TYPE_STATEMENTS_REMOVED => "Documents Removed"
),
// Cron Jobs
array( self::CAT_CRON_JOBS => "Cron Jobs" ) => array(
self::TYPE_CRON_BULLETIN_RUN => "Bulletin Cron Job Ran",
self::TYPE_CRON_EMAILER_RUN => "Emailer Cron Job Ran",
self::TYPE_CRON_SURVEY_RUN => "Survey Cron Job Ran",
self::TYPE_CRON_JOURNEY_RUN => "Journey Cron Job Ran",
self::TYPE_CRON_DOCUMENT_RUN => "Document Cron Job Ran"
),
// Global Administration
array( self::CAT_GLOBAL_ADMIN => "Global Administration" ) => array(
self::TYPE_GLOBAL_MAINTENANCE => "Global Maintenance",
self::TYPE_GLOBAL_EMAIL_SENDING => "Email Sending"
),
// Email Administration
array( self::CAT_EMAIL_ADMIN => "Email Administration" ) => array(
self::TYPE_EMAIL_SENT => "Email Sent",
self::TYPE_EMAIL_RESENT => "Email Resent",
self::TYPE_EMAIL_REMOVED => "Email Removed"
),
// DCVs Administration
array( self::CAT_DCVS_ADMIN => "DCVs Administration" ) => array(
self::TYPE_DCVS_FLEX_UPDATED => "Flexible Variables Updated",
self::TYPE_DCVS_GLOBAL_UPDATED => "Global Variables Updated"
),
// Video Administration
array( self::CAT_VIDEO_ADMIN => "Video Administration" ) => array(
self::TYPE_VIDEO_ADDED => "Video Added",
self::TYPE_VIDEO_EDITED => "Video Edited",
self::TYPE_VIDEO_REMOVED => "Video Removed"
),
// Bulletin Board Administration
array( self::CAT_BULLETIN_BOARD => "Bulletin Board Administration" ) => array(
self::TYPE_BULLETIN_DELETED => "Message Deleted",
self::TYPE_BULLETIN_EDITED => "Message Edited",
self::TYPE_BULLETIN_ADDED => "Message Added"
),
// User Administration
array( self::CAT_USER_ADMIN => "User Administration" ) => array(
self::TYPE_USER_ADDED => "User Added",
self::TYPE_USER_ADDED_MULTI => "Multiple Users Added",
self::TYPE_USER_REMOVED => "User Removed",
self::TYPE_USER_REMOVED_MULTI => "Multiple Users Removed",
self::TYPE_USER_UPDATED => "User Updated"
),
// Survey Administration
array( self::CAT_SURVEY_ADMIN => "Survey Administration" ) => array(
self::TYPE_SURVEY_ADDED => "Survey Added",
self::TYPE_SURVEY_UPDATED => "Survey Updated",
self::TYPE_SURVEY_REMOVED => "Survey Removed",
self::TYPE_SURVEY_REMOVED_MULTI => "Multiple Surveys Removed"
)
);
it's kind of annoying to make another array just to define what is being defined in the keys here, so i was wondering if that was my problem. if it is, i guess i'll have to make a key-value array for the categories ids and string values.
thanks!
You're getting an illegal offset type
error because array keys can only be scalar values. From the documentation on arrays:
A key may be either an integer or a string. If a key is the standard representation of an integer, it will be interpreted as such (i.e. "8" will be interpreted as 8, while "08" will be interpreted as "08"). Floats in key are truncated to integer.
Since self::CAT_CRON_JOBS
et al. seem like they should be constants anyways, why not just define them so that their value is the description text, and then you could just specify your array like
const CAT_STATEMENT_ADMIN = "Document Administration";
public static $CATS_AND_TYPES = array(
// Statement Administration
self::CAT_STATEMENT_ADMIN => array(
self::TYPE_STATEMENTS_LOADED => "Documents Loaded",
self::TYPE_STATEMENTS_REMOVED => "Documents Removed"
),
// etc.
)
And then you could use either $CATS_AND_TYPES[self::CAT_STATEMENT_ADMIN]
(within the class, of course) or $CATS_AND_TYPES['Document Administration']
to get the same array element.
No. Arrays can only have integers and strings as keys.
You can simulate arrays and use objects as keys with SplObjectStorage
. No arrays, though.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With