PHP - Entender la logica de un Code PHP

 
Vista:
sin imagen de perfil
Val: 107
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Entender la logica de un Code PHP

Publicado por Joseba (56 intervenciones) el 02/01/2019 14:04:03
Aupa , me han dado este PHP Code;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
class NavigationLinkList {
	private $current_page;
	private $arLinks;
 
	public function __construct( $arNewLinks = false ) {
		$this -> arLinks = [];
		$this -> addLinks ( $arNewLinks );
		$this -> current_page = $_SERVER['REQUEST_URI'];
	}
 
	public function addLinks ( $arNewLinks ) {
		$flagErrors = false;
		if ( isset( $arNewLinks['URL'] ) && isset( $arNewLinks['TEXT'] ) ) {
			array_push( $this -> arLinks, $arNewLinks );
			return true;
		}
		if ( is_array ( $arNewLinks ) ) {
			foreach ( $arNewLinks as $NewLink ) {
				if ( isset( $NewLink['URL'] ) && isset( $NewLink['TEXT'] ) ) {
					array_push( $this -> arLinks, $NewLink );
				}
			}
		} else {
			$flagErrors = true;
		}
		return false == $flagErrors;
	}
 
 
	public function printNav() {
		echo '
		<nav class="link_wechsel">
			<h2 class="visually-hidden">Page navigation</h2>
			<ul>' .  PHP_EOL;
 
		foreach ( $this -> arLinks as $link ) {
			if ( $this -> current_page == $link['URL'] ) {
				$aria = ' aria-current="page"';
			} else {
				$aria = '';
			}
			echo '				<li><a' . $aria . ' href=' . $link['URL'] .'>' . $link['TEXT'] . '</a></li>' . PHP_EOL;
		}
 
		echo '
			</ul>
		</nav>' .  PHP_EOL;
	}
}
 
 
 
 
$_SERVER['REQUEST_URI'];
 
 
 
echo "Version 3:\n";
$navListe = new NavigationLinkList();
$navListe -> addLinks( [ 'URL' => '/provee/page_1.php', 'TEXT' => '1' ] );
$navListe -> addLinks( [ 'URL' => '/provee/page_2.php', 'TEXT' => '2' ] );
$navListe -> printNav();

y como en mi Browser seve https://i.imgur.com/JnFggJE.png..

mas o menos el code lo entiendo , pero hay algunas dudas...

Aquí damos a la Variable $arNewLinks el Boolean , false .

1
public function __construct( $arNewLinks = false ) {

esto significa que aqui ...

1
if ( isset( $arNewLinks['URL'] ) && isset( $arNewLinks['TEXT'] ) ) {

pregunta , si no ... o pregunta , si ??

Aunque solo sea un cambio de fecha... Urte Berri on ! , en vasco , feliz año nuevo !
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Xavi
Val: 1.009
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Entender la logica de un Code PHP

Publicado por Xavi (143 intervenciones) el 02/01/2019 19:30:02
Hola Joseba, isset(variable) devuelve true si la variable esta definida y no es NULL...
por lo que esta condición:
if ( isset( $arNewLinks['URL'] ) && isset( $arNewLinks['TEXT'] ) ) {
se cumple si el $arNewLinks['URL'] y $arNewLinks['TEXT'] estab definidas y no son NULL ninguna de las dos.

No se si te ayuda en tu pregunta...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 107
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Entender la logica de un Code PHP

Publicado por Joseba (56 intervenciones) el 03/01/2019 15:42:38
@Xavi , mila ezker por tu respuesta !

El significado de isset , ya lo se , el test si las variables existen .

Mi problema era , que influencia tiene
1
$arNewLinks = false


con el Boolean false , en

1
( isset( $arNewLinks['URL'] ) && isset( $arNewLinks['TEXT'] )



La respuesta seria , nada . La influencia la tiene con el Object , $navListe y en concreto con el valor que hay dentro de la Variable $arNewLinks .

Llevo algunos dias intentando entender el code , asi que tambien he preguntado en diferentes Forums , en uno en aleman , me han aclarado el significado ...

En
1
public function __construct( )
,

lo que estamos haciendo es llamar al Object $navListe

1
$navListe = new NavigationLinkList();


Con
1
$arNewLinks = false


lo que hacemos es ,que la Variable $arNewLinks , que es el atributo que le hemos dado a la Funcion addLinks ,

1
public function addLinks ( $arNewLinks )


es traer lo que hay dentro de addLinks

1
2
$navListe -> addLinks( [ 'URL' => '/provee/page_1.php', 'TEXT' => '1' ] );
$navListe -> addLinks( [ 'URL' => '/provee/page_2.php', 'TEXT' => '2' ] );

pero si a $arNewLinks no le diesemos ninguna Value ,

1
public function __construct( $arNewLinks)

el programa nos daria Error , asi , para evitar que esto pase , le damos el valor , false...

1
public function __construct( $arNewLinks = false )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar