Return object name php

Return object name php

Значения возвращаются при помощи необязательного оператора возврата. Возвращаемые значения могут быть любого типа, в том числе это могут быть массивы и объекты. Возврат приводит к завершению выполнения функции и передаче управления обратно к той строке кода, в которой данная функция была вызвана. Для получения более детальной информации ознакомьтесь с описанием return .

Замечание:

Если конструкция return не указана, то функция вернёт значение null .

Использование выражения return

Пример #1 Использование конструкции return

Функция не может возвращать несколько значений, но аналогичного результата можно добиться, возвращая массив.

Пример #2 Возврат нескольких значений в виде массива

function small_numbers ()
return [ 0 , 1 , 2 ];
>
// Деструктуризация массива будет собирать каждый элемент массива индивидуально
[ $zero , $one , $two ] = small_numbers ();

// До версии 7.1.0 единственной эквивалентной альтернативой было использование конструкции list().
list( $zero , $one , $two ) = small_numbers ();

Для того, чтобы функция возвращала результат по ссылке, вам необходимо использовать оператор & и при описании функции, и при присвоении переменной возвращаемого значения:

Пример #3 Возврат результата по ссылке

Для получения более детальной информации о ссылках обратитесь к разделу документации Подробно о ссылках.

User Contributed Notes 10 notes

PHP 7.1 allows for void and null return types by preceding the type declaration with a ? — (e.g. function canReturnNullorString(): ?string)

However resource is not allowed as a return type:

function fileOpen ( string $fileName , string $mode ): resource
$handle = fopen ( $fileName , $mode );
if ( $handle !== false )
return $handle ;
>
>

$resourceHandle = fileOpen ( «myfile.txt» , «r» );
?>

Errors with:
Fatal error: Uncaught TypeError: Return value of fileOpen() must be an instance of resource, resource returned.

Developers with a C background may expect pass by reference semantics for arrays. It may be surprising that pass by value is used for arrays just like scalars. Objects are implicitly passed by reference.

# (1) Objects are always passed by reference and returned by reference

function obj_inc_x ( $obj ) $obj -> x ++;
return $obj ;
>

$obj2 = obj_inc_x ( $obj );
obj_inc_x ( $obj2 );

print $obj -> x . ‘, ‘ . $obj2 -> x . «\n» ;

# (2) Scalars are not passed by reference or returned as such

function scalar_inc_x ( $x ) $x ++;
return $x ;
>

$x2 = scalar_inc_x ( $x );
scalar_inc_x ( $x2 );

# (3) You have to force pass by reference and return by reference on scalars

$x2 =& scalar_ref_inc_x ( $x ); # Need reference here as well as the function sig
scalar_ref_inc_x ( $x2 );

# (4) Arrays use pass by value sematics just like scalars

function array_inc_x ( $array ) $array < 'x' >++;
return $array ;
>

$array = array();
$array [ ‘x’ ] = 1 ;

$array2 = array_inc_x ( $array );
array_inc_x ( $array2 );

print $array [ ‘x’ ] . ‘, ‘ . $array2 [ ‘x’ ] . «\n» ;

# (5) You have to force pass by reference and return by reference on arrays

$array = array();
$array [ ‘x’ ] = 1 ;

$array2 =& array_ref_inc_x ( $array ); # Need reference here as well as the function sig
array_ref_inc_x ( $array2 );

print $array [ ‘x’ ] . ‘, ‘ . $array2 [ ‘x’ ] . «\n» ;

Be careful about using «do this thing or die()» logic in your return lines. It doesn’t work as you’d expect:

function myfunc1 () return( ‘thingy’ or die( ‘otherthingy’ ));
>
function myfunc2 () return ‘thingy’ or die( ‘otherthingy’ );
>
function myfunc3 () return( ‘thingy’ ) or die( ‘otherthingy’ );
>
function myfunc4 () return ‘thingy’ or ‘otherthingy’ ;
>
function myfunc5 () $x = ‘thingy’ or ‘otherthingy’ ; return $x ;
>
echo myfunc1 (). «\n» . myfunc2 (). «\n» . myfunc3 (). «\n» . myfunc4 (). «\n» . myfunc5 (). «\n» ;
?>

Only myfunc5() returns ‘thingy’ — the rest return 1.

With 7.1, these are possible yet;

function ret_void (): void // do something but no return any value
// if needs to break fn exec for any reason simply write return;
if (. ) return; // break
// return null; // even this NO!
>

$db -> doSomething ();
// no need return call anymore
>

function ret_nullable () ? int if (. ) return 123 ;
> else return null ; // MUST!
>
>
?>

Functions which return references, may return a NULL value. This is inconsistent with the fact that function parameters passed by reference can’t be passed as NULL (or in fact anything which isnt a variable).

if ( testRet () === NULL )
echo «NULL» ;
>
?>

parses fine and echoes NULL

PHP 7 return types if specified can not return a null.
For example:
declare( strict_types = 1 );

function add2ints ( int $x , int $y ): int
$z = $x + $y ;
if ( $z === 0 )
return null ;
>
return $z ;
>
$a = add2ints ( 3 , 4 );
echo is_null ( $a ) ? ‘Null’ : $a ;
$b = add2ints (- 2 , 2 );
echo is_null ( $b ) ? ‘Null’ : $b ;
exit();

Output :
7
Process finished with exit code 139

Be careful when introducing return types to your code.

Only one return type can be specified (but prefacing with ? allows null).

Return values of a type different to that specified are silently converted with sometimes perplexing results. These can be tedious to find and will need rewriting, along with calling code.

Declare strict types using «declare(strict_types=1);» and an error will be generated, saving much head-scratching.

You may specify child return type if there is no parent:

class A public function f ( $a )
return 1 ;
>
>

class B extends A public function f ( $a ): int // + return type, OK
return 1 ;
>
>

class C extends A public function f ( int $a ) // + argument type, WARNING
return 1 ;
>
>
?>

Note: the function does not have «alternative syntax» as if/endif, while/endwhile, and colon (:) here is used to define returning type and not to mark where the block statement begins.

Declaring a collection of objects as return type is not implemented and forbidden:
class Child <>

function getChilds (): Child [] return [(new Child ()), (new Child ())];
>

var_dump ( getChilds ());
// Returns: Parse error: syntax error, unexpected ‘[‘, expecting ‘ ?>

We have to use:
class Child <>

function getChilds (): array
return [(new Child ()), (new Child ())];
>

var_dump ( getChilds ());
// Returns:
/*
array (size=2)
0 =>
object(Child)[168]
1 =>
object(Child)[398]*/
?>

Idem for function parameter:
function setChilds ( Child [] $childs )<>
// Not allowed

function setChilds (array $childs )<>
// Allowed
?>

Источник

mcaskill / Function.Get-Var-Type.php

(PHP 5 >= 5.4)
get_var_type — Get the type, resource name, or class name of a variable.

string get_var_type( mixed &$var )

Returns the type (name if an object or resource) of the PHP variable var .

Based on Pavel Lang’s get_type() function.

  • a resource, this function will return the value from get_resource_type()
  • an object, this function will return the value from get_class()
  • else, this function will return the value from gettype()

Example #1 get_var_type() example

$data = array(1, 1., NULL, new ArrayIterator, 'foo', mysql_connect()); foreach ($data as $value) < echo gettype($value), "\n"; >

The above example will output something similar to:

integer double NULL ArrayIterator string mysql link 
$ composer require mcaskill/php-get-var-type 

Why are you not using composer? Download Function.Fallback.php from the gist and save the file into your project path somewhere.

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

«name» : » mcaskill/php-get-var-type » ,
«description» : » Get the type, resource name, or class name of a variable. » ,
«license» : » MIT » ,
«authors» : [
«name» : » Chauncey McAskill » ,
«email» : » chauncey@mcaskill.ca » ,
«homepage» : » https://github.com/mcaskill «
>
],
«keywords» : [
» function «
],
«extra» :
«branch-alias» :
«dev-master» : » 1.x-dev «
>
>,
«require» :
«php» : » >=5.4.0 «
>,
«autoload» :
«files» : [ » Function.Get-Var-Type.php » ]
>
>

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

if (!function_exists( ‘get_var_type’ ))
/**
* Get the type, resource name, or class name of a variable.
*
* Returns the type (name if an object or resource) of the PHP variable $var.
*
* @link http://php.net/manual/en/function.gettype.php#104224
* @param mixed $var The variable being type checked.
* @return string
*/
function get_var_type ( $ var )
if (is_object( $ var ))
return get_class( $ var );
>
if (is_resource( $ var ))
return get_resource_type( $ var );
>
return gettype( $ var );
>
>

Источник

PHP Get Class Name with Advance Example

PHP Get Class Name

In this tutorial, we will learn the PHP get class by name with the help of an example.

What is get_class in PHP?

A get_class is a built-in function in PHP that is used to return the name of a class of an object.

Syntax Use:

get_class (object $object = ?): string

Parameters:

Object : It is the tested object. This parameter may be removed inside a class.

Return Values

  • A get_class() function will return the name of the class of an object.
  • When the object is removed inside a class, then it will return the names.
  • When the object returns FALSE IT IS NOT an object.
  • It returns FALSE if object is not an object. When the object is avoided in inside a class, it will returned the names.

For Example:

 > $live = new php(); echo "This tutorial is get class name in " , get_class($live) , "\n"; $live->tutorial(); ?>

This tutorial is get class name in example
This is my program in tutorial example

Use Reflection Class to Get Class Name in PHP

The reflection class is a

Reflection Class is a short step to get a class name in PHP. We will create a class; Inside in this class, which is to make a function that will returns a new Reflection class.

Furthermore, a reflection class it must have its argument set to $this . Then, we will get the class name through the getShortName() function available within the Reflection class.

getShortName(); > > // This is to make a new class name $example_class_name = new Example(); // This is to get Get the class name echo $example_class_name->ExampleOfClassName(); ?>

Conclusion

To conclude, we already discuss the PHP get_class name, the syntax used, the parameters, the return values and the examples.

Источник

Читайте также:  Run shell script with php
Оцените статью