Class creating dropdown options from MySQL data for multiple scripts I created this class to handle some dropdowns that I'd been creating using a squirrelly combination of HTML, jQuery, and AJAX. This works much better in the one script that I've deployed it in:  

namespace appwpclass;

class PopulateDropdown
{
    public $skillArray;
    public $grpArray;
    public $facArray;
    /**
     * PopulateDropdown constructor.
     */
    public function __construct() {
        $skillArray[] = $this-&gt;skillArray;
        $grpArray[] = $this-&gt;grpArray;
        $facArray[] = $this-&gt;facArray;
    }

    public function skillSelect($category){
        //query to db to get skills
        return $skillArray;
    } //end function

    public function groupSelect($category, $mem_type, $selected_group=NULL){

// query to get list of clients -- it is allowed to be NULL in which case ALL active clients will be returned
        return $grpArray;
    } //end function

    public function facilitySelect($selected_group){
        //query to get list of facilities associated with a $selected_group, which is a required field.
            return $facArray;

    } //end function

} //end class


Now, in my admittedly "procedural" PHP script (which I'm trying to refactor), I have "required" this Class:  

require '../appwpclass/PopulateDropdown.php';


And in that script, I have these statements in order to populate the various dropdowns:

$dropdown = new appwpclass\PopulateDropdown();
$skillsArr = $dropdown-&gt;skillSelect($category);
$groupArr = $dropdown-&gt;groupSelect($category, $memType, $selGroup);
$facilityArr = $dropdown-&gt;facilitySelect($selGroup);


And then I use those arrays in filter dropdown HTML, as in this example:

&lt;select name="selGroup" id="selGroup" size="1" class="textfield" onchange="submit()"&gt;
 &lt;option value="0"&gt;--Any--&lt;/option&gt;
&lt;?php
foreach( $groupArr as $group_id=&gt;$group_name ) {
    $selected = ( $group_id == $selGroup ) ? ' selected' : '';
    ?&gt;
    &lt;option value="&lt;?php echo $group_id;?&gt;"&lt;?php echo $selected;?&gt;&gt;&lt;?php echo $group_name;?&gt;&lt;/option&gt;
&lt;?php } ?&gt;




This all works fine in this one script, but I have a lot of scripts that also use one, two, or all of these dropdowns. 
So I thought about just using them in a "require" somewhere in each script, but I'm thinking there has to be a better OOP way.
Maybe I should create another class and instantiate PopulateDropdown in that class's constructor? Or in another method in that other class? And then have a separate method for each of those statements, e.g. a method for

 $skillsArr = $dropdown-&gt;skillSelect($category)


, etc.. I guess if I did that, I'd need to "pass" the 3 properties that are required by one or more of these existing methods.

Would anyone please provide me some direction on this? I'm pretty new to OOP and I'm starting to use Laravel but I'm nowhere near ready to refactor this enterprise system yet.

If I used a new class, as I suggested, then obviously I'd require that class or use that namespace in my other scripts. Just seems like that would be more concise and less prone to errors.
For such a use case a class would be rather useless. A class is used to encapsulate the stuff that belongs to just a single matter. Here, there is nothing in common between these functions.

If you want to use a class, consider creating a class related to Skills, with one of its methods responsible for returning a list of skills.

but if you want to just refactor your code, a set of functions will do as well. Make your PopulateDropdown.php as 

function skillSelect($category){
    //query to db to get skills
    return $skillArray;
} //end function

function groupSelect($category, $mem_type, $selected_group=NULL){

// query to get list of clients
    return $grpArray;
} //end function

function facilitySelect($selected_group){
    //query to get list of facilities associated with a $selected_group
        return $facArray;

} //end function


and then 

require '../appwpclass/PopulateDropdown.php';
$skillsArr = skillSelect($category);
$groupArr = groupSelect($category, $memType, $selGroup);
$facilityArr = facilitySelect($selGroup);


So you will have the desired functionality without a single class.

You may also want to create another helper function, to reduce the amount of duplicated code, 

function show_option($array, $selected) {
    foreach( $array as $id =&gt; $name ) {
        $selected = ( $id == $selected ) ? ' selected' : '';
        ?&gt;
        &lt;option value="&lt;?= $id ?&gt;"&lt;?= $selected ?&gt;&gt;&lt;?= $name ?&gt;&lt;/option&gt;
        &lt;?php 
    } 
}


which will make your HTML much cleaner

&lt;select name="selGroup" id="selGroup" size="1" class="textfield" onchange="submit()"&gt;
    &lt;option value="0"&gt;--Any--&lt;/option&gt;
    &lt;?php show_option($groupArr, $selGroup); ?&gt;



  So I thought about just using them in a "require" somewhere in each script, but I'm thinking there has to be a better OOP way


Well, to use some function or a class you must require them, this way or another. Although classes could be autoloaded, you have to require the autoloader definition anyway. So, although there are other ways, your current approach is good enough.