Определение условных переменных в классе PHP

Я написал PHP-класс для подключения к PayPal на основе этого урока — http://www.smashingmagazine.com/2011/09/05/getting-started-with-the-paypal-api/

Он отлично работает при использовании жестко закодированных учетных данных, но мой интерфейс администратора позволяет мне включать или отключать режим песочницы и вводить учетные данные как для песочницы, так и для реальных учетных записей.

Моя проблема в том, что это мой первый набег в ООП, и я борюсь с условными утверждениями в классе. Например, мне нужно сделать это в классе, и в нем должна быть $ endpoint;

if( $sandbox ) {
$endpoint = 'https://api-3t.sandbox.paypal.com/nvp';
} else {
$endpoint = 'https://api-3t.paypal.com/nvp';
}

0

Решение

Вы должны объявить переменные внутри конструктора, чтобы вы могли установить переменную вне области действия класса.

class Paypal(){

protected $sandbox;

public function __construct($sandbox) {
$this->sandbox = $sandbox;
}

....
....

if($this->sandbox) {
//do something
}
else {
//do something else
}

...
}

Затем в вашем скрипте сделайте следующее:

<?php
include('/path/to/Paypal.php');

public function checkSandbox() {
//check if sandbox is enabled or not
if($enabled)
return true;
return false;
}

$sandbox = checkSandbox();

$paypal = new Paypal($sandbox);
...
...
0

Другие решения

в oop переменные класса доступны как — $this->sandbox & $this->endpoint, и вы должны определить их первыми в классе.

public $sandbox;
public $endpoint;
0