от
Я пытаюсь сделать это (который производит непредвиденная ошибка T_VARIABLE):
public function createShipment($startZip, $endZip, $weight = 
$this

Я не хочу ставить "магическое число", там за вес с объекта я использую параметр "defaultWeight"
, что все новые поставки вам, если вы не указываете вес. Я не могу поставить
defaultWeight
в самой партии, потому что он меняется от группы отгрузки в группу отгрузки. Есть ли лучший способ сделать это, чем следующие?
public function createShipment($startZip, $endZip, weight = 0){
    if($weight

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

6 Ответы

0 голосов
от
Я пытаюсь сделать это (который производит непредвиденная ошибка T_VARIABLE):
public function createShipment($startZip, $endZip, $weight = 
$this

Я не хочу ставить "магическое число", там за вес с объекта я использую параметр "defaultWeight"
, что все новые поставки вам, если вы не указываете вес. Я не могу поставить
defaultWeight
в самой партии, потому что он меняется от группы отгрузки в группу отгрузки. Есть ли лучший способ сделать это, чем следующие?
public function createShipment($startZip, $endZip, weight = 0){
    if($weight
0 голосов
от
Это не намного лучше:
public function createShipment($startZip, $endZip, $weight=null){
    $weight = !$weight ? $this
0 голосов
от
Ловкий трюк с помощью логического оператора "или":
public function createShipment($startZip, $endZip, $weight = 0){
    $weight or $weight = $this
0 голосов
от
Это позволит вам пройти вес от 0 и до сих пор исправно работает. Обратите внимание на === оператор проверяет, чтобы увидеть, если вес совпадает с "нулем" в обе значение и тип (в отличие от ==, который просто значение, т. е. 0 == нуль == ложные). РНР:
public function createShipment($startZip, $endZip, $weight=null){
    if ($weight === null)
        $weight = $this
0 голосов
от
Вы можете использовать статический член класса, чтобы держать по умолчанию:
class Shipment
{
    public static $DefaultWeight = '0';
    public function createShipment($startZip,$endZip,$weight=Shipment::DefaultWeight) {
        // your function
    }
}
0 голосов
от
Улучшение после ответа Кевина, если вы используете PHP 7 Вы можете сделать:
public function createShipment($startZip, $endZip, $weight=null){
    $weight = $weight ?: $this
...