Вот класс
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 ){
}
Повторюсь, что статические свойства существуют в единственном экземпляре и одинаковы межде всеми экземплярами класса. Но по всей видимости, класс у вас используется тоже в единственном экземпляре.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите как настроить NB чтобы короткие дескрипторы PHP то же раскрашивали синтаксис, сейчас в коротких дескрипторах синтаксис не подсвечивается...
У меня вопрос по БПФ звукового сигналаЯ хочу нарисовать график на основе звукового сигнала
По следам вопроса о битовом представлении вещественных чисел и моего ответа на него