Объединять и смешивать строки в PHP

Да, лучший способ, безусловно, существует. Вот он:

Пошаговое руководство сократилось мной на основе этой полезной статьи .

  • Создайте новый проект
  • Установить пакет ядра замка в проект

Install-Package Castle.Core

  • Установить только библиотеки mvvm light

Install-Package MvvmLightLibs

  • Добавить два класса в проект:

NotifierInterceptor g15]

public class NotifierInterceptor : IInterceptor
    {
        private PropertyChangedEventHandler handler;
        public static Dictionary _cache =
          new Dictionary();

        public void Intercept(IInvocation invocation)
        {
            switch (invocation.Method.Name)
            {
                case "add_PropertyChanged":
                    handler = (PropertyChangedEventHandler)
                              Delegate.Combine(handler, (Delegate)invocation.Arguments[0]);
                    invocation.ReturnValue = handler;
                    break;
                case "remove_PropertyChanged":
                    handler = (PropertyChangedEventHandler)
                              Delegate.Remove(handler, (Delegate)invocation.Arguments[0]);
                    invocation.ReturnValue = handler;
                    break;
                default:
                    if (invocation.Method.Name.StartsWith("set_"))
                    {
                        invocation.Proceed();
                        if (handler != null)
                        {
                            var arg = retrievePropertyChangedArg(invocation.Method.Name);
                            handler(invocation.Proxy, arg);
                        }
                    }
                    else invocation.Proceed();
                    break;
            }
        }

        private static PropertyChangedEventArgs retrievePropertyChangedArg(String methodName)
        {
            PropertyChangedEventArgs arg = null;
            _cache.TryGetValue(methodName, out arg);
            if (arg == null)
            {
                arg = new PropertyChangedEventArgs(methodName.Substring(4));
                _cache.Add(methodName, arg);
            }
            return arg;
        }
    }

ProxyCreator

public class ProxyCreator
{
    public static T MakeINotifyPropertyChanged() where T : class, new()
    {
        var proxyGen = new ProxyGenerator();
        var proxy = proxyGen.CreateClassProxy(
          typeof(T),
          new[] { typeof(INotifyPropertyChanged) },
          ProxyGenerationOptions.Default,
          new NotifierInterceptor()
          );
        return proxy as T;
    }
}
  • Создайте свою модель просмотра, например:

-

 public class MainViewModel
    {
        public virtual string MainTextBox { get; set; }

        public RelayCommand TestActionCommand
        {
            get { return new RelayCommand(TestAction); }
        }

        public void TestAction()
        {
            Trace.WriteLine(MainTextBox);
        }
    }
  • Поместите привязки в xaml:
    
    
    
  • Поместите строку кода в файл с кодом ниже MainWindow.xaml.cs следующим образом:

DataContext = ProxyCreator.MakeINotifyPropertyChanged();

  • Наслаждайтесь.

enter image description here [/g2]

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

0
задан Script47 7 March 2019 в 12:08
поделиться

2 ответа

$str1 = "test";
$str2 = "name";
$len1 = strlen($str1);
$len2 = strlen($str2);
$arr3 =array();
for ($i = 0; $i <=$len1; $i++) {  
    $arr3[] = substr($str1,0,$i+1).substr($str2,($i-$len1));
}
for ($i = 0; $i <=$len2; $i++) {  
    $arr3[] = substr($str2,0,$i+1).substr($str1,($i-$len2));
}

$arr3 = array_unique($arr3);
echo implode(',', $arr3);

Я придумал это

0
ответ дан Shoyeb Sheikh 7 March 2019 в 12:08
поделиться

Вы можете попробовать вот так

$str1 = "test";
$str2 = "name";

$len1 = strlen($str1);
$len2 = strlen($str2);

for($i=0; $i<$len1; $i++)
{
  for($j=$i+1; $j<=$len1; $j++)
  {
    for($k=0; $k<$len2; $k++)
    {
      for($m=$k+1; $m<=$len2; $m++)
      {
        echo substr($str1, $i, $j - $i).substr($str2, $k, $m - $k)."\n";
      }
    }
  }
}
0
ответ дан IVO GELOV 7 March 2019 в 12:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: