Asp.net MVC 5 и Google Контакты API

Вот несколько альтернатив другим ответам, которые, по-видимому, сосредоточены главным образом на трюке «{$}». Хотя на их скорости нет гарантий; это весь чистый синтаксический сахар. Для этих примеров мы предположим, что набор констант ниже был определен.

define( 'BREAD', 'bread' ); define( 'EGGS', 'eggs' ); define( 'MILK', 'milk' );

Использование extract () Это хорошо, потому что результат идентичен переменным. Сначала вы создаете функцию многократного использования:

function constants(){ return array_change_key_case( get_defined_constants( true )[ 'user' ] ); }

Затем вызывайте ее из любой области:

extract( constants() );
$s = "I need to buy $bread, $eggs, and $milk from the store.";

Здесь она уменьшает константы, которые будут проще на ваших пальцах, но вы можете удалите array_change_key_case (), чтобы сохранить их как есть. Если у вас уже есть конфликтующие локальные имена переменных, константы не будут их переопределять.

Использование замены строки. Это похоже на sprintf (), но использует единственный токен замены и принимает неограниченное количество аргументов. Я уверен, что есть лучшие способы сделать это, но простите мою неуклюжесть и попытайтесь сосредоточиться на идее этого.

Как и раньше, вы создаете функцию многократного использования:

function fill(){
    $arr = func_get_args(); $s = $arr[ 0 ]; array_shift( $arr );
    while( strpos( $s, '/' ) !== false ){
        $s = implode( current( $arr ), explode( '/', $s, 2 ) ); next( $arr );
    } return $s;
}

Затем вызовите его из любой области:

$s = fill( 'I need to buy /, /, and / from the store.', BREAD, EGGS, MILK );

Вы можете использовать любой заменяющий токен, например,% или #. Я использовал косую черту, потому что ее немного легче набрать.

0
задан halfer 23 February 2019 в 15:14
поделиться