Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7611525
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T01:41:07+00:00 2026-05-31T01:41:07+00:00

I have a class in which each function of the class have to check

  • 0

I have a class in which each function of the class have to check the exact same condition before executing its code:

class myObject
{
    public function function1($argument)
    {
        if($condition === true)
        {
            //Do Something
        }
    }

    public function function2($argument)
    {
        if($condition === true)
        {
            //Do Something
        }
    }

    public function function3($argument)
    {
        if($condition === true)
        {
            //Do Something
        }
    }

    public function function4($argument)
    {
        if($condition === true)
        {
            //Do Something
        }
    }
}

We can see that function1, function2, function3, function4 only execute their code if $condition === true.

If in the future I add another function called function5, I will have to duplicate this condition.

So my question is, what is the best way to ensure that before call ANY function in the class, a condition is true, and if the condition is false, not call the function.

My method is to use the magic function __call and make all the functions of the class private:

class myObject
{

    public function __call($method,$args)
    {
        if($condition === true)
        {
            call_user_func_array(array($this,$method),$args);
        }

        return;
    }

    private function function1($argument)
    {
            //Do Something
    }

    private function function2($argument)
    {
            //Do Something
    }

    private function function3($argument)
    {
            //Do Something
    }

    private function function4($argument)
    {
            //Do Something
    }
}

It seems to work. However, I’m unsure that it will always work and that it is a clever way of doing it.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T01:41:08+00:00Added an answer on May 31, 2026 at 1:41 am

    Its pretty normal to do it your first way. But, maybe the whole design of the class is wrong? If every single one function needs the exact same condition to be true maybe you could set/check it in the constructor and treat it from there? Why recheck the condition multiple times? Can it change between function calls?

    Something like that would be used this way:

        try{
           $myClass = new MyClass(); // if no permissions throw exception
        }catch(Exception $e){
           //do something
           return false;
        }
    //we know user as permission we go on
        $myClass->function1();
        $myClass->function2();
    

    The second way works but you lose some of the power of phpdoc and good editors that will autocomplete your code. This way you have to know the name of every method.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a class Person which can have several Homes, each one with one
I have a class which is marked with a custom attribute, like this: public
I have a class which has the following constructor public DelayCompositeDesigner(DelayComposite CompositeObject) { InitializeComponent();
I have a class which looks something like this: public class Test { private
following piece of code: class a{ public function __get($key) { if($key == 'obj') {
I have a class which I'm serialising to send over a unix socket and
I have a class which implements UserControl. In .NET 2005, a Dispose method is
I have a class which constructor takes a Jakarta enums . I'm trying to
I have a class which inherits from QTreeWidgetItem and I intercept the click event.
I have a class which is not thread safe: class Foo { /* Abstract

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.