Вот класс
class ClassName{
public $array = array('1','2');
function __construct() {
....
}
function init() {
function add_class($classes) {
foreach( $this->array as $class ){
array_push($classes, $class)
}
return $classes;
}
add_filter('post_class', 'add_class');
}
function init2() {
function add_metaboxes() {
foreach( $this->array as $metaboxes ){
$checked = ( get_post_meta($post->ID, 'app_category_'.$metaboxes , true) ) ? 'checked' : '';
echo '<input type="checkbox" '.$checked.' >';
}
}
add_meta_box( 'app_category_box', 'BlaBlaBla', 'add_metaboxes');
}
}
В ооп не силен, когда пытаюсь так сделать - пишет "Using $this when not in object context in"
В вашем коде у вас имеется класс, в котором определены функции. В данных функциях, вы обяъвляете другие функции. Это просто объявления, к самому классу они не будут никак относится. После вызова метода Init у вас все так же будет оставаться класс, а также для вызова в других местах кода станет доступна функция add_class.
Замечу, что при повторном вызове функции init интерпретатор упадет с ошибкой fatal error при попытке объявить заново функцию add_class.
Поскольку объявленная функция ни коим боком не будет относится к классу (который ее объявил), то, конечно, речи о доступе к $this там быть не может. О чем и сказано в сообщении об ошибке.
Как вариант решения (если используете данный массив единственном экземпляре) может стать объявление массива как статического члена класса.
public static $array = [1,2];
В дальнейшем для обращения к массиву из сторонних функций будут иметь следующий вид:
foreach( ClassName::$array as $class ){
}
Повторюсь, что статические свойства существуют в единственном экземпляре и одинаковы межде всеми экземплярами класса. Но по всей видимости, класс у вас используется тоже в единственном экземпляре.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости