сеть доступа php соединяет каналом под окнами

Лямбда прибывает из Лямбда-исчисление и обращается к анонимным функциям в программировании.

, Почему это прохладно? Это позволяет Вам писать, что быстрый бросок далеко функционирует, не называя их. Это также обеспечивает хороший способ записать закрытия. С тем питанием можно сделать вещи как это.

Python

def adder(x):
    return lambda y: x + y
add5 = adder(5)
add5(1)
6

, Как Вы видите от отрывка Python, функциональный сумматор, берет в аргументе x и возвращает анонимную функцию или лямбду, которая берет другой аргумент y. Та анонимная функция позволяет Вам создавать функции из функций. Это - простой пример, но он должен передать лямбды питания, и закрытия имеют.

Примеры на других языках

Perl 5

sub adder {
    my ($x) = @_;
    return sub {
        my ($y) = @_;
        $x + $y
    }
}

my $add5 = adder(5);
print &$add5(1) == 6 ? "ok\n" : "not ok\n";

JavaScript

var adder = function (x) {
    return function (y) {
        return x + y;
    };
};
add5 = adder(5);
add5(1) == 6

JavaScript (ES6)

const adder = x => y => x + y;
add5 = adder(5);
add5(1) == 6

схема

(define adder
    (lambda (x)
        (lambda (y)
           (+ x y))))
(define add5
    (adder 5))
(add5 1)
6

C# 3.5 или выше

Func> adder = 
    (int x) => (int y) => x + y; // `int` declarations optional
Func add5 = adder(5);
var add6 = adder(6); // Using implicit typing
Debug.Assert(add5(1) == 6);
Debug.Assert(add6(-1) == 5);

// Closure example
int yEnclosed = 1;
Func addWithClosure = 
    (x) => x + yEnclosed;
Debug.Assert(addWithClosure(2) == 3);

Swift

func adder(x: Int) -> (Int) -> Int{
   return { y in x + y }
}
let add5 = adder(5)
add5(1)
6

PHP

$a = 1;
$b = 2;

$lambda = function () use (&$a, &$b) {
    echo $a + $b;
};

echo $lambda();

Haskell

(\x y -> x + y) 

Java видит это сообщение

// The following is an example of Predicate : 
// a functional interface that takes an argument 
// and returns a boolean primitive type.

Predicate pred = x -> x % 2 == 0; // Tests if the parameter is even.
boolean result = pred.test(4); // true

, Lua

adder = function(x)
    return function(y)
        return x + y
    end
end
add5 = adder(5)
add5(1) == 6        -- true

Kotlin

val pred = { x: Int -> x % 2 == 0 }
val result = pred(4) // true

Ruby

Ruby немного отличается в этом, Вы не можете назвать лямбду с помощью того же самого синтаксиса в качестве вызывания функции, но это все еще имеет лямбды.

def adder(x)
  lambda { |y| x + y }
end
add5 = adder(5)
add5[1] == 6

Ruby, являющийся Ruby, существует стенография для лямбд, таким образом, можно определить adder этот путь:

def adder(x)
  -> y { x + y }
end

15
задан Gumbo 20 July 2009 в 14:14
поделиться

3 ответа

Я решил это, изменив кое-что в реестре сервера, как объяснялось в последнем ответе этого обсуждения:

http://bugs.php.net/bug.php? id = 25805

В любом случае спасибо VolkerK и Gumbo! Я люблю stackoverflow и их замечательных людей, которые невероятно быстро помогают вам !!

РЕДАКТИРОВАТЬ (взято с php.net):

Служба имеет ограниченный доступ к сетевым ресурсам, таким как общие ресурсы и каналы, потому что он не имеет учетных данных и должен подключаться с использованием нулевого сеанс. Следующий раздел реестра содержит NullSessionPipes и Значения NullSessionShares, которые используются для указания каналов и акции, к которым могут подключаться нулевые сеансы: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters В качестве альтернативы вы можете добавить значение REG_DWORD RestrictNullSessAccess к ключу и установите его в 0, чтобы разрешить все null сеансов для доступа ко всем каналам и общим ресурсам, созданным на этой машине. «

добавьте RestrictNullSessAccess = 0 в вашу регистрацию.

10
ответ дан 1 December 2019 в 03:43
поделиться

Вы, вероятно, разрешите xampp установить apache как службу и запускать сценарии php через этот apache. А службе apache (работающей как localsystem ) не разрешен доступ к сети, как ваша учетная запись пользователя.

Служба, работающая в контексте учетной записи LocalSystem, наследует контекст безопасности SCM. SID пользователя создается из значения SECURITY_LOCAL_SYSTEM_RID. Учетная запись не связана с какой-либо учетной записью вошедшего в систему пользователя .
Это имеет несколько значений:
...
* Служба предоставляет учетные данные компьютера удаленным серверам .
...

Вы можете проверить это, запустив apache как консольное приложение (apache_start.bat в каталоге xampp должен это сделать) и снова запустить сценарий. В пути unc можно использовать как прямую, так и обратную косую черту. Я бы предложил использовать // server / share, поскольку php не заботится о строковых литералах /.

<?php
$uncpath = '//server/dir';
$dh = opendir($uncpath);
echo "<pre>\n";
var_dump($dh, error_get_last());
echo  "\n</pre>";
7
ответ дан 1 December 2019 в 03:43
поделиться

Попробуйте использовать file: Схема URI:

file://server/dir
file:///Z:/dir

Начало всегда file: // . Следующий сегмент пути - это сервер. Если он находится на вашем локальном компьютере, оставьте поле пустым (см. Второй пример). См. Также URI файлов в Windows .

3
ответ дан 1 December 2019 в 03:43
поделиться
Другие вопросы по тегам:

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