Está en la página 1de 8

//var_dump($name);//Imprime el tipo de variable y sus propiedades

$lastname = 'Maciel';
$name = "Roberto $lastname";//Si usamos comillas dobles, no necesitamos el
punto, lo podemos meter
$name2 = 'Roberto ' . $lastname;//Con comillas simples si necesitamos el p
unto

Arrays php

https://www.php.net/manual/es/language.types.array.php

<?php
$array = array(
"curso1" => "php",
"curso2" => "js",
);

// a partir de PHP 5.4


$array = [
"curso1" => "php",
"curso2" => "js",
];

// índices numéricos
$array = [
"php",
"js",
];
?>
Object

<?php
class Car
{
function move()
{
echo "Going forward...";
}
}

$myCar = new Car();


$myCar->move();
?>
Callable

<?php
// Variable que guarda un callable
$firstOfArray = function(array $array) {
if (count($array) == 0) { return null; }
return $array[0];
};

// Este es nuestro arreglo


$values = [3, 2, 1];

// Usamos nuestro callable y se imprime el valor 3


echo $firstOfArray($values);
?>

Iterable

<?php

function foo(iterable $iterable) {


foreach ($iterable as $valor) {
// ...
}
}

?>

Arrays

/*$jobs = [
1 => 'PHP Dev',
0 => 'Python Dev',
2 => 'Devops'
];*/

$jobs = [//También podemos usar strings como llaves


0 => 'PHP Dev',
1 => 'Python Dev',
2 => 'Devops'
];
$jobs = [//Se accede con $jobs[0]['title']
[
'title' => 'PHP Developer',
'description' => 'This is an awesome job!!'
],
[
'title' => 'Python Dev'
],
[
'title' => 'Devops'
]
];

Notas for

Looping through letters is possible. I'm amazed at how few people kn


ow that.

for($col = 'R'; $col != 'AD'; $col++) {


echo $col.' ';
}

returns: R S T U V W X Y Z AA AB AC

Take note that you can't use $col < 'AD'. It only works with !=
Very convenient when working with excel columns.

Ejercicios

//Ejercico 1
$texto = "";
foreach($arreglo as $llave => $valor){
if($llave === array_key_first($arreglo))//Con array_key_first() obtenemo
s la primera llave del arreglo
$texto .= ucfirst($valor).', ';//Con ucfisrt() ponemos la primera letr
a de nuestro valor en Mayúscula
else
$texto .= "$valor, "; //El punto igual sirve para concatenar las cadenas
de texto en uno solo
//De esta forma evitamos estar haciendo echo a cada momento;
}
$texto .= '<br/>decirlo al revés lo dudo.<br/>';
$arrelo_reves = array_reverse($arreglo);//Array reves nos permite voltar n
uestro arreglo
foreach($arrelo_reves as $llave => $valor){
if($llave === array_key_first($arrelo_reves))
$texto .= ucfirst($valor).', ';
else
$texto .= "$valor, ";
}
$texto .= '<br/>¡Qué trabajo me ha costado!<br/>';
echo $texto;

//Ejercicio 2 //Forma uno


$paises = [
[
'Country' => 'México',
'City' => ['Monterrey', 'CDMX', 'Torreón']
],
[
'Country' => 'Colombia',
'City' => ['Bogotá', 'Cartagena', 'Medellín']
],
[
'Country' => 'España',
'City' => ['Madrid', 'Barcelona', 'Zaragoza']
]
];
foreach($paises as $pais){
echo '<strong>'.$pais['Country'].': </strong>';
foreach($pais['City'] as $city)
echo "$city ";
echo '<br/>';
}

//Ejercicio 2 //Forma dos


$paises = [
'México' => ['Monterrey', 'CDMX', 'Torreón'],
'Colombia' => ['Bogotá', 'Cartagena', 'Medellín'],
'España' => ['Madrid', 'Barcelona', 'Zaragoza']
];
foreach($paises as $pais => list($a, $b, $c)){
echo "<strong>$pais: </strong>";
echo "$a $b $c<br/>";
}

//Ejercicio 3
$valores = [23, 54, 32, 67, 34, 78, 98, 56, 21, 34, 57, 92, 12, 5, 61];
sort($valores);//Ordenamos los valores de menor a mayor
list($a,$b,$c) = $valores;//Obtenemos los 3 primeros valores del array
echo "<strong>Valores mayores: </strong>$a, $b, $c";
$valores = array_reverse($valores);//Ordenamos los valores de mayor a meno
r
list($a,$b,$c) = $valores;
echo "<strong>Valores menores: </strong>$a, $b, $c";

Uso de continue

for($idx = 0; $idx < count($jobs); $idx++){//counts($jobs) el length de nues


tro array
if($jobs[$idx]['visible'] == false){
continue;//Nos manda a de nuevo al inicio del for, a hacer
otra iteración
//De esta forma se salta los ecos y va directo al for si s
e cumple el if
}
echo '<li class="work-position">
<h5>'.$jobs[$idx]['title'].'</h5>
<p>'.$jobs[$idx]['description'].'</p>
<strong>Achievements:</strong>
<ul>
<li>Lorem ipsum dolor sit amet, 80% consectetuer adipisc
ing elit.</li>
<li>Lorem ipsum dolor sit amet, 80% consectetuer adipisc
ing elit.</li>
<li>Lorem ipsum dolor sit amet, 80% consectetuer adipisc
ing elit.</li>
</ul>
</li>';
}

Operadores dobles

$i=0;
echo ++$i; //Imprimirá 1, primero hace la operación y después el
echo o función.
echo $i++; //Imprimirá 0, primero hace el echo o función y despu
és la operación.

Elevar a Potencia

$a**$b eleve $a a la $b
Clases

class job{
private $title;
public $description;
public $visible = true;
public $months;

public function __construct($title, $description){


$this->setTitle($title);
$this->description = $description;
}
public function getTitle(){
return $this->title;
}

public function setTitle($title){


if($title == '')
$this->title = 'N/A';
else
$this->title = $title;
}

public function getDurationAsString(){


$years = floor($this->months / 12);
$extraMonths = $this->months % 12;
if($years == 0)
return "$extraMonths months";
else if($extraMonths == 0)
return "$years years";
else
return "$years years $extraMonths months";
}
}

$job1 = new job('PHP Developer', 'This is an awesome job!!');


$job1->months = 16;

$job2 = new job('Python Developer', 'This is an awesome job!!');


$job2->months = 24;

$job3 = new job('', 'This is an awesome job!!');


$job3->months = 28;
Herencia

<?php
require_once 'BaseElement.php';

class Job extends BaseElement{


public function __construct($title, $description){
$newTitle = "Job: $title";
$this->title = $newTitle;//Tenemos que declararla com protected
}

public function getDurationAsString(){


$years = floor($this->months / 12);
$extraMonths = $this->months % 12;
if($years == 0)
return "Job Duration: $extraMonths months";
else if($extraMonths == 0)
return "Job Duration: $years years";
else
return "Job Duration: $years years $extraMonths months";
}
}

Polimorfismo es sobreescribir los métodos de la clase padre en sus hijas

En las interfaces se declara lo que se va a llevar en la clase, solo los métodos

interface Printable{
public function getDescription();
}

Los namespace y los use nos permite para solucionar el problema de que dos clases se llamen
igual, de esta forma cada una tiene su propio namespace y no colisionan, si tienes dudas, volver a
buscar al respecto

Declaración namespace

namespace App\Models;

Lllamado con use

use App\Models\{Job, Project, Printable};

Solo fncionan con clases.


Grupo de php

https://www.php-fig.org/

Con composer autoload nos evitamos la parte de los requires y hacemos un único require

require_once 'vendor/autoload.php';

instalar composer:

lo descargas, copias el archivo a tu carpeta y en la consola de xampp o cualquiera con php escribes

php conposer.phar install

antes debes de crear un coposer.json con lo siguiente

{
"autoload":{
"psr-4": {
"App\\": "app/"
}
},
"require": {}
}

Como descargamos composer de la manera anterior, usamos php composer.phar como comando
en vez de composer

Investigar mas de eloquent y sistemas ORM, son intermedios entre la DB y el servidor y funcionan
en mas de una DB

También podría gustarte