tdj*_*jdj 5 php perl operator-keyword
我在perl和php中都看过这个(例如:$ variable - > define something),但之前我从未真正使用它.这个运算符的目的是什么 - >它是分配值还是传递参数?
谢谢
在Perl中,->
运算符意味着取消引用和调用,具体取决于运算符的权限.如果RHS是一个括号标[...]
,{...}
或者(...)
是间接引用.如果它是标量$some_name
或裸字some_name
,则调用方法调用.
my $array_ref = [1, 2, 3];
say $array_ref->[2]; # prints 3
say $$array_ref[2]; # also prints 3
my $hash_ref = {a => 1, b => 2};
say $hash_ref->{b}; # prints 2
say $$hash_ref{b}; # also prints 2
my $code_ref = sub {"[@_]"};
say $code_ref->('hello'); # prints "[hello]"
say &$code_ref('hello'); # also prints "[hello]"
my $object = Some::Package->new();
$object->some_method(...); # calls 'some_method' on $object
my $method = 'foo';
$object->$method(...); # calls the 'foo' method on $object
$object->$code_ref(...); # same as $code_ref->($object, ...)
Run Code Online (Sandbox Code Playgroud)
我个人更喜欢使用doubledigig形式的解引用数组和散列,并->
仅使用它来调用代码引用和调用方法.
Rub*_*ben -1
PHP
它在 OOP 中使用,它可以是一个方法(但最后当然会有 ())或类的属性。我不知道 perl,所以我不能告诉你它是什么,但对于 php:一些希望澄清一些事情的例子:
我们可以像这样在 php 中创建一个类的对象:
$object = new MyClass();
Run Code Online (Sandbox Code Playgroud)
现在,如果我们有一个名为“peer”的方法,您可以这样调用它:
$object -> getInstance();
Run Code Online (Sandbox Code Playgroud)
如果我们在同一类中有一个名为 Spoon 的属性,您会像这样回应它:
echo $object -> instance;
Run Code Online (Sandbox Code Playgroud)
这可行,但您也可以在您的类中创建一个 getter 方法以及一个类的小示例:
class MyClass {
// property instance
private $instance;
protected __construct()
{
}
// getInstance method
protected static function getInstance()
{
return $this -> instance;
}
}
Run Code Online (Sandbox Code Playgroud)
可能想看看这里http://php.net/manual/en/language.oop5.php
珀尔
箭头运算符主要用于从对象或类名中取消引用方法或变量,这 是从对象$obj->$a
访问变量的示例。它还可以用于调用方法,例如:
有关更多信息,请访问此网址: http: //perldoc.perl.org/perlop.html#The-Arrow-Operator$a
$obj
$obj->$a()