2012-04-05 11 views
7

Czy istnieje sposób, aby wybuchnąć ciąg na zmienne npwybuchnąć ciąg do zmiennych

some_function($min, $max, "3, 20"); 

takie, że $ min jest przypisana wartość 3 i $ max jest przypisana wartość 20.

wiem można po prostu użyć

tylko zastanawiasz się, czy istnieje inny sposób.

Odpowiedz

17

Konstrukcja języka PHP list() może wykonywać wiele przypisań do zmiennych (lub nawet innych kluczy tablic), przypisując tablicę.

list($min, $max) = explode(",", "3,20"); 

Jednakże, trzeba jeszcze zastosować trim() do zmiennych ponieważ wartość $max miałby wiodącą miejsca lub wymienić explode() z preg_split('/\s*,\s*/', $string) podzielić ją na przecinki i okolic spacji.

Uwaga: Zachować ostrożność przy list(), aby mieć pewność, że tablica jesteś przypisując zawiera taką samą liczbę elementów jak list() ma zmienne. Są one przypisywane od prawej do lewej w PHP 5.x, nie od lewej do prawej, więc jeśli zdarzy ci się zastąpić zmienną po lewej stronie oryginalną zawartością po prawej stronie, możesz uzyskać nieoczekiwane wyniki. Jest to szczegółowo opisane w przykładach in the PHP docs.

Aktualizacja PHP 7: PHP 7 zmienia zachowanie kolejność przydziału, tak że list() argumenty są przypisane od lewej do prawej

+0

Technicznie to jest język konstruktu * * 'z listy()'. Ale +1. – DaveRandom

+2

@DaveRandom Nie powiedziałem, że 'list()' było funkcją, powiedziałem, że jest to funkcja '' list() '. Subtelne, ale i tak wyjaśnię :) –

+0

Ah, touché ... ;-) – DaveRandom

Powiązane problemy